Writing an exporter and need documentation (advice) on file formats

I am a developer for a simple online schematic tool.
We would like to add the ability to export from our tool into KiCad so that work done in our tool will useful as a KiCad project.

I am trying to find documentation on the KiCad format so that I can determine what format to generate to get the most value from the export. We do not have any layout information at all, just schematic net connectivity. I am not sure if our symbols or actual wiring would be transferrable either, so I’m really looking for the minimum viable approach to exporting some useful data.

The original thought was to output some type of EDIF formatted netlist, but that does not look a supported format. I see that there is a PCBNew.net format. Would that be a suitable format?

Any ideas or information will be much appreciated.

Check the FAQ link at the top for the official documentation. The files are all text based so figuring them out might not be too hard. This is a users forum. The developers mailing list might be more useful to you.

Are you thinking about importing into a KiCad schematic or directly to KiCad pcb?

I’m just exploring the possibilities right now. I do not know what is possible, so not sure what the best approach would be.

We have users in our tool now, and we would like them to have a way to go into a full-feature tool so their work isn’t just lost. We do not have library symbols for KiCad, so what we have right now is just netlist connection information. If it makes sense to pull that into the schematic, that would be great, the user could then build a full schematic after that.

We are just looking for a one-way move, I don’t see a 2-way being possible.

Well here on the forum there are mostly users of kicad not developers. So we really can not give much advice for you.

You might get more luck over at launchpad https://launchpad.net/~kicad-developers (Join the mailing list and ask there.)

Is this the website https://www.digikey.com/schemeit/project/ ? If so it would have helped a lot if you had posted that.

The KiCad netlist is used to transfer data from schematic editor (eeschema) to pcb layout (pcbnew), there isn’t a way to import it into eeschema. Anyway, it does not contain enough data to create a usable schematic.

Practically speaking, the minimum you need to export to allow a user to continue editing the schematic in KiCad is: a kicad project file, a kicad schematic file, and one or more symbol libraries containing the symbols used in KiCad format. That is fairly straightforward, I have code which generate KiCad projects.

If the idea is to do schematic design in an external tool, and then do layout in KiCad, that is somewhat different. The netlist must contain references to KiCad footprints, so you would need to allow the user to make those assignments in the external tool. The footprints must be compatible with the schematic symbols regarding pin numbering. In that case you could export a netlist and necessary footprint libraries, and that could be imported into pcbnew.

It is all certainly doable, the file formats are not well documented but fairly transparent, it is mostly a simple matter of programming.


First, thank you for your feedback. It’s quite helpful, and gives me the insight I need to evaluate what we need to do.

2nd, I’m not trying to be difficult, but for various reasons, can’t discuss the particular tool, or confirm your assumption. One reason is just that we don’t want to talk about future features. Things come up, sometimes a feature proves more difficult than anticipated. Maybe it’s dropped, or just takes much longer then expected. All of those are reasons to remain intentionally vague.

Well, you have already publicly posted this information. https://lists.launchpad.net/kicad-developers/msg33303.html

Request for advice on building an exporting capability from Scheme-it to KiCad
To: kicad-developers@xxxxxxxxxxxxxxxxxxx
From: Ed Henderson ed@xxxxxxxxxxxxxxx

The name in your profile here is “Ed Henderson” :slight_smile:

Yikes. Yeah, I messed that one up didn’t I. :sob:

The formats are fairly well documented; you can find links here:

In the developer version (soon to be V5) there have been some recent changes which may not be mentioned in the file format docs; I haven’t been active for almost 2 years and I can’t recall if the developer who made changes has updated the docs. However, there are only a few such missing items.


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