New user here; started with KiCAD 5 (had never used any of the earlier versions).
I’m at the stage of generating the BOM file and the components positions file. I have a few questions:
Where does the “Supplier and ref” field come from? The software generated that column, but it is all empty.
How do I include a manufacturer part number or a fab’s SKU number? (not sure whether it’s normally called SKU — for example, SeeedStudio have a list of parts that they have in stock and one can use for assembling/soldering an order; the SKU is the code to identify the parts).
The field “Designation” in the BOM seems to show the field “Value” of the components as I assigned it in the schematic — however, can I assign both? I’d like to see 0.1uF or 10k in the schematic, next to the components; but I’d like to add an exact manufacturer’s part number that will show up on the BOM so that I can outsource the task of assembling/soldering the boards.
Related to all of the above: if I already have a board otherwise finalized, is there an easy way to fill in those values? (or is it easier to do it with “search and replace” on the CSV files that the software produced?)
Probably out of the BOM script. If it encounters that information in the parts definitions it will extract it.
…several ways lead to Rome.
There is a python tool KiField by @devbisme, that enables the extraction and insertion of this information into all your parts of your libraries via csv files. This would take care of this problem at it’s root. It’s also able to do this for the parts that are already in your schematic.
You’d use a spreadsheet program to edit all those fields conveniently and import that information into your project/libraries. Outside of KiCAD.
You could also edit your symbol library files manually and add/edit those fields (same for the project files… very cumbersome unless you can script most of it, like I did ).
Afaik the parts that are already in your schematic will miss those fields until you add them manually - one by one. There is an edit fields tab in Preferences > Schematic Editor Options
…that adds those fields to any symbol that you import into your schematic, but not the ones that are already in there (just tested with an older v5+ nightly).
Also, this setting is global, which means any part you create in the library editor after you changed something here will carry those fields as well, but not the ones already in the library.
For in situ editing there is a table-edit built into EEschema since V5 under tools:
Not sure what you mean by this — I just tried with v5.0 (the original release 5), and the field does show on the “Edit properties” dialogs for all components that were already there; mind you, the dialog in v5 is different; it doesn’t have a “Default Value” column, so the field shows with no value in it (for all parts); for that matter, the whole thing is a bit different; the above dialog is invoked from the Schematic Editor (Preferences → General Options), and the tab “Default Fields” is instead captioned “Field Name Templates”.
Coming back to this — seems like the “bottom line” question remains: how do I get a BOM that includes the manufacturer’s part number, or the Digikey part number, or both?
I just tried some of the above on a new project — have a component with manuf. part # and Digikey part # in addition to the default fields; yet, the BOM comes up exactly the same as the default. Do I need to resort to extarnal scripts / plugins / etc. ?
I use the “bom_csv_grouped_by_value.py” script, it includes MPN etc if you have added them. You need to add the plugin before you use it, it is in “C:\Program Files\KiCad5\bin\scripting\plugins” or the equivalent location.
Normally I would point people at the KiCad documentation but the BOM generation section seems to be aimed at developers rather than regular users.
I guess one main point of critique (to KiCAD, not to the forum or its contributors!) could be summarized by my response to the above comment: Yes, surprisingly, the FAQ was helpful.
I guess one aspect is: an FAQ that just says “How to create a BOM” is not particularly useful; the old issue of one “not knowing what we don’t know” — I see that heading in an FAQ and I don’t think I need to read it, because I’m pretty sure I know how to create a BOM (I’ve already done it!!). I have no way of knowing (and no reason to suspect) that I don’t really know how to create a BOM (again, because I found the menu option, and it was very unambiguous, there was nothing that I found unclear about it, etc.)
But I guess this is related to the main issue (and main point of critique): why are the BOM creation procedures different in pcbnew and in eeschema. See, I had no idea that I could create the BOM from the schematics. So, I had created a BOM from pcbnew, and it’s just a menu action that leads to no dialog settings, etc. So, in my mind, that’s it — there’s nothing more to find out about that.
I’m pretty sure if the pcbnew BOM creation procedure had sent me to the same dialog that eeschema sends me to, I would have figured it out — or, I would have done a search that would have perhaps led me to the FAQs.
Regardless of your level of agreement with my point of view and ranting above, I think we should agree that it is not a good thing that the BOM creation actions in two different places behave differently, right?
Because they pull from different information databases. In PCBNew there are only a handful of parameters for each component and never any more. In EEschema there are a variable number of parameters for each component, many not under control by the developers, more of a blank list for the end user to put what fits best for their end use.
This is one of the many reasons for trying to encourage people not to skip the schematic step. You can get a much more detailed BOM extraction from EEschema. Put what ever you want/need. Specific vendor names and part numbers, specific manufacturer names and part numbers, or keep it simple and use internal house part numbers and use a different (better suited) program to link the house numbers to who you last bought a compatible part from. But with that flexibility offered comes complexity in handling the data.