Interactive Html Bom Plugin for KiCad

Hi all,

I just released first beta for my plugin. I find it super handy for building prototypes.

Instead of describing what it does and how is it different from all the other BOM plugins I better show a nice demo.

And here is the github repo.

More demos, download link, install and usage instructions are on github.

Try it out and let me know if you find it useful. If you find bugs please report them, if you would like to see some features discuss below.



wow the demo is awesome!
i will have to try this at the next project!

very nice though!
I also really like the new toolbar button added! :smiley:

PS a feature request:
add the Front or Back property on the Materials List…

Great BOM!!!

I’m tried with my project, generate ibom.html is perfectly worked.

This is very respectable jobs, thanks.

ok- i think i have to wait until the problem with linux and python is fixed in 5.1 …
currently on ubuntu with the kicad 5.0 stable or nightly it just crashes pcbnew directly…

how heavly are you using the kicad python api?
would it be possible to run the script stand alone to generate the file?
(i think the answer is no…)

I see what you are saying, yes being able to quickly filter out only on one side is useful. I dont want to split bom table row but maybe I will add a filter checkbox to show only front or back components.

Sorry, I didnt really test it on linux. I will try to test ubuntu vm soon.
You can run the script standalone. It just has to use same python interpreter that kicad uses. Just run this in terminal:
path/to/kicad/python path/to/ path/to/board.kicad_pcb

At least that works in windows, I will test in linux soon.

The issue should be only related to the fact that kicad v500 doesn’t have Action Scipting enabled… It is related to a Linux incompatibility between py2.7 and the actual py3 distribution of GTK2 if I remember correctly.

Just for info, i have just tried this out on two recent nightly installations running on MacOS Sierra and it works perfectly. I am impressed!

an other possible improvement/suggestion, if I can, is the following:
if you filter i.e. a single resistor in the list, only the single resistor should be highlighted in the board.

Thx again, very nice plugin.
BTW I’ve learned how to add a tool button i.e. to my Annular checker script :smiley:

Ok, python developers… is there a way an end user could disable the toolbar button for installed scripts and only use the menu? I fear toolbars getting over crowded with icons…

Maybe a v6 wishlist item?

It is not between python 2.7 and python 3. (in this case)

It is because some (most) linux distros do no longer supply wxpython compiled against gtk2 but only against gtk3. This breaks every part of the python interface that needs wx support. (If i remember correctly then action plugins should run as long as they do not by them selves need wx stuff. The python console and the footprint wizard does not work however. But i could have it backwards here)

1 Like

Thanks for the report. I was worried about MacOS the most, I don’t have an easy way to test it either.

You absolutely can. Your work on KiCad stepup and 3d model support is what partly inspired me. Let me take a chance to thank you for that :slight_smile:
Regarding highlighting particular component, I’ve thought about that before and issue is not quite straightforward. I’ve caught myself frequently using filter box to do two different things, find reference (which is what you are asking for) and find group containing reference (which is what the behavior currently is). Since I can do the former in Pcbnew easily I opted to implement the latter in plugin. I think one input field is just not enough to capture the intent, I will probably add another “reference lookup” input.

Buttons in plugins are not officially supported, I kind of rammed it in with a hack. If/when KiCad officially supports buttons hopefully they will add tools to selectively disable buttons from some plugins too. I will advocate for that on dev mailing list.

Main plugin code does not depend on wx at all, it only needs and _pcbnew.pyd in python classpath. That gives me hope that running it from command line should work with no issues.

1 Like

Well, given the published reports of Wayne’s (at least original) attitude about Python scripting only being ok if it doesn’t cause undue effort for the other devs, I’ll not poke the bear. I’ll let you handle that on the dev list. :wink:

I mentioned on another thread that when the action script menu build option is off the toolbar button is still there, and your script functions properly when launched by the toolbar button. I’m on Win10, so hopefully this bodes well for the script working on Linux via the toolbar button.

I just submitted the first issue on GitHub for this plugin:

The issue is spaces in the path for the KiCad project folder.

Update: For the peanut gallery, the error was with windows trying to open the resulting local web page. The BOM web page was generated correctly.

Useful plugin!

I’ll try to work with him. Looks comfortable and informative!

Just checked on Ubuntu. Plugin indeed crashes Pcbnew, won’t even launch in standalone mode if it is installed. You can still run it from terminal though.

I will update instructions on github for linux users.

1 Like

Perhaps you could add a couple of radio buttons next to or under the filter box to select the type of filtering?

Isn’t an input box and a radio button more clutter than 2 input boxes?
They will have different semantics too. Filter searches all fields and does substring matching, ref lookup will only look for exact reference match so that it doesn’t match “R3” with R30-R39. I think switching that with toggle will be less intuitive.

This thing looks freaking awesome, thanks for sharing! Can’t wait to try it; I have a board to hand-solder next week :slight_smile:

Wow this is great, the demo looks really promising. Sorry if you have already answered this somewhere but I couldn’t find it; what happens with custom fields? I add the MPN to every component so I’d love to see that in the BOM list as well so I know which bag to grab. Awesome work!