Interactive Html Bom Plugin for KiCad 5.0


Worst case you make two boms. One for ordering and one for manual population. (The ordering bom would then be made from within eeschema as your fields are defined within the schematic not the pcb side of things.)


Oh, I didn’t think about whether that data is available in pcbnew vs eeschema, thanks for clearing that up. How do others work with that? You buy parts with some MPN, how do you then keep track of parts for manually populating?


What is interesting is in the readme for the plugin qu1ck talks about potential support for “Description and Part columns are not supported/tested yet.”. AFAIK the description isn’t in pcbnew either, so either he is planning on scraping the schematic file or scraping the BOM xml file generated by eeschema.

@qu1ck: If your idea is to scrape the schematic file directly (I don’t know if I would do that because it is known that format is up for changing…), you might want to work with the author of the “Arrange Like Schematic” plugin. (Here is the github page.) He has already started on a schematic scraping library as part of his plugin.


Holy Batman. That looks the duck’s guts. Nice job.


LOL! you sound funny, but i do agree with you! this does looks the duck’s guts and that’s an amazing job! thanks everyone for answering the questions as i was having similar problems. i was wondering if i may ask you questions as well? as i’m new here. thanks for everything!


Looks amazing. Would be great to be able to go the other way as well - mouse over footprint to highlight part info


I don’t actually remember exactly what my intention for those fields was, I wrote majority of this plugin about a year ago and it started as KiBom fork. That’s where those fields are from but probably because that info is not readily available in pcbnew I didn’t implement those fields right away.
I will look into it, but until those fields are implemented maybe I will just remove them so they don’t take space.

Good idea, I’ll add github issue for this to keep track. However since the result is achievable in pcbnew I will prioritize it lower compared to functionality that this plugin adds on top of pcbnew.


Second beta released on github with bunch of improvements.
Update your plugin.

Edit: also if you had bom generated with previous version you can delete pcbdata.js file, it will no longer be recreated. Everything is in ibom.html now.


Looks very useful indeed, great work!

Just so I understood correctly though - it is not possible to use the script in standalone mode from command line using a PCB created with KiCad 4, correct?


If you have kicad5 installed it should read v4 files too, they aren’t really different.
But if you only have v4 plugin will most likely crash. There were a bunch of incompatible changes in swig interface. I did an if/else for some of them but at some point I stopped testing on v4 so there is a good chance that it is broken on old builds.


@qu1ck, such a nice plugin! (with KiCost now make my developer life easer)
Fill ideas:

  1. Put the generated HTML page in the project folder, not need create a subfolder (I saw that just 1 file is created);
  2. The name of the file could be “%PROJECT% - iBOM.html” (make easy to pass to someone that is help in the prototype);

I did this small change and pull request to merge.


I think to add this as a column we have to deal as KiCost in the file

that have a python dict to make the equivalence between MPN / PN / … (that for us developers are acrimonious with the same mean). But yes, could be a nice idea.


2 ideas more, if I have some time I will propose a code merge…

  1. R1, R2, R3, R4, … could become R1-R4 on order_refs(foo) of the KiCost file have the function to do that.
  2. Components if the DNP / NOPOP defined could be not listed on BoM.
  3. Use the field_name_translations also to translate between “desc” and “description”.

Just some think that I pick up from the other tool.
I did implement on my pull request because I have to check if “R1-R4” will affect the search box.


Graphics polygons are not supported
PCB cannot create a BOM table if it contains graphic polygons.
Make a suggestion: if can select the components through the preview chart, highlight the tabular parameter and all the components.

Thanks for developing such a good use of plug-ins


Already on the whishlist by the own author


As mentioned in my wishlist item, @qu1ck mentioned that one can tag DNP components as virtual components. (This does take manual intervention at the PCB level to match information in the schematic.) I went into more details in your posted issue (found here for the peanut gallery) on github.


This is a really nice tool. You should add it to KiCad 3rd-Party Tools so others can still find it long after the initial enthusiasm subsides.


Sorry, I’m not sure what that means. Some of my demos have graphic polygons, tool works just fine.
You have to patch your kicad installation though (see instructions on github) and patch is only available for windows for now. My mainstream patch to fix this for all platforms should be available soon.
Add more details when you are reporting an issue please. Describe what “cannot create BOM” means, does plugin crash? Does it create BOM but there are no polygons? If you run it from command line or scripting console as described in instructions, what is the output?

Thanks, I sent a PR.


Hi qu1ck,
It’s a great plugin, I liked it. Try to develop this plugin to get an interactive PDF. Good job keep rocking.


Sorry, no plans to do pdf. Non static pdfs are quite tricky to generate and poorly supported in most viewers.
Html can be viewed on virtually any device and is much more lightweight.