Screaming Circuits: Our website and Process

More Fun File Facts: ODB++

In my last post, I wrote about the up and coming IPC-2581 PCB manufacturing file format. While IPC-2581 may be looked at by PCB fabricators and assemblers as a holy grail of sorts, it's not yet widely adopted by CAD software. But, that doesn't mean that Gerbers are the only option.

ODB++ was developed by Valor in the waning years of the last century as an improved method for getting manufacturing data into their CAM systems. Valor and, hence, ODB++ was purchased by Mentor Graphics in 2010. ODB++ is still widely available, however there's concern in some circles that it's not truly open. That concern is where IPC-2581 came from. In fact, IPC-2581 is somewhat derivative of ODB++.

I can see how a CAD software developer might fear the use of something owned by a rival. However, my understanding is that Mentor does it's best to treat it like an open standard and has made it available more or less as though it is open.

The history isn't really important. What is important is that ODB++ is a more complete format than the Gerber and is widely supported. Pretty much everything good that I said about IPC-2581 in my prior post also applies to ODB++.

The bottom line is that, regardless of whether Screaming Circuits is your fab (through our partner Sunstone) and assembly (through our factory right here) provider, ODB++ is a good thing. It makes the job easier and more accurate than does use of Gerber files. Both "easier" and "more accurate" help keep costs down and keep ambiguities to a minimum. As you know, ambiguity is the bitter enemy of both accuracy and quality.

Unfortunately, for all of you Eagle users, Eagle does not yet support ODB++. If anyone out there is really good with Eagle ULP scripting, you might want to create a on ODB++ and/or IPC-2581 creation ULP.

Duane Benson
I was ionized, but I'm better now. 

Fun Facts About Manufacturing Files

Circuit boards live and die by their manufacturing files. Without complete and accurate information, the board fab house can't fab the boards, the assembly house can't assemble your boards and nobody can buy the parts.

Our old standard, the Gerber file, has been around since about the time King Arthur pulled the inductor out of the solder pot. It's old. We all use it because it's familiar, but it's day is done. It's time to pass the torch.

IPC-2581 is the new standard in manufacturing files. It hasn't been fully adopted, but it's showing up in more and more CAD packages. The IPC-2581 format is much more advanced and has the complete data set in one file. While we still work with Gerbers every day, we can also accept IPC-2581 manufacturing files.

I've been called the champion of bad analogies, but I'll try one out anyway.

Imagine, if you will, a map of the city. All of the streets are there. All of the houses are there. What's missing are all of the street names. No street names, no numbers and no landmarks of any sort are labeled.

Given that information, find John Smith, at 1620 SW 14th Avenue. There is a house at 1620 SW 14th Avenue. There are a dozen or so houses at 1620 something. You just don't know where 14th is, or which direction 14th runs, or where the street numbering starts.

You can physically walk each and every street until you find John's name on his mailbox, but it's not an easy nor error-safe process. And, hopefully, the town only has one John Smith. That's a Gerber file.

IPC-2581, on the other hand, is an electronic map, with everything clearly labeled, and a GPS guiding you. Which would give you more confidence?

Duane Benson
IPC-2581 is like shatter-proof glasses for Henry Bemis

The Dangers of ESD


EsdWhat do a conductive floor, foot grounding straps, conductive work smocks, wrist ground straps, foot grounding testers, ESD training, bench-top grounding monitors, anti-static bags, anti-static boxes, grounded carts, anti-static attitudes, conductive desk mats and grounded tools have in common?


They are some of the things that Screaming Circuits uses to protect components and circuit boards from the dangers of electrostatic discharge.

Ideally, those are things that everyone handling electronic components and circuit boards would use. This is the real world, though, so there are likely companies that don't use such tools or follow good ESD control procedures. Some companies might even charge extra for what is essentially a basic right. Bad news.

Just the act of getting up from a chair can cause an in body potential of 10 kV. The human threshold for feeling a shock is around 25 kV. Silicon chips can sometimes be damaged at significantly less than that. One of the worst things about ESD damage is that sometimes the failure mode doesn't show up until the device is out in the field.

One of our many missions here at Screaming Circuits is to keep the dreaded ESD monster away from your boards. Your PCBs and your trust are very important to us.


Duane Benson
"Zero potential" is bad when when coming from
your parents talking about career prospects.
But it's good when evading ESD.

PCB Assembly Parts Kit

Watch and see what's important when putting together your parts kit


Duane Benson
Who's on first?
I don't know.
PCB Assembly 



CAD Data Files

I've spent a fair amount of time researching and writing about the centroid file and about CAD library footprints. One of the challenges in this industry is that somethings that are "standard" really aren't all that standard. That's why we emphasize following IPC guidelines when creating library components.

