Author Topic: EEVblog #1307 - TUTORIAL: PCB BOM Consolidation  (Read 1434 times)

0 Members and 1 Guest are viewing this topic.

Offline EEVblog

  • Administrator
  • *****
  • Posts: 32164
  • Country: au
    • EEVblog
EEVblog #1307 - TUTORIAL: PCB BOM Consolidation
« on: May 20, 2020, 10:36:01 pm »
How to reduce your PCB assembly cost & production risk by optimising schematic and BOM.
Dave explains three ways to consolidate your project PCB Bill Of Materials (BOM), to make your products potentially cheaper and easier to manufacture with less supply risk. As well as being an essential good design practice!
A look at a complex FPGA based design with a large number of components, how far can this design be optimised and for what benefit?

https://github.com/ciaa/Hardware/tree/master/PCB/ACC/CIAA_ACC

 
The following users thanked this post: thm_w

Online BrianHG

  • Super Contributor
  • ***
  • Posts: 4680
  • Country: ca
Re: EEVblog #1307 - TUTORIAL: PCB BOM Consolidation
« Reply #1 on: May 21, 2020, 04:13:09 am »
One comment about too many of 1 component value mentioned @26:15  , If you simplified/consolidated down your BOM and there are free reel slots on the pick and place machine, instead of a worker always changing reels, they would just program and place 2 or more reels of the same value in the P&P machine.
« Last Edit: May 21, 2020, 04:16:07 am by BrianHG »
__________
BrianHG.
 

Offline victorb

  • Contributor
  • Posts: 6
