Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How do I convert LTSpice netlist/asc to a pcb-lesstif netlist?

208 views
Skip to first unread message

Johann Klammer

unread,
Oct 30, 2015, 12:03:11 PM10/30/15
to
I've just found myself hand-copying a circuit from
ltspice to gschem again for use with pcb. Is this really
necessary or can it be automated? I don't actually
need the gschem schematic either...
What's the `proper' way to do that?
Has anyone got a script or sthg for that?
I've found only a tutorial for something
called freePCB using LTSpices' PADS export,
but that doesn't seem to work for pcb-lesstif.
Any other export format I want to try?
There's quite a few.. I don't wanna go thru all of them myself.

John Larkin

unread,
Oct 30, 2015, 12:59:53 PM10/30/15
to
On Fri, 30 Oct 2015 17:03:14 +0100, Johann Klammer
<klam...@NOSPAM.a1.net> wrote:

>I've just found myself hand-copying a circuit from
>ltspice to gschem again for use with pcb. Is this really
>necessary or can it be automated? I don't actually
>need the gschem schematic either...

Then why do you want to do that?


>What's the `proper' way to do that?
>Has anyone got a script or sthg for that?
>I've found only a tutorial for something
>called freePCB using LTSpices' PADS export,
>but that doesn't seem to work for pcb-lesstif.
>Any other export format I want to try?
>There's quite a few.. I don't wanna go thru all of them myself.

It's probably hopeless. Spice isn't aware of the PCB parts library or
symbols or footprints or pinouts.



Johann Klammer

unread,
Oct 30, 2015, 1:33:17 PM10/30/15
to
On 10/30/2015 05:59 PM, John Larkin wrote:
> On Fri, 30 Oct 2015 17:03:14 +0100, Johann Klammer
> <klam...@NOSPAM.a1.net> wrote:
>
>> I've just found myself hand-copying a circuit from
>> ltspice to gschem again for use with pcb. Is this really
>> necessary or can it be automated? I don't actually
>> need the gschem schematic either...
>
> Then why do you want to do that?
>
>
because gsch2pcb

>> What's the `proper' way to do that?
>> Has anyone got a script or sthg for that?
>> I've found only a tutorial for something
>> called freePCB using LTSpices' PADS export,
>> but that doesn't seem to work for pcb-lesstif.
>> Any other export format I want to try?
>> There's quite a few.. I don't wanna go thru all of them myself.
>
> It's probably hopeless. Spice isn't aware of the PCB parts library or
> symbols or footprints or pinouts.
>
>
>
There may be ways...

rickman

unread,
Oct 30, 2015, 1:57:37 PM10/30/15
to
It's far from hopeless if you know the format for pcb. Actually there
is a commonly used format called PADS from a commercial package. While
searching for this name I also found a converter program that may help
you... gnetlist I'll let you look it up to see if it will convert for you.

Push come to shove you can figure out what formats your layout program
will import you can write a program to convert from the simple LTspice
format. Forth is a great language for this.

--

Rick

John Larkin

unread,
Oct 30, 2015, 1:59:58 PM10/30/15
to
On Fri, 30 Oct 2015 18:33:24 +0100, Johann Klammer
<klam...@NOSPAM.a1.net> wrote:

>On 10/30/2015 05:59 PM, John Larkin wrote:
>> On Fri, 30 Oct 2015 17:03:14 +0100, Johann Klammer
>> <klam...@NOSPAM.a1.net> wrote:
>>
>>> I've just found myself hand-copying a circuit from
>>> ltspice to gschem again for use with pcb. Is this really
>>> necessary or can it be automated? I don't actually
>>> need the gschem schematic either...
>>
>> Then why do you want to do that?
>>
>>
>because gsch2pcb

Sounds like a compound nightmare.


--

John Larkin Highland Technology, Inc
picosecond timing precision measurement

jlarkin att highlandtechnology dott com
http://www.highlandtechnology.com

Johann Klammer

unread,
Oct 30, 2015, 2:55:24 PM10/30/15
to
On 10/30/2015 06:57 PM, rickman wrote:
>> There may be ways...
>
> It's far from hopeless if you know the format for pcb. Actually
> there is a commonly used format called PADS from a commercial
> package. While searching for this name I also found a converter
> program that may help you... gnetlist I'll let you look it up to see
> if it will convert for you.
>
Thanks, that was what I was looking for...

DJ Delorie

unread,
Oct 30, 2015, 3:38:37 PM10/30/15
to

rickman <gnu...@gmail.com> writes:
> It's far from hopeless if you know the format for pcb.

PCB's netlist format is pretty trivial, but using it to import
designs... there's a better way :-)

PCB has File->Import option that reads a script that builds the design
by specifying all the footprints required, the netlist, and the
attributes for everything. It's a plain text file made up of "actions"
(pcb functions) which are documented in the PCB manual. You can hook
the File->Import button to a Makefile if you want to import from
something other than gschem.

PCB's manual is at http://pcb.geda-project.org/manual.html (look for
the "Action Reference" section, the Import() action)

I'll add a sample script from my "rainbow LED" project for reference.
http://www.delorie.com/electronics/rainbow/ (all the nets are unnamed in
this project, hence the "unnamed_netN" instead of names like "GND" or
"VCC" :)

