Generate netlist from PCB layout without schematic


I’d like to use KiCAD to reverse engineer some old arcade PCBs. I think it will be faster to draw the layout directly as what I have are PCBs and not schematics. However, I need at least to be able to produce a netlist from this layout. Is that possible at all? Can I netlist without a schematic?


I suggest you layout the pcb in the schematic editor, using the same physical layout as the circuit board.
Place the parts to match the pcb.
Draw the wires to match the pcb tracks.
Then can use the schematic netlist to check the connectivity of the pcb file.
Then clean up the schematic to make it easier to read and debug.


I thought that so. As this is an open source project, maybe I can write a piece of software to translate the PCB file to some sort of netlist as the format of output files might be document somewhere. Or at least, I can try to understand the format from the source code.


File -> Fabrication Outputs -> IPC-D-356 Netlist File


That looks like what I need. But when I tried using it I realized that the tracks I drew have no “net” assigned to them and do not appear on the IPC-D-356 netlist file. I have tried to add a net name to placed footprint pins or to the tracks but it looks like KiCAD is expecting a net name from an imported netlist and it doesn’t let me create a new net.

Is that the case? I have read the help but I do not see how to add a new net name to Pcbnew.


That seems to be true. KiCad is designed for schematic/layout correspondence. I know many people ask here how to make a small layout without schematic. But I don’t see any good reason not to create a schematic first, no matter what the use case is. I would do as Ralph said.


The workflow philosophy of KiCad is Schematic to PCB so it doesn’t natively support creating nets during layout. (IMHO this is a good thing to keep from accidentally creating or deleting nets during layout.)

There is a plugin written that might help you create nets to do what you are trying to do. Check this plugin out:

Good luck! :slight_smile:


That is a terrific plugin! I don’t know why that’s not built into the main program. It’s exactly what I needed.


See the nifty WireIT plugin above, or you could create a netlist manually, externally.

Yes, attached here is a small script I did that exports a PCBnew NET file, that you can import/compare.check for revision control in designs, that do not have a KiCAD SCH originator. (8.5 KB)


KiCad actually moves towards tighter schematic/layout integration. This is why no core dev works on something like this. Also any kicad feature must work with any other feature. Meaning if this would be implemented in kicad then it would need to somehow work with the schematic side. (So if the user has a partial schematic it should not break.)

In other words: Some things are best kept as an external plugin.