Enabling the PCB Value to differ from that of the schematic & BOM

As far as I know, KiCad does not provide a mechanism by which I can systematically and reliably, in the context of repeated netlist reads into Pcbnew, have a different value for a component in the PCB with respect to the value of the same component in the schematic. I can manually edit the PCB design to achieve this, but the next time I read in the netlist generated from the schematic, my changes are replaced with the value from the component in the schematic.

I wrote a program (C++, public domain, with Windows executables) which reads the netlist produced by Eeschema to create a modified netlist to be read by Pcbnew, so that I can specify a different Value for each component in the PCB, if I want to. This involves adding a field named “PCBVal” in the component in the schematic, and setting its contents to whatever I want in the PCB design. This enables me to have some long and descriptive value visible in the schematic (such as the full part number of an SMT Zener diode: “BZT52H-B5V6”), which will naturally appear in the BOM (Bill of Materials), but have something smaller as the value to appear on the component legend of the board (such as “5V6”).

By making the new text just a space, this enables me to have a value of a component on the PCB which is genuinely invisible when editing the PCB, since a value which is set to be “invisible” but has non-space characters is still visible on the screen in gray.

All the details are at: http://www.firstpr.com.au/kicad/#kpv

This page also has a cheatsheet on setting up the BOM generation system under Windows so it works - something which is not specified exactly in the Eeschema User Manual. This CSV file BOM system naturally creates columns for any new field which exists in one or more schematic components, so differences between what should appear as the Value in the schematic and what should be in the BOM are easily implemented by adding fields into your own personal schematic library in a systematic fashion.

However, as far as I know, the only way of systematically maintaining different pieces of text for the Values of a component in the schematic and the board design is to do something along the lines of my program. If it turns out there is no other way, perhaps this sort of override capability would be a good thing to introduce into the program itself.

1 Like