Interactive Html Bom Plugin for KiCad

EDIT: forgot to check github before posting here https://github.com/openscopeproject/InteractiveHtmlBom/issues/73

@qu1ck neat plugin! :slight_smile:
Since Wxphonenix has been enabled, I finally got around to test it inside Kicad, instead of Terminal.

I does however not really work. Is it a matter of this script not being Python 3 friendly?

Application: kicad
Version: 5.1.0-rc1-d1c9330~74~ubuntu18.10.1, release build
Libraries:
wxWidgets 3.0.4
libcurl/7.61.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.4) nghttp2/1.32.1 librtmp/2.3
Platform: Linux 4.18.0-15-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
Boost: 1.67.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.61.0
Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=OFF
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=ON
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON

The second google hit for “xrange python”: https://www.geeksforgeeks.org/range-vs-xrange-python/

Already fixed in upstream, please download latest from github.

2 Likes

This is a great plugin, thanks for making it available. Seems like a perfect export of one of our complex open source boards, no fuss, first try.

This is Turtle v1.0, exported from Eagle to KiCAD, and then as Interactive BOM:
http://www.coresemi.io/docs/turtle_bom.html

Nice board.
Pro tip: you can exclude the stitching vias that you have as components by adding them to blacklist in plugin settings (wildcard is supported so VP_* will exclude all of them) or by marking them as virtual in pcbnew.

1 Like

Hello qu1ck,

that’s a great tool. It makes manual PCB assembling a lot more comfortable. I have a wish:

I have added a partnumber to many libraries for parts I have in stock. Do you see a possibility to show manually added fields of parts in your interactive html bom? Than it would show the position where to find the part too.

One of the comments was talking about a symbol for your interactive bom. Where do I find it and how is it to be installed?

Regards

Norbert, DL1EBN

I can answer.
@DL1EBN use the “Extra fields” tab on the GUI, just create the XML BOM file from Eeschema first.

As hildogjr said, that is already possible. Generate netlist file or xml bom from Eeschema and when you run the plugin it should pick it up automatically on extra fields tab (if for some reason it doesn’t choose the generated file manually) and then your custom fields will appear in the list, tick whichever you want to appear on the bom and that’s it.

You mean toolbar icon? Just follow the instructions for installation. Unless you are on linux icon should appear in pcbnew. If you are using linux wait for KiCad 5.1 or use current nightly build, plugin icons are properly supported there.

I’m currently using the latest nightly of KiCad on win32, but the plugin doesn’t show up, despite following the installation instructions. Is it related to the various SCRIPTING options that are disabled, according to the version info below ?

Application: kicad
Version: (5.1.0-rc2-26-g643d884fd), release build
Libraries:
wxWidgets 3.0.4
libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 7 (build 7601, Service Pack 1), 32 bit, Little endian, wxMSW
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.68.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.61.1
Compiler: GCC 7.3.0 with C++ ABI 1011

Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=OFF
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=OFF
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON

Those flags look fine, the ones necessary for scripting are
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_WXPYTHON=ON

And if you want the plugin menu
KICAD_SCRIPTING_ACTION_MENU=ON

I will need some more info to help you debug the issue.

  • When you say it doesn’t show up do you mean the button on the toolbar or does it not show up at all in the Tools->External plugins... menu?
  • Which version of the plugin are you using? Latest from github or particular release?
  • Where did you put plugin files? Did you maintain directory structure and avoid any additional intermediary directories?
  • Open scripting console in pcbnew, paste following code into it and copy everything you see there here:
import pcbnew
print pcbnew.NOT_LOADED_WIZARDS
print '---'
print pcbnew.FULL_BACK_TRACE
print '---'
from InteractiveHtmlBom import plugin
plugin.Run()

Thanks for your reply. I found what was wrong :wink: Mix up between directories between KiCad stable and KiCad nightly !

Great tool !

1 Like

Hi qu1ck, i have a feature request.
A progress bar would be amazing, filling up a percentage bar depending on amount of components sourced, and placed.
f.ex. If all components have been sourced, then the progress should reach 50% and when all components have been placed it reaches 100%

This would be an awesome feature to have in some corner of the browser window.

i use this tool every day basically

That’s a good idea, I filed https://github.com/openscopeproject/InteractiveHtmlBom/issues/77
Feel free to add any other stats you think would be useful for assembly.

Have been using your tool for a few weeks now and it is absolutely brilliant.

Thanks so much for your effort. Honestly, it is tools like this that make KiCAD compete, or in this case outclass, the likes of Altium, DxDesigner, OrCAD, etc.

I agree to all the comments above: it’s a brilliant plugin, and I think it should go further.
Who also thinks that this tool should be integrated in KiCAD stable?

1 Like

I considered that at some point, rewriting plugin in cpp wouldn’t be a problem but being tied to KiCad release cycle is a huge downside.
I think this tool works better as a plugin.

That said, KiCad really could improve it’s handling of plugins in general. There are at least a few quality plugins that work well and add very useful functionality to the package but people just don’t know about them.

If KiCad had official plugin manager that would simplify discovery and installation of the plugins, including compatibility and version checks, that would go a long way. I may work on this at some point in the future.

5 Likes

Sorry for the dumb request, but I’m not able to see the links to datasheets in the generated BOM; the datasheet field is not even listed in the extra fields: how can I have that field appearing in the generated BOM?

Thanks

Not a dumb request at all. Datasheet is not an extra field, it’s built in, currently the only way to show it is to copy it to another custom field and include that one in bom. But it will not show up as a link.

Maybe, datasheet (that is a special filed at KiCad) could be add by option, if it exist to the component in the XML file, as link to the reference / value column.
(adding a checkbox option at Extra fields tab)

My board has SMD scattered amongst taller and through-hole components which necessitate care being given to the order in which they are placed when hand-soldered. I think to have the placement order provided in a sortable “Extra field”, but don’t see how to achieve this goal (KiCad v5.1). Am I missing something? I’ll admit to being very behind the curve here.