Re: EEVblog #1307 - TUTORIAL: PCB BOM Consolidation
« Reply #2 on: May 21, 2020, 10:14:05 am »
I was doing the same thing recently on one of our designs and was shocked at the crazy e96 resistor values used for the power supplies...
I threw together a quick and dirty little program to brute force search for E24 series values that would get me close to the target voltage - we saved about ten reels...
something like this for each power chip:
Code: [Select]
std::vector<T_Res> Find_MAX8570(double target, double epsilon, bool inverting)
{
std::vector<T_Res> intermediate;
// brute force calculate everything
for (int i = 0; i < sizeof(E24Table) / sizeof(double); i++)
{
for (int j = 0; j < sizeof(E24Table) / sizeof(double); j++)
{
double offset = inverting ? -0.003 : 1.204;
T_Res rs = { 0 };
double constant = 0.0000833;
rs.value = ((E24Table[i] + E24Table[j]) * constant) + offset;

rs.R1 = E24Table[i];
rs.R2 = E24Table[j];
if (abs(target - rs.value) <= epsilon)
intermediate.push_back(rs);
}


}
return intermediate;
I did go further on some dividers and complicated the program a bit more to find series combinations too...
 

Online HwAoRrDk

  • Frequent Contributor
  • **
  • Posts: 776
  • Country: gb
Re: EEVblog #1307 - TUTORIAL: PCB BOM Consolidation
« Reply #3 on: May 21, 2020, 11:53:21 am »
Dave, you already did a video on a 1-cent voltage regulator:

https://youtu.be/TdNUO3MSfJs
 

Offline thm_w

  • Super Contributor
  • ***
  • Posts: 2344
  • Country: ca
Re: EEVblog #1307 - TUTORIAL: PCB BOM Consolidation
« Reply #4 on: May 21, 2020, 08:07:36 pm »
The chosen design was an incredibly good example. There was even one capacitor BOM line where the manufacturer part number was different, but component values were identical.

One comment about too many of 1 component value mentioned @26:15  , If you simplified/consolidated down your BOM and there are free reel slots on the pick and place machine, instead of a worker always changing reels, they would just program and place 2 or more reels of the same value in the P&P machine.

Another reason why "using a lot of one component" is generally not much of an issue, and very low on the totem pole of things to spend time on optimizing.
In any sort of industrial type design, saving a few cents/dollars on removing bypass caps or whatever will screw you over at some point, costing massive warranty returns.
If its a consumer or cost optimized product, that is a different story.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 20110
  • Country: nl
    • NCT Developments
Re: EEVblog #1307 - TUTORIAL: PCB BOM Consolidation
« Reply #5 on: May 21, 2020, 10:53:55 pm »
This is typically an area where a CAD package with a good component management system pays off. The one I'm using allows to sort by all database fields so it is quite easy to visualise the identical components with different footprints / voltages and change them to one component so the BOM has less different components.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Online BrianHG

  • Super Contributor
  • ***
  • Posts: 4680
  • Country: ca
Re: EEVblog #1307 - TUTORIAL: PCB BOM Consolidation
« Reply #6 on: May 22, 2020, 01:44:38 am »
For those using older simpler CADs, here is what I do to automatically consolidate part across all my designs simultaneously and automatically:

Make a library component for the default parts you use.
IE: Instead of placing a default 0805 resistor/cap, when I began a new cad package, I made specific 1K, 10K, 4.7K, 100nf, 1nf 0805s, 78L05D, 79L05D, 7805, 74HC04D, PICxxx, ect schematic components added to my library with specific part numbers well before I begun to design boards.  Then when I design my circuits, I select from those parts first.

A number of my designs use the same parts which I validated years back to be the cheapest and most abundant parts available.
__________
BrianHG.
 

Offline Neilm

  • Super Contributor
  • ***
  • Posts: 1473
  • Country: gb
Re: EEVblog #1307 - TUTORIAL: PCB BOM Consolidation
« Reply #7 on: May 22, 2020, 06:46:10 pm »
The weirdest BOM optimisation I have ever done was for reason 4 - cost. Previous versions of the product used big (expensive) through hole resistors. These had to be fitted by hand and would take up a lot of space. I found that putting in a lot of 1206 resistors - BOM was cheaper and build cost cheaper as we could use several reels on the machine. As I said in the design review - other than we haven't done it that way before, what is wrong with 800 resistors in series parrallel?
Two things are infinite: the universe and human stupidity; and I'm not sure about the the universe. - Albert Einstein
Tesla referral code https://ts.la/neil53539
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 20110
  • Country: nl
    • NCT Developments
Re: EEVblog #1307 - TUTORIAL: PCB BOM Consolidation
« Reply #8 on: May 22, 2020, 08:04:17 pm »
For those using older simpler CADs, here is what I do to automatically consolidate part across all my designs simultaneously and automatically:

Make a library component for the default parts you use.
IE: Instead of placing a default 0805 resistor/cap, when I began a new cad package, I made specific 1K, 10K, 4.7K, 100nf, 1nf 0805s, 78L05D, 79L05D, 7805, 74HC04D, PICxxx, ect schematic components added to my library with specific part numbers well before I begun to design boards.  Then when I design my circuits, I select from those parts first.
The problem with that approach is that components (especially capacitors) are always improving. For example: Over the years I probably have accumulated 10 different 10uf MLCC capacitors in my database and several of those have the same footprint but different voltage rating. If you combine an existing design (copy & paste) with a new one or upgrade an old design then it is very handy to get a quick overview of the components so you are sure all the capacitors (for example) with the same value have the same part number. Changing the existing part number is not a good idea because then you never know which part went into an older design.
« Last Edit: May 23, 2020, 01:11:38 am by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline EEVblog

  • Administrator
  • *****
  • Posts: 32164
  • Country: au
    • EEVblog
Re: EEVblog #1307 - TUTORIAL: PCB BOM Consolidation
« Reply #9 on: May 23, 2020, 03:00:22 am »
Dave, you already did a video on a 1-cent voltage regulator:
https://youtu.be/TdNUO3MSfJs

 :palm:  :palm:  :palm:  :palm:  :palm:  :palm:  :palm:  :palm:  :palm:  :palm:  :palm:  :palm:  :palm:
 

Offline CarlG

  • Regular Contributor
  • *
  • Posts: 154
  • Country: se
Re: EEVblog #1307 - TUTORIAL: PCB BOM Consolidation
« Reply #10 on: May 29, 2020, 01:28:13 pm »
It what interesting to watch this video. It sort of gave me a pat on the back for the effort I recently put into a PCA. I got the task to make a design improvement on a PCA, and took the chance to  make just the type of optimizations in the video at the same time.
 
I would like to add a 5th optimization case: place same type components on the same side if it is feasable. E g if a diode type is replaced to reduce the amount of types, it doesn't reduce the assembly cost if it is placed on the opposite side of other diodes of the same type. Typically this is applicable for components with just a few instances, but even for "default" components (like 100n decap) it could be worth considering, e g if just a one or two instances are placed on the one side.

Another thing I try to avoid is SOT23/SC70 single channel devices such as 74LVC1G04 or BAV23. Instead, I use 74LVC2G14 and BAV23S/BAV23C/BAV23A, respectively, even if just one channel is used.

« Last Edit: May 29, 2020, 01:33:24 pm by CarlG »
 

Offline jrs45

  • Contributor
  • Posts: 34
  • Country: us
Re: EEVblog #1307 - TUTORIAL: PCB BOM Consolidation
« Reply #11 on: June 14, 2020, 04:56:20 pm »
Great video.

One thing surprised me - is 0402 really still considered unusually small these days?  I figured it was pretty universal, but perhaps not. 
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf