Import external netlist, bypass Eeschema [from Orcad RINF]

I just upgraded to 4.0.1 and I’m no longer able to edit the netlist directly in Cvpcb to assign footprints. Let me give you some background: I use Orcad for schematic layout (no getting around this). My workflow used to be to generate a RINF type netlist from Orcad, use the rnif2ki tool to convert the RINF to KiCAD netlist type, then double click the .NET file in the project manager to start Cvpcb and assign footprints.

I now understand this is no longer possible. Cvpcb must be opened from Eeschema, and for some reason it will not recognize my pre-existing netlist. Is there a way for me to continue using Orcad to generate a netlist, then import that netlist into KiCAD? If not then I will have to revert to a previous version of KiCAD where this is still possible :frowning:

The format of the netlist file has changed significantly from previous versions, it appears that rnif2ki produces the older file format.

I found source for rnif2ki at https://github.com/fjullien/rnif2ki - is that the version you are using? I guess it would be fairly straightforward to modify it to produce the new file format.

Yes that’s exactly the version I’m using. Do you think you can modify it to produce the proper output? Because that would be great :smile:

Although now you have me wondering: is KiCAD now capable of importing netlists? I noticed that Eeschema can output an OrcadPCB2 format, which Orcad can also produce. Does that mean Eeschema can then import it somehow?

AFAIK, kicad cannot import netlists other than it’s own.

I’ve already stared modifying rnif2ki :slight_smile: What OS are you running?

Windows 7 x64. Thanks bob!

Hmm, I can’t find any sample rnif files. Do you know of any examples, or perhaps could post one or two?

Hmm, new users can’t upload files, but I can paste a small netlist below.

.HEA
.APP “Cadstar RINF Output - Version 2.3”
.UNI INCH 1000.0 in
.TYP FULL
.JOB “PCB - ENCODER TERM RESISTORS”

.ADD_COM J12 “Encoder Inputs”
.ADD_COM J13 “To DAQ”
.ADD_COM R1 “120 Ohm”
.ADD_COM R2 “120 Ohm”
.ADD_COM U1 “CBT3306D”

.ADD_TER U1 8 “+5V”
.TER J13 1

.ADD_TER U1 2 “A+”
.TER J12 4
J13 4

.ADD_TER J12 3 “A-”
.TER J13 5
R1 2

.ADD_TER U1 5 “B+”
.TER J12 2
J13 6

.ADD_TER J12 1 “B-”
.TER J13 7
R2 2

.ADD_TER U1 1 “ENC_RES_EN”
.TER U1 7
J13 3

.ADD_TER U1 4 “GND”
.TER J13 2

.ADD_TER U1 3 “N00416”
.TER R1 1

.ADD_TER U1 6 “N00437”
.TER R2 1

.END

Thanks, that will be useful,

Unfortunately I need to rethink this. I guess that previously running cvpcb wrote the footprint associations to .cmp, so when you read the netlist in pcbnew, it combines the .net and .cmp to get the board.

Now, the footprints are stored in the .sch files, and running cvpcb reads/writes the .sch. .cmp is not used. .net is created from the information in the .sch.

I could be wrong about some of this, but I’m not sure that there is a way round this without a standalone version of cvpcb which reads/write the .net file.

I will think about it, but if anyone has any ideas please let us know!

For anyone else running into this problem, I’ve reverted to r5717. r5718 is where they made Cvpcb non-standalone. Luckily I was able to find a windows build of r5717 hosted at http://www2.futureware.at/~nickoe/ .

Hopefully the devs will eventually implement a way to either import a netlist from an external schematic program, or restore stand alone Cvpcb functionality. Please?

I updated rnif2ki to produce a netlist that pcbnew can read, but I need to put in a dummy footprint for pcbnew, otherwise it does not add the component to the board. Footprints can be assigned in pcbnew, but not as conveniently as cvpcb.

You could try adding a suggestion to the Kicad bug tracker at https://bugs.launchpad.net/kicad and mark it “wishlist”, but I think now that footprint names are stored in the schematic it would be hard to unpick it.

So probably the best way to do it using Kicad is to use the older version to create the netlist, and I think that you could then use a new version for the layout.

I am working on some code to process Kicad files, and reproducing basic cvpcb functionality would be quite easy.

Hi bobc. Could you by any chance share the updated rnif2ki software? Can I perhaps find it in github? I’m also interested in making schematics in Orcad and layout in pcbnew.

