Hybrid KiCad / ? workflow

Does anyone have a working hybrid workflow with capture in KiCAD and layout in something else (e.g. Altium)?

I’ve been using KiCad for several years with great success on mostly smaller projects. I now find myself wanting to contract out the layout for a relatively complex pcb, but Altium is the local favorite for enterprise and contractors. I’m evangelizing KiCad as much as I can, but pragmatically the pcb layout will need to be done by someone other than me, and they will use their preferred tool which will not be KiCAD. :frowning:

Does anyone have any experiences with hybrid workflow? Fwiw, I don’t see this as selling out. Just giving local contractors more insight and experience with KiCad means the next time I have a complex project maybe it can stay in KiCad.

Cheers,
Dale

The fundamental question here is, “Can (Altium, Protel, Orcad, Mentor, etc, etc) read a KiCAD netlist, or a KiCAD schematic file?” THAT question should be posted on the support Forums for those tools.

Just speculating . . . if you did nothing more than started PCBNew from EESchema, can you export a file format (possibly Spectra?) that one of those other layout programs could import?

Is there any place on the 'net where developers can advertise jobs specifically for KiCAD freelancers?

It’s good to make your acquaintance, Dale
Dale

1 Like

EESchema does claim to be able to generate OrcadPCB2 and CadStar netlists. (I don’t know how good those netlists are.) If the target 3rd party PCB Layout program can import those there might be a possibility. Or someone might be able to write a custom script to translate from the EESchema output to the target PCB Layout program netlist inputs.

I also notice that the netlist generator window has a button for plugins. I’ve never used this… Is this a way to generate custom netlists (like what would be needed to target other netlist formats)?

I remember (back in the 90s) I worked for a company and we used non-integrated capture and layout. Our schematic capture program was called “Schema”, and the PCB Layout was Raycal Redac Cadstar 5. One of the in-house programmers of the company wrote a program that converted the Schema netlist to Cadstar netlist. Granted, because we didn’t 100% trust the translation, and (as I later discovered when I started PCB layout on Cadstar) it was trivial in Cadstar to accidentally delete a netlist line if one was over enthusiastic with the delete key when ripping up traces, we always did a schematic to Cadstar netlist to printed photo-plot verification check manually. For the more complicated boards that would take 3 of us a couple days in the conference room to do. We even paid extra for a photo copier that would copy to red or blue toner (in addition to the regular black) so we could photo copy both signal layers onto one sheet. We would copy one layer with red, then feed the same sheet into the copier and copy the other layer with blue to be able to follow traces.

1 Like

Yes, the netlist and BOM generators work the same way. KiCad generates an “intermediate netlist file”, which is actually an XML file, then runs an external program which may be specified by the user. There is a guide https://github.com/KiCad/kicad-doc/blob/master/src/eeschema/eeschema_creating_customized_netlists_and_bom_files.adoc which shows how to do it with XSLT, which personally I find completely horrible. But you can run any executable program or script, it doesn’t have to use XSLT.

There is Python code already part of KiCad to read the XML netlist, which can be used to generate BOM or netlists. https://github.com/KiCad/kicad-source-mirror/blob/master/eeschema/plugins/python_scripts/kicad_netlist_reader.py

1 Like

It’s great to have tools that can parse and decompose the KiCAD netlist file. The long-standing obstacle, as I understand it, is knowing the structure and syntax of the netlist file you want to create. ORCAD, Mentor, CADStar, Altium, etc, all use proprietary file formats - and they are all different. For three decades or so the industry has acknowledged that this is a problem but greed, fear, inertia, and prejudice have blocked meaningful solutions.

Perhaps my ignorance breeds naivete, but it seems like the KiCAD file formats are viable candidates for exchanging information among incompatible EDA tools. The KiCAD team needs to stabilize and lock down a format and syntax, even if it includes incompletely defined provisions for features that have not yet been implemented. Then it falls on the other guys to give their products the ability to import and export the KiCAD formats.

Dale

According to my research, Altium can’t read netlists :

https://www.eevblog.com/forum/kicad/convert-kicad-netlist-to-altium/msg2159227/#msg2159227

Altium doesnt operate with netlists. The schematic and PCB is linked together with component links, and there is a lot more information shared between the two tools than the traditional software. Therefore the question doesnt really make sense.

Altium can import a whole bunch of schematic and PCB formats, Importing Design files (PDF) but I don’t see any formats common with KiCad, possibly apart from PADS.

There is a PADS netlist export in KiCad, I have never tried it. I recall there was a user interested in PADS import/export (“PADS” is a really hard term to search for!).

There is a format called EDIF, which didn’t seem to catch on. Oddly, there is a claim KiCad supports EDIF, https://kicad.org/help/file-formats/, but I can’t find it in KiCad anywhere.

I expect there are others, but one is https://www.freelancer.com/work/kicad/?q=kicad

I am fairly confident that will never happen! KiCad is a code driven project, not specification driven.

2 Likes

Hi @dchisholm . Good to make your acquaintance too, you’ve given me added motivation to get my own introduction written :wink:

I posted here instead of the Altium forum because KiCad has motivation to work with Altium (being the underdog) but there is not so much motivation for Altium to work with KiCad. From what I’ve read and deduced, Altium creates native-format import wizards for alternate ECAD software in order to convert users to Altium (clearly they don’t see potential $$'s from KiCad users since they don’t have a KiCad import wizard), and they’re not interested in providing round-trip interoperability. Once in, you’re in forever.

@SembazuruCDE I agree this would have been easier when there was more separation in the ECAD space and publishers had to support hybrid workflows because that’s the world customers were working in.

@bobc thanks for lending further support to what I had come to believe, and for referring me to freelancer.com. I see there are a couple posts for KiCad developers there now and will give it a try.

Thanks all,
Dale

2 Likes

That is true of pretty much any commercial productivity app that I’ve seen since I’ve started paying attention in the mid 80’s when my family got our first Amiga computer (upgrade from TRS-80 model III).

I suspect that discourages anybody outside the KiCAD development team from creating a tool that converts between KiCAD file formats, and any other file format. I’d be afraid of my work becoming irrelevant and meaningless when the next version is upgraded.

Dale

1 Like

@dchisholm I’m not so discouraged, it seems a viable solution might be a netlist plug-in, and the netlist API is presumably more stable and easier to maintain with than working with .sch or .kicad_pcb files directly.

gEDA has a gEDA->AD via a “Protel ASCII” script[1] which transfers the layout (not schematic) but could be the conceptual start of a KiCad to PADS plugin. Transferring the layout instead of schematic may work better because it would allow designing the mechanical board outline and doing critical component placement in KiCad and then final layout in some other tool (one-way though). @bobc do you have any thoughts either way? (exporting from schematics or from PCB?)

I also found AD can re-create a design from a Gerber set, but I don’t know if this would work from Gerbers created from an essentially un-routed design. I’m also wondering if it would be necessary to have footprints for all the parts, which could be extra effort but would be lost if the contractor doing the layout is expected to provide the footprints and be responsible for them.

I’ll investigate both paths further and post updates if anyone is interested.

Cheers,
Dale

[1] https://geda-user.delorie.narkive.com/TbmDoFcs/geda-pcb-to-protel-ascii-file-format

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.