Netlist(Freeze)
Netlist(Clear)
Netlist(Add,unnamed_net12,LED8-2)
Netlist(Add,unnamed_net12,TMINUS-1)
Netlist(Add,unnamed_net12,LED7-2)
Netlist(Add,unnamed_net11,LED7-1)
Netlist(Add,unnamed_net11,LED6-2)
Netlist(Add,unnamed_net10,R2-1)
Netlist(Add,unnamed_net10,U2-7)
Netlist(Add,unnamed_net10,U2-6)
Netlist(Add,unnamed_net10,U2-3)
Netlist(Add,unnamed_net10,U2-2)
Netlist(Add,unnamed_net9,LED6-1)
Netlist(Add,unnamed_net9,LED5-2)
Netlist(Add,unnamed_net8,LED5-1)
Netlist(Add,unnamed_net8,LED4-2)
Netlist(Add,unnamed_net7,U2-4)
Netlist(Add,unnamed_net7,R2-2)
Netlist(Add,unnamed_net7,LED4-1)
Netlist(Add,unnamed_net6,LED8-1)
Netlist(Add,unnamed_net6,LED3-2)
Netlist(Add,unnamed_net5,LED3-1)
Netlist(Add,unnamed_net5,LED2-2)
Netlist(Add,unnamed_net4,TPLUS-1)
Netlist(Add,unnamed_net4,U2-1)
Netlist(Add,unnamed_net4,U1-1)
Netlist(Add,unnamed_net3,U1-7)
Netlist(Add,unnamed_net3,U1-6)
Netlist(Add,unnamed_net3,U1-3)
Netlist(Add,unnamed_net3,U1-2)
Netlist(Add,unnamed_net3,R1-1)
Netlist(Add,unnamed_net2,LED2-1)
Netlist(Add,unnamed_net2,LED1-2)
Netlist(Add,unnamed_net1,U1-4)
Netlist(Add,unnamed_net1,R1-2)
Netlist(Add,unnamed_net1,LED1-1)
Netlist(Sort)
Netlist(Thaw)
ElementList(Start)
ElementList(Need,"R2","0603dj.fp","62")
ElementSetAttr("R2","device","RESISTOR")
ChangePinName("R2", 1, "1")
ChangePinName("R2", 2, "2")
ElementList(Need,"TMINUS","hole-43mil.fp","unknown")
ElementSetAttr("TMINUS","device","terminal")
ChangePinName("TMINUS", 1, "terminal")
ElementList(Need,"TPLUS","hole-43mil.fp","unknown")
ElementSetAttr("TPLUS","device","terminal")
ChangePinName("TPLUS", 1, "terminal")
ElementList(Need,"LED8","0603dj.fp","unknown")
ElementSetAttr("LED8","device","LED")
ChangePinName("LED8", 2, "K")
ChangePinName("LED8", 1, "A")
ElementList(Need,"LED7","0603dj.fp","unknown")
ElementSetAttr("LED7","device","LED")
ChangePinName("LED7", 2, "K")
ChangePinName("LED7", 1, "A")
ElementList(Need,"LED6","0603dj.fp","unknown")
ElementSetAttr("LED6","device","LED")
ChangePinName("LED6", 2, "K")
ChangePinName("LED6", 1, "A")
ElementList(Need,"U2","SO8","unknown")
ChangePinName("U2", 7, "VOUT")
ChangePinName("U2", 6, "VOUT")
ChangePinName("U2", 4, "ADJ")
ChangePinName("U2", 3, "VOUT")
ChangePinName("U2", 2, "VOUT")
ChangePinName("U2", 1, "VIN")
ElementList(Need,"LED5","0603dj.fp","unknown")
ElementSetAttr("LED5","device","LED")
ChangePinName("LED5", 2, "K")
ChangePinName("LED5", 1, "A")
ElementList(Need,"LED4","0603dj.fp","unknown")
ElementSetAttr("LED4","device","LED")
ChangePinName("LED4", 2, "K")
ChangePinName("LED4", 1, "A")
ElementList(Need,"LED3","0603dj.fp","unknown")
ElementSetAttr("LED3","device","LED")
ChangePinName("LED3", 2, "K")
ChangePinName("LED3", 1, "A")
ElementList(Need,"LED2","0603dj.fp","unknown")
ElementSetAttr("LED2","device","LED")
ChangePinName("LED2", 2, "K")
ChangePinName("LED2", 1, "A")
ElementList(Need,"U1","SO8","unknown")
ChangePinName("U1", 7, "VOUT")
ChangePinName("U1", 6, "VOUT")
ChangePinName("U1", 4, "ADJ")
ChangePinName("U1", 3, "VOUT")
ChangePinName("U1", 2, "VOUT")
ChangePinName("U1", 1, "VIN")
ElementList(Need,"R1","0603dj.fp","62")
ElementSetAttr("R1","device","RESISTOR")
ChangePinName("R1", 1, "1")
ChangePinName("R1", 2, "2")
ElementList(Need,"LED1","0603dj.fp","unknown")
ElementSetAttr("LED1","device","LED")
ChangePinName("LED1", 2, "K")
ChangePinName("LED1", 1, "A")
ElementList(Done)

Johann Klammer

unread,
Nov 5, 2015, 10:37:42 AM11/5/15
to
This kinda works now...
<https://github.com/klammerj/ltc2pcb>

a103...@gmail.com

unread,
Apr 23, 2016, 6:33:35 AM4/23/16
to
On Friday, November 6, 2015 at 2:07:42 AM UTC+10:30, Johann Klammer wrote:
> This kinda works now...
> <https://github.com/klammerj/ltc2pcb>

This works too for importing LT-Spice .asc files into gschem .sym format:

http://github.com/erichVK5/translate2geda
0 new messages