BoM Process

All of this talk about BoMs these days, (all of my talk, that is), kind of begs the question of how BoMs are put together. An Excel spreadsheet seems to be the most common “BoM management” tool in use today. Large organizations often have more formal systems, but for everyone else, it seems to be largely a manual spreadsheet process.

When I’m putting together a new design, I first look at the big parts, like MCUs and other “big” chips. Sometimes big is 3 X 3mm, so “big” is a relative term. Then I’ll put in active discreet components and connectors. Next will be specific passives (like for a crystal that requires a certain value of capacitor) and finally, the more generic components like pull-up resistors and bypass caps. This may not be the best, or even a typical process, but it seems to work for me and it more or less follows my circuit design process. There are some traps that I leave myself open to.

I pick the big components based on what the board is going to do and how much real estate I have. The next set of components are largely used to make the big components work. The specific passives attach to parts with specific requirements and the generics just get thrown in as needed. Often I don’t even define the generics until after the design is complete. Take a look at this schematic clip:

U3, the MCP73833 battery charger and U4, the ADM3101E RS232 line driver will both get specific part numbers right off the bat. I may change packages as I get into the layout, but I will usually fill the BoM for those items when I put them in the schematic.

I’ve put U3, the charger chip in my BoM twice, each with a different package, because my preferred package isn’t available at the moment but might be soon. It’s not best-practice, but you can do that as long as the reference designator differs in some way and the part is labeled “DNS” (Do Not Stuff). I simply gave my alternate the part number “U3alt.”

R6 and R8 get specific values because the battery charger chip calls out for specific values. Q1 will be a small P-channel MSOFET, but the specific part number can come later. All of the rest of the resistors and caps will also be defined later.

The biggest trap I have to watch for when filling out the BoM in this order is forgetting any design decisions or leaving fields blank when I go back and fill in the rest of the part number information.

Passive part of BOM

This is typical of a BoM of mine just after I’ve finished the layout. If I were building this by hand out of my own parts bins, this would be fine. But when sending it out for assembly, it’s not. I personally know that C3 and C4 could be any of a dozen different part numbers. The only things that matter in that case are that it’s .01uf, it’s an 0402 and the voltage rating is 10V or higher. I know that R2, R3, R4 and R5 are just LED current limiting resistors and can be anything between 220 and 680 ohms for this particular circuit.

I know those things, but the assembly house doesn’t know that those parts have pretty loose specs. It will just cause delays if I don’t find an exact part number before sending it out. It may seem obvious, but just because it’s obvious to me doesn’t mean that it’s obvious to anyone else. That ambiguity has to be gone before anyone else sees it.

Duane Benson
Knock three times
on the ceiling if you want p-channel.
Twice on the pipe If the answer is n-channel.


Yes, I’m talking about BoMs (bills of materials), not bombs. That would be silly and irrelevant. At least mostly irrelevant. If you make bombs, it wouldn’t be, but it would probably be all secret so we couldn’t talk about it.

The question of the day is: “What makes a good BoM?” There are a lot of BoM formats in use. It’s one area that the standards train more or less left behind. Well, there are standards. For example, IPC-2581 covers not only BoM standards, but a replacement for Gerbers and the whole manufacturing data package. One of these days, we’ll all be using the IPC-2581 formats for our data and life will be beautiful all of the time.

However, those standards aren’t really in common use today. And, they are complex enough that they can’t really be used in spreadsheet form. There’s a lot of nesting and hierarchy that makes it more difficult to deal with without a BoM management software package. Still there is good data in there. A lot of good data. So much good data that my head is still swimming.

But until that day, there is a set of data and data labels that will help ensure accuracy. The headers are important too. If this seems quite rudimentary, that’s because it is. But it’s important.

BOM snippet

  • “BomItem” or “Item #”: This is just the line number. Each type of part gets an item line, not each part. If the pat number is the same, you just put it down once and give the quantity.
  • “quantity” or “Qty”: How many of this specific part you need per board
  • “RefDes”: The reference designators used by the parts on the PCB silk screen. All of the same part number should be in the same excel spreadsheet cell: i.e., “R3, R4, R5, R6”. You can also indicate a contiguous range with a dash: “R3-R6” or “R3-R6, R10, R15”
  • “Manufacturer” or “Manf”: The name of the component manufacturer. It’s best to spell out the full name, e.g., “Texas Instruments”, but common abbreviations such as “TI” generally work too. The less ambiguity, the better.
  • “Mfg Part #” or “Manufacturer Part #”: The part number that you would use if you were buying this exact part from the manufacturer or a distributor. All of the suffixes are important too. For example, “PIC16F88” is not enough when you really need a “PIC16F88-I/P”.
  • “Dist. Part #” or “Distributor Part #”:Not strictly necessary, but can help in cases with a bit of ambiguity. Again, this would need to be the exact part numer as you would order it from that distributor.
  • “Description”or “Desc”: This is the component description as given by the manufacturer. Again, this isn’t strictly required, just a good idea.
  • “Package”: This is the standard package type, e.g., “SOT-23”, “TO-92”, “0201”. Again, not strictly necessary but can be a good redundant check.
  • “Type”: Optional indicator of the generic type. e.g., “fine pitch”, “smt”, “thru-hole”, “Leadless”. Not required but can help with assembly quoting.

That’s not IPC-2581, but it is a good set of usual requirements. It’s also best to put your final BoM on the first tab in your excel spreadsheet. That will make it easier for buyers to know exactly what you want.

Duane Benson
So long mom, I’m off to drop the bill of materials
So, don’t wait up for me

Is Your BoM a Smart BoM?

Please be aware that there is no “B” at the end of these BoMs. Still, without the “B”, you can have a smart BoM or a dumb BoM. It is important to note, however, that a dumb BoM may not be a bad thing. It just depends on what you want to do with it.

No matter what you’re doing, there are a few necessities. Let’s start at the very minimum, for someone designing something to be self-built from mostly already owned parts; maybe just a few from a dealer.

Reference designator: R1, R2, R3, C1, C2, U1… You have to have this information.

Quantity is important so know know how many to pull. Although, with a small garage-built project, you can probably just as easily count how many you need for a given value. And what about the value? Actually, the value isn’t always all that necessary if you have the correct part number information. A line item number is hand for big bills to keep things straight.

This is actually too basic and kind of pointless, so I’m going to jump ahead. Take an assembly house like Screaming Circuits. Screaming Circuits will either build your boards from your kit of parts or purchase them from your BoM (or a combination thereof).

Once you have the item number, quantity and reference designator, you need to tell your assembler or purchaser what it is. If you already have the parts kit, just add in the manufacturer’s part number and a description / value. That should do it. Some assemblers, like Screaming Circuits, will take part numbers from a distributor in place of or in addition to the manufacturer’s part number (e.g., Element14, Digikey, etc.).

If the assembly house is going to buy the parts, then add in the manufacturer and double check that the part numbers are accurate with all suffixes and things of that sort. The distributor part number can be added, but when the assembler is going to build the boards, you really should include the manufacturer and manufacturer’s part number to cover all basis.

BoM Sample

That’s cool, but your circumstances might require just a little more. You might need to list an approved substitute or two for parts that come in and out of stock frequently. You could also list multiple distributor part numbers for the same specific component, again, in case of lead-time or stock issues.

Sometimes I get myself into a bit of trouble by not specifying some part values at design time. I might just throw in things like bypass caps, RS232 driver charge pump caps or LED current limiting resistors assuming that I just know what the value is. It’s not a big issue, but it would probably be less work to just do it at the start.

Duane Benson
What the Bureau of Meteorology has to do with your parts kit, I’m not sure.