KiCAD BOM Management

KiCAD remains a popular tool for designing PCBs and other circuits, and with good reason: it’s versatile and it’s got pretty much everything needed to build any type of circuit board you’d want. It also comes with a pretty steep learning curve, though, and [Jeff] was especially frustrated with the bill of materials (BOM) features in KiCAD. After applying some Python and Kivy, [Jeff] now has a BOM manager that makes up for some of KiCAD’s shortcomings.

Currently, the tool handles schematic import, like-component consolidation, and a user-managed parts database that can be used to store and retrieve commonly used parts for the future. All of the changes can be saved back to the original schematic. [Jeff] hopes that his tool will save some time for anyone who makes more than one PCB a year and has to deal with the lack of BOM features native to KiCAD.

[Jeff] still has some features he’d like to add such as unit tests, a user guide, and a cleaner user interface. What other features are you anxious to see added to KiCAD?

This script is a great tool for anyone who has had similar frustrations. KiCAD is popular to modify and expand, too: there have been tools for mechanical CAD export, a parts-generator and cost-tracker, and an Eagle to KiCAD converter if you’re thinking of making the switch.

17 thoughts on “KiCAD BOM Management

    1. I haven’t seen a professional (i.e. not a toy like Fritzing) PCB design software that *does not* have a steep learning curve. PCB layout is a complex process, that’s a fact of life.

      That doesn’t mean that there are not some issues with Kicad’s UI or bugs in the tools, but there isn’t much choice unless you want to spend a lot of money. Eagle really isn’t any better (actually I have found it worse than Kicad) and is limited, DesignSpark looks terrible and I have never managed to get it to do much and Diptrace is Windows only and limited unless you shell out serious money.

      And the other alternatives – Altium Designer or Cadence – that is a league of its own. If you have money for one of those, then you don’t need to bother 3rd party BOM hacks like this.

        1. Diptrace’s PCB software is pretty nice and quite user friendly. It’s unfortunate that the 2.X releases (not counting the betas) didn’t have high speed design tools, but at the time I was doing less critical designs and didn’t require such tools. Their schematic program, on the other hand, was a real PITA and left much to be desired…

      1. Hear hear. Altium is the closest I’ve seen to a decent user interface. ORCAD and PADS are both at least as bad as KiCAD. That said, none of that means that’s the way it SHOULD be.

        Solidworks UI is pretty simple, for example, once you get over the first few hurdles (as far as I can remember anyways… maybe the problem is that it’s just been so long since I learned it, I forgot all the issues I had!)

      2. I agree with Jan.
        Sure, it IS clunky. But the latest release is a bit cleaner than the previous version. The latest features make a huge difference. Sure the BOM management was hardly touched since then. But given that the dav is all voluntary and it’s open sourced, I am glad they CHOSE to focus on key functionality.
        BOM exports a CSV. That’s all I need. I can do the rest manually. Will try this tool though and likely be glad for it.

        I have used kicad exclusively in a production environment for two years. Still learning new tricks. It is steep. But once you get the workflow and basic tricks down, it’s really actually FUN to use IMO.
        Luxury tools have lots of features, but how many of them do you actually use?

    2. Not as steep as Eagle cad….

      Acutally I found KiCad rather easy … not quite as easy as PCB123 but much more capable.

      The hardest part is figuring out library management which is being improved…

  1. I was interested, but the UI of this BOM manager is pretty atrocious. I believe that green part in the screenshot is supposed to be a table, right? Is it so hard to actually align the data in two columns?? The other screenshot in the Git repo with the part value format selection using 3 giant grey buttons with tiny text in the middle is another such UI disaster.

    I think this is a consequence of using Kivy – a framework designed for making “cool” touch interfaces. As a consequence you don’t get even basic UI elements like buttons or tables that are ready to use and you have to roll your own using a special language. That works if you are a professional UI designer and want all that creative freedom but it is completely counterproductive otherwise.

    1. I totally agree. This was a bad use for Kivy and I’m actually pretty interested in ripping it out and going with WX or GTK. I like the the pythonic nature of the framework, but I was already pretty far down the path with it before I realized that this UI sucks. Maybe I’ll do a re-write in a few weeks to be a little more traditional with my UI choice.

  2. I recently wrote a KiCad BOM output plugin for my 1clickBOM browser extension. In combination with the extension you can then extract a description from your schematic and use that to search Octopart and Findchips (in bulk). It doesn’t work perfectly of course but it’s pretty good for generic parts like “Resistor 1k 0603” or parts you already have the manufacturer part for.

    https://github.com/monostable/1clickBOM/tree/master/output_scripts

  3. Wasn’t there something like this a couple months ago? I recall bookmarking it. Python. Had, or was intended to have, links to Digikey and Mouser with part numbers? (Like PCB123).

  4. Need to double check when you are searching for parts based on simple search. I search for 0603 parts on digikey and got metric 0603 (0201) by mistake. Thankfully it was only 1 parts that I missed as the rest of my order was for 0402.

Leave a Reply to Nolan Moore (@NolanDoesDrones)Cancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.