BOM inclusion - components for the project's dongle & off-board cable assembly

My project contains a not only the PCB and those components but also few stand-alone components built into dongles or cable assemblies. For ordering the components, I want both the on-board and the off-board components included in a single BOM. Incidental to that, one of those off-board sub-assemblies is a diagnostic dongle that is used for mid-build diagnostics for which I am trying to use iBOM’s sorting ability to guide component placement order and diagnostic jumper configure order - I add a symbol field titled ClickToSortForPlacement and fill that field with sorting and construction guidances like diagnostic steps.

In my forum searching I’ve seen talk that KiCad is not set up very well to track components not having footprint connections to the PCB. But I also see Joan Sparky’s post below that might give hope of some workaround for me to, again, have one BOM all components of both the PCB and the sub-assemblies while using iBOM for guiding project assembly order with interspersed diagnostic steps:

Oct '18

I still would appreciate it if someone could explain to me the weird behavior of Kicad I described above.
Why the sub-projects? Why the elusive “New schematic” button?

You double clicked on a .sch file in the KiCAD main window which wasn’t the project schematic, right?
This starts EEschema in stand-alone-mode. It’s then decoupled from PCBnew and you can do things > like open and close single schematic files. It’s useful for importing bits of schematic files into other schematics currently:


But the connection between PCBnew and EEschema is gone then.
Clicking on a part in EEschema and getting the focus of PCBnew to the same part for example.
This only works for the project files.

The way I am currently handling this is that I have a hierarchical sheet in Eeschema where the dongle parts have their more permanent residence, but whenever a symbol field (for iBOM use) needs to be changed, I have to cut and paste (not copy-paste) the hierarchical sheet components to the main sheet, re-annotate, enter my latest revisions in the symbol fields, generate a new Netlist file, Update PCB from Schematic for iBOM to work right, run iBOM and save its .html file, then go back and delete those parts from the PCB so they don’t interfere with other work I’ll need to do, and go back to Eeschema and return the subassembly components to the hierarchical sheet.

In all this I also had to create otherwise-worthless bogus footprints that PCBnew demanded. Plus (this is incidental as well) iBOM doesn’t seem to want to show jumpers-in-footprint in the BOM list that I could really use to alert my DIY customers during their building of diagnostic steps, but I’m guessing that issue rests solely with iBOM instead of in the topic of this OP.

I guess my inconvenience is mainly during my project development in taking my symbol field edits on out to to a fully finished project, trying to restore full project presentability between each idea I get for symbol field (build instruction) adjusting. It seems to me that I am making quite a hack to get this done each time I want those symbol fields changed. Does anyone do this an easier way, maybe something that uses a non-project schematic sheet instead of a hierarchical sheet? Again, I’m hoping to have all components always within a single BOM.

I would suggest using external tool when you are trying to combine few things into single BOM like that.
iBOM can easily export it’s data into spreadsheet software (use copy button next to filters). Add to that whatever additional components and fields you need. With some excel-fu you can automate most of your process.

It probably considers them as DNP. Try unchecking “Blacklist virtual components” on the general tab.

The only problem with using Excel is that the fix is PC-specific rather than project-based. Otherwise good idea. Now, I say that from a Linux box, but I do enjoy VBA just the same. Thanks for the other idea, too. Perfect fix!

There are other BOM scripts around - for instance

This managed to handle configuration options for DNF parts and multiple board varients. I am not sure it can solve your issue but it might be worth taking a look at.

And of course the FAQ article: How to create a bill of materials (BOM)? (Listing further plugins)

And a heads up: KiCad is not meant to be a project management tool but a pcb design tool.
Every single pcb of course has its separate BOM that then typically gets connected in your project or material management tool of choice

Easiest option for small projects is a simple spreadsheet program with a table per pcb and a separate table for your material management. Something like this: MaterialElektronik.ods (326.4 KB) (Sadly in german and a older backup as i do not have access to the server this file is stored on right now.)
Management is made a lot easier by including house part numbers in your BOM.


And, I predict that attempting to use KiCAD as a project management tool (or MRP system, or Configuration Control, or whatever the currently popular buzzword is) will lead to frustration and mistakes in the long run. Let the swords be swords, and the plowshares be plowshares. A metalsmith who tries to forge a sword into a plowshare is likely to end up with a twisted piece of metal that performs neither task well.

I definitely agree. However, the unstated assumption at the foundation to this suggestion is that you have established an effective system for material control, and have the discipline to maintain it. (In my early incarnations I protested and fought against the idea of internal part numbers for anything that wasn’t manufactured internally. I now see the wisdom and efficiency of such systems.)


1 Like

KiCost (external python tool for BOM cost spreadsheet) have sub part / multi part capability.
Also allow read from different softwares and append a CSV part number list to the original generated KiCad BOM file.
Curiosity: in KiCost you use PART1 ; 5 : PART2 at KiCost manf# code field to define that the specific part is composed by one PART1 and five PART2 (for example to compose a conector).

I’ll be a while digesting the ideas offered. Be assured I appreciate them very much!

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.