Interactive assembly BOM
Hand-assemble a KiCad board from its .kicad_pcb: the BOM grouped by value and footprint with placed and sourced ticks, the parts of the row you are on lit up on front and back drawings (click a part to find its row), side and DNP filters, progress kept per board, keyboard-driven, stock and bins from your Parts inventory, and a standalone HTML copy to keep with the board.
Added
Works with
- KiCad board viewer Electronicsopens the board you are looking at in the board viewer, and takes back the one open there
- Electronics parts inventory and BOM manager Electronicsreads your stock and bin locations for every BOM row (read-only)
How to use it
When I solder a board by hand I want to know where the next part goes. I want to tick it off and not
lose my place when I put the iron down. InteractiveHtmlBom
does this as a KiCad plugin. This page does the same job from the .kicad_pcb, in the browser,
without installing anything. It also tells me which bin each part is in.
How to use it
-
Open the board’s
.kicad_pcb(KiCad 6–9), or drop it on the page. The sample is my 4-layer sensor board. A board you opened in the board viewer opens here too, and Board viewer → takes it back. -
The BOM groups parts with the same value and footprint (
10k,10Kand10000group for resistors, capacitors and inductors), in InteractiveHtmlBom’s order: capacitors, resistors, inductors, diodes, ICs, crystals … connectors last. Parts marked exclude from BOM in KiCad (mounting holes, fiducials, jumpers) are left out. One row per part ungroups the rows. -
DNP parts (KiCad 8’s Do not populate, or a value or
DNPfield saying so) get rows of their own, greyed and struck through. Show them, hide them, or list only them. They do not count towards progress. -
Click a row and its parts light up on the front and back drawings. Click a part on a drawing to find its row. Front / Back / Both limits the rows and the drawings to one side. The back is drawn as seen from underneath. Parts on the other side are faded.
-
Tick each row sourced (you have the parts out) and placed. A row is ticked when all its parts are. Ticking it ticks every part on it, and it shows half-ticked when some are. Placed parts' pads turn grey on the drawings. The bar counts placed parts out of the fitted ones.
-
Keys: ↑ ↓ (or J K) move through the rows, Space marks the row placed and moves to the next one, S marks it sourced, F / B / A show the front, back or both, Esc clears the selection.
-
Stock and bins: with Stock and bins from my Parts inventory ticked, each row shows how many you have and where, read from Parts inventory in this browser. It matches by the footprint’s MPN or supplier part number fields (from the schematic), or for passives by value and package. It only reads the inventory.
-
Save as HTML writes one self-contained page with the drawings, the BOM, your ticks so far and the stock column. It has no links to this site and needs no network, so you can keep it with the project or open it on a bench laptop. Its ticks are kept by the browser that opens it.
Progress is kept per board in this browser. A board saved again with the same parts keeps its ticks. Clear ticks starts again.
Works in current Chrome, Edge, Firefox and Safari, on desktop, tablet and phone.
Limits
-
The drawings show the board outline, silkscreen, fab layer, pads and (if you tick it) tracks. Zones and inner layers are left out to keep the view clear. The board viewer draws everything.
-
The BOM comes from the board’s footprints, so fields that exist only in the schematic are missing. KiCad copies symbol fields onto footprints when you update the PCB from the schematic. For a BOM with stock shortfalls and prices, use the KiCad BOM rollup on the schematic.
-
KiCad 9 design variants are not modelled. DNP is per footprint.
-
Text on the drawings is a system font, not KiCad’s.
Related: reflow profile, SMD marking codes, SMD packages, label maker (labels for the bins).
Privacy
The board is read from your file in the browser and kept only in this browser (IndexedDB, shared with the board viewer). Your ticks are kept in localStorage. Parts inventory is read from this browser’s storage and never changed. Nothing is uploaded, and the saved HTML page makes no network requests.
Linking to an example
Share link copies a URL with the view settings (side, DNP mode, grouping, tracks). It never includes the board or your ticks, so a link opens on the sample.
| Parameter | Meaning |
|---|---|
|
A preset (below) |
|
|
|
|
|
|
|
|
Presets: the sample board · back side only · one row per part, DNP hidden.
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser; nothing you type leaves this page.