Create BOM Referencing Master Parts List

I would like to create a BOM that references a master parts list for vendor, vendor part number, manufacturer, manufacturer’s part number, etc. so I don’t have to enter all of this information manually. Also, different clients have different MPLs, so this is a must.

I saw references to a plugin called KiBOM, but it was dated 2016. Is that the best solution, or are there newer and better solutions?

With all of KiCad’s features, I’m surprised they didn’t provide for this directly. Even my old DOS OrCAD provided for using MPLs . . .

Thanks!

A.

With V8 the data-base approach was integrated some way with KiCad. I can’t say anything more as I didn’t tried to use it.
When I started with KiCad V4 I have prepared my own way in which a database is the one tab in spreadsheet while BOM is generated in second tab.
I have described my approach with example files hare:

This was described when I used V7. With V8 I found that I need not to go through generated csv file as I can copy what I need directly from KiCad BOM generator window and it contains exactly the lines I was selecting from file so I can select whole window contents and copy/paste it into my spreadsheet.

Using my approach for many clients can be by having separate spreadsheet for each of them or having more columns with information on the first tab and may be several second tabs just selecting informations from other columns to created BOM.

This is generally the kind of thing database libraries or databases in general are for. But for some reason when you mention the word database people go entirely bonkers.

If you need to manage data you need databases, managing BOM lists is managing data.

2 Likes

I am running: KiCad x64 on x64, Version: 8.0.4, release build.

I don’t see any obvious evidence that support for master parts lists is included. When I click on other Fabrication Output functions (Gerber, drill, etc.) I get a pop-up window where I can select various options. When I click on ‘Bill of Materials’, I am only given options on where I can save the file. That would be a natural place to link a master parts database file. Alas!

A.

As you write about gerbers I understand you are in PCB while BOM is generated from schematic.
I have heard that there is also something BOM like in PCB but never even searched where this function is.
In previous KiCad versions all information (including footprint) was collected in schematic. To PCB only the information needed to design it was copied (footprints and netlist) so natural place for creating BOM was schematic. In past I was using Protel and there also BOM was generated from schematic so I have never even considered it can be done from PCB.
If now all information (including user defined fields) is copied to PCB I don’t know.

Not that I think it matters but I always generate the BOM from the PCB file, just in case I’ve added a part to the PCB that for some reason I didn’t add to the schematic. Not that it ever happens, I always add it to the schematic then update the PCB file, I was just taught to do it that way and that’s the way I do it.

As per the original question I haven’t found a good solution to this. I spent a whole day this week creating two ‘real’ BOMs (ie that I can give to the PCB assembler) for one PCB, they were two build variants. First I created a master BOM with all the part numbers etc, then I copied it twice and went through each one, manually editing the designator, quantity, and sometimes value fields. Painful and error prone is all I can say. One day I’ll put in a feature request for the software to include BOM variants…

David

I didn’t even know about the BOM output in the schematic capture program. I didn’t look there because it was listed so prominently under ‘Manufacturing Outputs’ in the PCB layout program.

The schematic capture BOM gives me more options about what fields to show, etc., but still doesn’t appear to have any way to link a master parts database.

I would REALLY prefer not to have to manually enter all of the additional data due to the risk of making errors.

There certainly is, but I didn’t searched for it. I believe it should be described in Schematic manual.

Using my way - each symbol (or list of alternative symbols) you write manually only once and then just use it. I believe using database you also write that information manually, but may be you can integrate your work with for example distributor database (never searched if they allow to download their full database - I don’t need it).

I have done alternative BOMs long time ago, when I was using Protel. I did it by deleting selected parts from schematic and then generating BOM.
If I were to generate alternative BOMs from KiCad my way would be probably the same. I think this way is much safer to not make mistake compared to manipulating through BOM list.

I have started with KiCad V4 reading first all manuals (not knowing that they are practically V3 manuals). I’m 95% sure according to these manuals generating BOMs was described only as being done from schematic.
In Protel I was adding some footprints directly at PCB, but it was only things like mounting holes that I don’t list in BOM. Moved to KiCad I found that default here is to have mounting hole symbols at schematic and I adopted to it.

Search for ‘assembly variants’ in the issue database and give it a :+1:.

https://forum.kicad.info/search?q=Database%20in%3Atitle%20order%3Alatest_topic

Etc…

Have you considered using InvenTree, PartsBox, PartKeeper or similar? I have no experience with them since we have developed our own PLM, but I would look at the available PLM options.

I am curious - what is the Master Part list?
Is it your list of approved components? Or is it a list of PNs that reference to approved components?
Or something else? I’ve never heard of this term before. I am generally use our PLM to create BOMs and it just uses internal Part IDs to get the real PNs for the fabricator.

A master parts list entry might look like this:

Description: Resistor, thin film, 100k ohms, 1%, 0.10W, 25ppm, SMD 0603
Vendor: DigiKey
Vendor P/N: 13-RT0603FRD07100KLTR-ND
Manufacturer: Yageo
Manufacturer P/N: RT0603FRD07100KL

Where the schematic shows the component value as ‘100k, 1%’ the database manager would link the component value to the database entry, and create a composite entry in the output BOM showing all of this information.

I was hoping for something more integrated into KiCad . . . but I’m still searching for an optimum solution.

Well, the database functionallity added to kicad in v7 opened the door to really customizing your own work system. I set up a sqlite db and it has been great. You need to do a bit of work to get there.

I also tweaked a bom script so I could access my fields as I wanted and create a bom to my liking, to generate this for example:

Here is my script if you wish to tweak it to your own needs (I just hacked on one of the kicad-provided scripts to customize it):
bom_csv_gil_script.zip (8.7 KB)

Hi TTYguy, this appears to be what I am looking for. I’m still not clear where the database functionality was added to KiCAD. Version 8 is my first experience with it. I don’t see any indications of integral database support, unless you are referring to some scripting.

I’m not a ‘scripting guy’, so while I grasp the concept, I don’t know where to begin in implementing it. I will have to do some experimenting . . . while my client waits (patiently, I hope) for a usable BOM. Thanks!

A.

See:

Kicad does not have “integral” database anything, as everyone wants something different. I used sqlite since the entire db is just one file. No sever process or anything complicated. Above, a post from eelik linked to my db case study. It takes time to set up but is awesome once it is running.

Then, using the fields you have defined in the db, you need a custom BOM script to extract what you need, and order the columns to print the way you want.