Well, a few things have changed since we started doing this a decade ago. For one, some of the enhanced manufacturing file formats (as opposed to the 1970's vintage Gerber format) have become more prevelent. Those new formats are a very good thing.

Most CAD packages can now output either ASCII formatted CAD data or ODB++ format data. Those file formats have all of the data that would otherwise be found in the centroid and Gerber files. They also have more accurate data. If you can get one of those formats out, go ahead and send it to us. We can also take plain old Eagle CAD .brd files. If in doubt send one of these newer files along with the centroid and Gerbers. We'll use the file with the best data and, we may be able to simplify the file preparation Centroid snippet rot optyou have to do with future jobs.

And speaking of the Centroid, don't worry so much about the rotation column in the Centroid file. You can consider rotation to be optional now. You don't need to check the rotation, nor do you need to remove it.

Duane Benson
Who will win? Godzilla or Centroid? Maybe the Smog Monster?


Push-me Pull-you LEDs

I may never get tired of talking about LED and diode polarities. It's so much fun. Not long ago, I wrote about two LEDs from the same manufacturer, marked with opposite polarities. I recently ran into another one, but at least this one tells you on the same datasheet. This image is an actual unmodified clip from the datasheet.

LED confusing polarityI can't for the life of me understand why this would be done on purpose. I could maybe understand if one was designed in a different building, but it couldn't have been too hard for someone to say: "Hey - wait a minute..." before sending these things off to manufacturing.

Of course, maybe they built a million before noticing and then just decided it would be easier to change the datasheet. Regardless, it's kind of nuts in my opinion.

The other thing here is that, while you can generally get away with the indicators "+/-" on an LED, you can't with all diodes. Thin Zener and TVS.

Duane Benson
Matter + antimatter makes what?
Does it really matter?
Does anybody really know what time it is?

How NOT to mark a diode

A while back, I wrote about ambiguity in the markings on electrolytic capacitors. In doing that, I cobbled together a little image to illustrate how surface mount electrolytics are marked. Take a look at the image below:


Note how I have illustrations showing how tantalum and metal can electrolytic capacitors are marked. Further note, that I have the capacitor schematic symbol there too. Finally, note that all three are oriented in the same direction. I have the plus side on the left and the negative side on the right.

Now for comparison, I have two nearly but not quite identical 0805 SMT LEDs in the following photo. Look at the photo of the two LEDs below. I did not alter this image in any way. The mark on the LED image could be interpreted either way. The bump could be seen as pointing toward the cathode, since it is the cathode mark. Or, The line could be on the side of the cathode. That would make sense because the line on the schematic symbol represents the cathode.

There's one final thing to look at - wait for the punchline:

Backwards markings

The punchline is that the  cathode is on the left on both of these LEDs in the photo. I have empirically determined that to be the case, both by putting them on a board and by subjecting them to a diode checker. Punchline number two is that both are correct according to their respective datasheets. The following excerpts from their respective data sheets shows the problem.Reverse marked LEDs

And, drum-roll please ... The third punchline is that both of these parts are from the same manufacturer!

If your board uses SMT LEDs, send the datasheet with your assembly order. Include it as a PDF in your files set. It would also behoove you to double check your CAD library footprint against your specific part number datasheet. IPC says the cathode is pin-one and pin-one zero degree orientation is with pin-one to the left.

Duane Benson

Forward, the LED pick and place
Was there a machine dismayed?
Not tho' the engineers knew
Someone had blundered
Cathodes to right of them
Cathodes to left of them
Cathodes behind them
And I cannot reason why

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 3mm 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:

Non-specific components
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 still will usually fill the BOM for those items when I put them in the schematic.

IC part of BOM

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 10 volts 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.

Speaking of Reference Designators...

In my prior post about BOMs, I gave a few examples of reference designator formats in the BOM. BOMs are a common item that have standards but no standards as are reference designators. There are actually a number of standards covering reference designators, but I still find people referring to documents published in the 1970's!

Some aspects are pretty obvious. They are a code letter followed by a sequential number. Each and every placement on the PCB has to have a unique reference designator. The code letters are somewhat standardized, in practice. Some vary based on the particular user. Pretty much everyone uses "R" for resistor and "C" for capacitor. The mostly standard designator for an integrated circuit chip is "U", although I've seen "IC" used enough times. Crystals and oscillators are supposed to be "Y", but I've also seen "X", "Q" and "U" used. Check this page over at Mentor Graphics for their recommendations.

Things start to get sticky when people have more than ten of a given type of component or when putting together a family panel (several different designs on the same PCB panel). Let's say you have 15 resistors. You could designate them as R1, R2, R3 - R15. But maybe you're a little OCD and you want them to all have two digits. In that case, you might have R01, R02, R03 - R15. To a human, "R1" and "R01" might very well be exactly the same thing. But to a surface mount robot, they are two different things. The robot would be happy with R01, R02, R3, R03, R4... but that could cause problems for a human reworking or maintaining the circuit later. It's best to be consistent. Basically, the assembly systems see reference designators as text items, not numerics.

Let's take the example of a family panel. One board has C1 and C2 are a 10uf, 24V tantalum cap. The other board has C1 as a .01uf, 50V ceramic and C2 as a 220uf 24V metal can electrolytic. If you were having them built separately, there wouldn't be any problems, but the two of those on a surface mount machine in a family panel and you will have bad news.

First you could avoid running your boards as family panels. That's not always practical though. Second, you could just start numbering the second design where the first one stops: design one: R1, R2, R3, R4. Design two: R5, R6, R7, R8. That makes a lot of sense for a family panel. Just treat it all like one big design. That can get confusing though if you later run them individually or need to do some rework. Some poor tech could go crazy looking for R1 on design two. Even worse would be: design on: R1, R3, R7. Design two: R2, R4, R5, R8. Again, fine as a family but darn confusing when separated.

Personally, I would probably go with something like: design one: R101, R102, R103. Design two: R201, R202, R203.

Duane Benson
You know the nearer your designator, the more you're silk screening away

BOMs Away

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