Interactive Html Bom Plugin for KiCad

You can highlight specific component by typing it’s ref in reference lookup field.
There is no easy way to make bom table list each component one by one but you can hack it by adding custom field with unique number for each component and including that field as extra column.

You can always open bom in 2 browser windows side by side and zoom each separately.

You can always open bom in 2 browser windows side by side and zoom each separately.

The idea is in one move select 1 component and see it in two location highlighter , above - zoom further, below - zoom closer.

So more like an overview and then a zoomed view of a certain part ? Something like this right?:

image

image

Can you explain your use case better? I.e. why do you need such functionality, what is the problem you are trying to solve.
Because it seems to me that simply having additional zoomed in view is not useful, unless that zoomed in view autofocuses on each component you highlight. But not knowing what you are trying to do, auto zoom in may not be useful either.

3 Likes

yea, exactly
and in a same time to highlight chosen component

My guess: small screen and (or) old eyes.

Just today I planned to use this html BOM for assembling a board. I had a small 10" laptop for that purpose - there’s not so much room in the soldering area that a full-blown laptop or PC would be good. But I wanted to try an external monitor which lead me to trying to find a HDMI adaptor from another desk. That was full of stuff and dust, which lead me to clean it up and eventually vacuum cleaning the whole room. So I didn’t have time to try the BOM.

But I believe some kind of automatic zoom could have helped. I’m afraid that my eyesight isn’t so good anymore that even a normal monitor would help if I have to change between the microscope view and the monitor view.

It’s a challenge for software UI design if the user has to focus to different distances and so on.

Ah, yes, you’ve run into one of lesser advertised features of my plugin, it helps you fight procrastination and achieve zen by accomplishing life goals one chore at a time. Recommended by 4 out of 5 dentists. :slight_smile:

On a serious note, problem with autozoom is it doesn’t fit main use case at all. Plugin is supposed to give you overview of the board with all components locations. What should the plugin zoom in on if there are 2 components in different corners of the board?

I suppose there is value in having different kind of html page, that is not a BOM at all, just all components listed individually with ability to highlight and autozoom one by one. This doesn’t fit current plugin design but I’ll think about how it can be done. Maybe by choosing from multiple output options where default is BOM (current output format) and others will be some customized variations.

Even without the autozoom, it would be nice if grouping was done in the HTML/JS rather than Python and could be toggled. Sometimes an assembly list is more useful than seeing all the components together (if there’s more in the group than can easily be kept in working memory).

The more I think about it the more I like this idea. This will incidentally solve another UI challenge I had regarding allowing to individually set checkbox flags for components.

Not sure if this is specific to my system.

I use firefox v7.1.0

You probably mean firefox 71 and I don’t see anything wrong on the screenshot.
Like I explained there is a tradeoff between making use of vertical space and making long listings more convenient to view. I’m leaning towards the first as there are options on how to battle second problem but you are out of luck if you have small monitor and need that vertical space.

More features: you can now switch between grouped (standard) view of the bom, ungrouped view and netlist view (only if netlist info was included when bom was generated).
image
See demo link in the first post for example.

Feedback is always welcome.

2 Likes

V2.3 is released.

New in this version:

  • Settings export/import
  • Image export. You can save rendered pcb image with or without background up to ridiculous 16000x16000 resolution. Enjoy 100mb png files.
  • Chamfered pads support
  • Bezier curve support
  • Rotated parts now have better fitting rotated bounding box in component highlights
  • lzstring compression of pcbdata. BOM html files will be smaller.
  • Bom mode toggle. You can switch between grouped, ungrouped and netlist views.
  • Add tracks and zones support. If tracks/zones option is enabled during bom generation you will be able to turn their rendering on and off in html page.
  • Add netlist support. If netlist option is enabled during bom generation then clicking on pads or tracks will highlights the net. Additionally can switch bom table into netlist mode and have overview of all nets. Highlights by hovering and filtering works just like with components.
8 Likes

Hi Mr. qu1ck,
thanks for your great plugin.
I want to ask if it is possible to compare two variants of boards in one html file.
Thank you.
Jara

Hi and welcome to the forum.
My plugin is not designed to do comparisons. You may want to look at https://github.com/Gasman2014/KiCad-Diff

2 Likes

Hi,
I have an issue with Silkscreen zones (Graphic Polygons). They are rendered correctly but not at the right position.
Thank you!
David

Can you share your pcb? Or something that reproduces the issue because I don’t see it happening with my files.

2 Likes

The problem seems to happen only when I move or duplicate the polygon.

Thanks, I can reproduce now. This is a bug in KiCad, I’ll either fix this upstream or add a workaround in plugin soon.
BTW if you close pcbnew and reopen then the bom will generate correctly so you can do that until the fix is available.

3 Likes