Interactive Html Bom Plugin for KiCad 5.0


Take a look at the KLC check script:

There we use [‘1’, ‘A’, ‘A1’, ‘P1’, ‘PAD1’]

I think a better method would be to analyze all pad numbers of a part. Example: sort alphanumerically and use the lowest entry. (Or at least this can be done if none of the predefined options is found)


wow, thank you so much for this! I saw it on twitter and hackaday and bookmarked it. It is so awesome!
I’m just working with a Chinese assembly house and have asked them if they want to use this instead of screenshots - I think it’s going to be so much easier.


Thank you for providing this utility. I downloaded and used it immediately this morning with most satisfactory results. The interaction with the layout to highlight components is a great idea. I was also able to simply save the BOM as a text file, import it into a spreadsheet and remove columns that are irrelevant to stores/purchasing (i.e. footprints); just what I needed to find originally. As a side note to any users: simply having generic values in your Bill of Materials (like 22uF) is not very helpful to purchasing or manufacturing, they need unique company or manufacturer codes (sorry if this doesn’t really belong here).


In upcoming version 2 of the plugin there will be an option to backfill BOM with extra fields pulled from netlist or xml file generated from eeschema. You can then put manufacturer part # or whatever else you want to help you identify parts in additional fields on components in schematic and that will appear in bom.


Excellent, that sounds just the ticket. Thanks marra!


@qu1ck, interesting, just some points to help your road map. This option to fill with BOM / netlist option is nice, but:

  1. The python script should try and pass or warning if don’t found any netlist / xml BOM;
  2. May be better use the BOM instead the the netlist, because now there is an option to synchronize Eeschema->PcbNew without netlist file creation. Even, in the developer “forum” (launchpad) there is some discussion to add new information at the netlist / Eeschema / PcbNew files, what should create some problems at KiCad 6, but the xml will be keep with changes;
  3. The interactive HTML plugin will have to check if the XML file is up-to-date with the Pcb (maybe checking with all the references and values are equal to the Pcb);
  4. If you decide to XML file, you can use with routine, which already ready manf# (and it’s synonyms) code and could help us to integrate the tools around some standardization.


Thanks for pointers

  1. It won’t look for the file, you have to choose it in file dialog or pass on command line.
  2. You will have option to use either netlist or xml. In the future maybe reading schematic files directly will be implemented too.
  3. Yes, I already have some checks. It will show a warning if components don’t match.
  4. Wow, that code has more comments than code. I don’t think I will need much of that logic, you will just choose field name(s) in GUI or pass as command line arguments in my case.


(2) Better wait for the eeschema python package (to ready directly the .sch file), already in discussion but not implemented, this will leave your code not dependent of file formats.

(4) Yes, a lot of comments due some refacture and bug fix to read since KiCad v4 and interpretation of the fields by different users
behaviour (e.g. manf#, mpn, p# are translated to manf#; digikey#, digikey-p#, digikey_p# as digikey# … being better to group in this specif made tool).