I hardly remember doing this, but I dug out the modified version and put it on https://github.com/bobc/rnif2ki.

It may or may not work, with the caveats mentioned earlier in the thread. I think there was an issue with assigning footprints.

Oh, and I think the files are actually RINF format not RNIF…that was a typo by the original author.

2 Likes

I am making a spreadsheet VB program to solve this issue.

Long story: I am new to KiCad as well. I definitely do not like the library management scheme. I also draw my schematics in autocad, then transcribe a netlist by hand. One of the biggest downsides to drawing in Eeschema and exporting nets is that I often route traces on high-pin count microprocessors and high density connectors. I like to route traces to whatever available pin there is on the MCU or connector, and how things are best routed and connected can’t always be known ahead of time. For most stuff it works great to draw the schematic first, but when you’re doing high density stuff I want to do certain parts of the layout first. KiCad seems to be a one-way tool-chain. If I gotta dick around with it all the time to route free-hand, then I’ll just make some scripts that feed the net list directly and parts to pcbnew, and forgo eeschema altogether. Ironically, PCB123 (some freeware that locks you down) allows you to create nets while routing with a simple click between pins you want on same net. It’s awsome. I normally do the scematic in autocad, print it, then highlight the traces as I route them. If I know what pin I’m going to route to given available space, I route it and just mark up the drawing. The workflow isn’t as glamorous, but I’m very fast like this. Why doesn’t KiCad have this feature? I might try to add this feature to PCBnew myself.

[history]
KiCAD wasn’t always KiCAD.
First there were EEschema, CvPCB and PCBnew and a couple more… all standalone.
One direction workflow.
Over time this got pulled together and tighter integrated and would run under the KiCAD name.
About 3-5 years back PCBnew underwent a big overhaul to allow even more meshing and workflows that would be able to go backwards… while EEschema didn’t. But this made stuff possible like selecting a component in EEschema and it is being highlighted in PCBnew and vice versa.
We mostly got rid of CvPCB by now (it’s now a part of EEschema mostly and has no extra name anymore)
With KiCAD 5 around the corner, EEschema will close the gap somewhat and lay the groundwork for further meshing.
It will probably take another 2 years till the workflow you have in mind will be available from a framework POV at current speed.

All that being said - KiCAD lives from contributing.
If you’re eager and can do that, just get involved with the developers (KiCAD.info is a support forum mostly) and get your hands dirty.


They can always use more people to help.
1 Like

Hmmm… You can now updated component values from the simulation tool in the nightlies. That kind of thing wouldn’t be to bad/hard. It would seem pin swapping at the PCB could potentially make a huge mess of your schematic drawing though. You would basically need an auto router for the wires?

I don’t think the devs think about pin swapping. They think about gate swapping.

Pin swapping would only be possible if the pins within the symbol are swapped. (Would allow the outside world of the schematic to stay the same. Otherwise one would need an auto router for schematic as you have already discovered.)

Pin-swapping happens all the time in mcu dev projects, and in high-desity boards and connectors. A client of mine in the past wanted pcb123 work, and even though that program was ok (meh), it’s net tool allowed you to right click and add/remove a pin to a net. It was awesome.

With pcbnew I have a spreadsheet where I manage my parts and it produces my net lists. Not as easy as pcb123, but it works. My acad drawings look way better than eeschema. It’s nice to have the drawing flow by breaking up large components like connectors and processors accross pages. It takes less time to transcribe arbitrary nets into a spreadsheet (couple hours) than it does to wrestle with net names. There are no global labels in my work other that power-ground stuff. I use the pin names to describe the function of the net. Easy. Maintainable. I haven’t cracked open pcbnet, but might consider writing an extension that allows right-click-add-net functionality just like pcb123.

My spreadsheet maintains all the parts and the footprint names. I type in the nets I want in a simple list, and run vb that create net lists exactly like eeschema creates nets. Net names are created automatically. It works pretty good. When I pin-swap I just type it in the spreadsheet and run and the nets update automatically. This week I might script it all in a pcbnew macro if possible to save a button click.

My acad drawings flow better than eechema-esque drawings. I break up large components accross multiple pages, and have no global net names/flags on the drawings (which I find are a pain to trace out). I think my workflow is faster and maintainable. I love being able to get all my people using the same parts spreadsheet to order parts, get subs, input status. Then I throw all into subversion for revision control.