Seeking input: what are the best BOM plugins?

Same, I mostly use BOM_csv_grouped_by_value_with_fp.
I made my custom version to add the “Manufacturer” and “manf#” fields already used by the 2 excellent plugins: KiCost and InteractiveHtmlBom.

I agree that you need to sort the BOM by both footprint and value - BUT ALSO Capacitors need a voltage rating, this also needs to go through to the BOM. A really good system would also include either a custom or manufacturer part number.
Mike.

Agreed, there are any number of additional fields that can or should be specified for a part, depending on your needs. Voltage rating, tolerance, distributor PN, manufacturer PN, house PN, etc.

It sounds like @craftyjon’s future (7.0) plans would support that nicely. In the meantime, there are options: the scripts are customizable if necessary, you can copy and paste from the bulk grid editor, the interactive HTML bom is nice, there are other external BOM plugins, etc.

Unifying the script names and descriptions would do wonders. Take off all “bom” and “bom2” from the names. The file format first, then group by, sort by, fields included. For example

  • csv_groupby_value
  • html_groupby_none_sortby_value
  • csv_groupby_none_sortby_none_allfields

And the description. This is one example from the current set:

Generate a Tab delimited list (csv file type).
One component per line
Fields are
Ref,Value, Footprint, Datasheet, Field5, Field4, price

The first line is completely superfluous, or at least should be formalized. Other lines should be formalized for all scripts.

Output file type: csv (tab delimited)
Grouped by: -
Sorted by: -
Fields: Ref Value Footprint Datasheet Field4 Field5 price

I agree. I might try do do an MR this weekend to clean up the descriptions. I also noticed the “Help” text could use some cleanup.

@craftyjon if I did a separate MR to make a slightly improved version of the bom_csv_grouped_by_value_with_fp plugin that included all user fields in the output, would that be accepted? I think it would be a better default. Should have done this before you did the cleanup, but better late than never.

1 Like

I don’t think anyone has proposed improvements to these plugins in a while and I can’t see why we would not accept them!

Haven’t been keeping up with the new updates so much, so this might have already been fixed; but its a bit annoying that by default nothing is compatible with the digikey import BOM tool. I’ve written a python script to do this, but it seems a bit strange, in my experience the only thing I use a BOM for is ordering parts, so it seems very strange to me that the BOMs generated by default are nearly useless for this purpose.

don’t know if other component sellers have import tools; all the others I’ve used (except arrow, which has their own problems) don’t allow you to view their website in english outside english speaking country, which makes them very challenging to use in general, so I just don’t.

just removing commas and then replacing semicolons with commas would fix this for digikey though; but I guess that would make some other stuff incompatible as well, but if possible something like that would be my suggestion related to BOMs

As for what I use, my current BOM script generates more but I delete all columns except reference designator, value, and footprint, and then add a new column (or two) for putting part numbers; my opinion is any more information is useless, but I guess some people disagree with that?

The bom2grouped_csv.xsl script claims to generate a digikey compatible BOM. I have not tested it, however.

Looking at the output, I don’t see what would make it digikey-compatible while the others aren’t, though.

Welcome to the wonderful world of every entity has their own BOM format. Hell at my company we have 3 different formats depending on ERP, PLM and PCBA.

Nobody has contributed a tool specifically for Digikey to KiCad so there is none.

no idea with bom2grouped_csv.xsl; hadn’t heard of it before and with some looking into it, it looks like a thing for linux/mac people? (by this I mean I found it on github with suggested command to convert xml to csv, but that command doesn’t exist on my computer and google says it is for GNOME)

never heard of ERP or PLM, but wouldn’t PCBA require more information and so require a different format? (it was including other people doing assembly, right?)

apparently I am using a plugin called KiBoM, so if anyone has same problem as i had maybe look that up

Turns out I don’t know anything about how currently generating BOMs works, the format that I though was how kicad did boms is actually just when you go to file->fabrication outputs->bom file in the layout; in the schematic everything (except my kibom script that I guess doesn’t come with kicad by default) generates xml that i have no idea how to convert to csv

so maybe just ignore my feedback as I clearly don’t know what I’m talking about

I guess this is getting pretty off topic but would be interested what providers accept what formats for BOMs and what software everyone uses their BOMs with or for; or even just how everyone orders parts

bom2grouped_csv.xsl is one of the scripts included with Kicad. You run it from Eeschema (it does the conversion from XML to CSV that you mention)

Something wrong with my kicad then; when I run it I only get an xml file (no errors either)

do you get a file <projectname> with no extension? If so you can stick a .csv at the end of the filename.

Yep, and it uploads to digikey fine. So isn’t a problem anymore, if it ever was a problem.

1 Like

Yes, another vote for ‘BOM_csv_grouped_by_value_with_fp’.

I’ve modified it to extract more fields (supplier & manufacturer part numbers rather than just Vender). I earlier added these fields to the default component description in Eschema…

‘out.writerow([‘Ref’, ‘Qnty’, ‘Value’, ‘Cmp name’, ‘Footprint’, ‘Description’, ‘Farnell P/No.’, ‘RS P/No.’, ‘D.key P/No.’, ‘Other supplier’, ‘Man. P/No.’])’

and…

’ out.writerow([refs, len(group), c.getValue(), c.getPartName(), c.getFootprint(),
c.getDescription(), c.getField(“Farnell Part No.”), c.getField(“RS Part No.”), c.getField(“Digikey Part No.”), c.getField(“Other Supplier”), c.getField(“Manufacturers Part No.”)])’

I also added ‘.csv’ suffix to the output file.

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