Screaming Circuits: November 2012


Beagle CAD paw prints

Unfortunately, I can't generically hand out Eagle CAD QFN footprints without knowing the specific part, but I can illustrate the areas I initially had difficulty with. All of the traps that used to get me seem blindingly obvious now, but they weren't when I first tried to make my own library parts.

The very first thing I would recommend is to make your own library file. When I started in with my own parts, I would just add them to an existing library. For example, I'd put a new Microchip PIC processor into the "microchip.lbr" library. It seemed the logical choice because there are other similar parts to start with. But, when it's time to upgrade, migration of those custom parts becomes a nightmare. So, now all of my custom parts go into "dfb-parts.lbr."

Eagle footprint menu barSpeaking of modifying existing parts, another recommendation I have is, except for parts where the package footprint is EXACTLY the same, start from scratch with the package footprint.

The schematic symbol is easier to reuse - just make sure you have the right pins in the right place - but subtle differences in the copper footprint can have a big difference at the assembly stage.

Datasheet footprint page land patternI also don't try to hand size and hand position the pads on the silk screen. Start by just putting a pad in the footprint area. The use the Properties/Info button (the big "i") and use the dimensions given in the data sheet to enter the size and position by number.

Look for the "recommended land pattern" or similar diagram toward the end of the component datasheet. Entering the numbers in the Properties/Info box will bypass any position precision issues. Just make sure that you use the right units (i.e. metric to metric).

Stay tuned for the next installment.

Duane Benson
World to end at 9:30. Details at 11:00

The ESD Habbit, or an Unexpected Shock.

Excitement is building here. In a little over two weeks from today, The Hobbit movie will be released to theaters. I'm sure everyone reading here knows the story, but in case you don't I'll spoil it for you.

It's a story about Biblio who is, according to Spock, the bravest little hobbit of them all (google that if you don't get the reference. You'll be glad you did). Biblio is minding his own open source robotics business when the Wizard of Menlo Park (in CA, not NJ) invites 12 MCU designers over for a meal and discussion about the merits of hardware peripherals vs. bit-banged peripherals. The MCU guys convince Biblio to go with them to The Lonely Mountain Chip Fab and help them kill a terrible ESD Spike problem. Actually, it's the Wizard that convinces the MCU guys that Biblio could help. The next day the MCU folks left early and Biblio ran out to catch up with them without even an ESD smock.

The ESD problem came from the North because it's more humid up North and that tends to dissipate ESD. Our Terrible Spike didn't like the idea of being dissipated without having first destroyed a few gold interconnect wires. The MCU guys need those gold interconnects to remain intact, so they brought a secret encryption key and enlisted help from the technician Biblio.

First though, they had to get past the TO-92 packaged parts that wanted to squash them into jelly or tacky flux. Fortunately, despite the bumbling of technician Biblio, the Wizard bought solder with no-clean flux which made the TO-92 parts stop moving once applied. After the TO-92 parts stopped working in daylight, they made a brief stop to inspect the last Homely Chip Fab in the Silicon Valley and see where the light sensitivity came from.

Passing over the Siskiyou Mountains on the way to Oregon and The Lonely Mountain Chip Fab, it started raining so they went into a cave and ate porc for dinner. Biblio ate so much that he fell asleep in the corner behind a chair where no one could see him and his buttons popped off. The missing buttons didn't bother him too much because those ones had a de-bounce problem anyway. Luckily, they weren't Grayhill switches or they would have hates Biblio forever, even if he used an ancient gold Tolkien-ring network to bypass more porcs.

Biblio wasn't the most skilled technician and he caught his pine cones on fire while trying to solder new switches into place, but the wizard was able to re-layout the board using Eagle CAD and an FPGA that could take many forms and would satisfactorily control the machinery and bears at the local honey production facility. But the FPGA brought them all into the murky world of Verilog and VHDL. That would have been fine except that the search engine spiders hadn't crawled the eleven Wikipedia pages they needed to properly map out the clock routing.

The MCU guys got hungry and wouldn't wait for Biblio to come back with pi so they rushed in causing so much in rush current that the lights went out with a snap. After eleven clock cycles in his new hall-effect switch, Biblio knew that the de-bounce problem would be gone except when he plugged the barrel jack into his Apple computer. But with no static guards to wine too, he had no choice but to use the Apple barrel jacks to get power to MCUs and switch open the flip flop made from a streaming-transistor logic gate.

Annoyingly, they split the story in two and the movie will end at this point. We'll have to wait another year to see if Silicon Oakensubstrate is robust enough to kill the terrible ESD spike and pass final QC.

Duane Benson
One oven to reflow them all

Something Completely Different

Here's something you don't see every day. We, at Screaming Circuits, have had folks jump on a commercial airplane and fly here from another state to pick up boards we've assembled for them, but we've never had a personal helicopter land in our back yard to to pick up an order. But then, our back yard has buildings in it and behind that, trees, so it's not as if there's a lot of room for a helicopter to set down.

Our board fab partner, Sunstone Circuits, had just that happen the other day with customer Robert Ford. You can find more details on their Facebook page, but here's the video they posted of the happening. Sometimes even overnight shipping is not fast enough. Now that is an eager customer!

If I'm not mistaken, that's a Robinson R44 he's flying. There are two variants of the R44 with the difference being fuel injection verses a carburetor. The fuel injected version has just a slightly higher payload and quite a bit higher hover ceiling. The important stats; range and cruising speed are nearly identical at 135/130 mph (117/113 kts) and 350 miles range (no reserve) for both. I believe the FAA requires minimum reserve is 30 minutes for VFR (visual flight rules) operation. That would leave a range of about 285 miles. When I was flying, I preferred an hour, as did most pilots I knew. That would leave a range of 220 miles.

The point of origin was Chehalis-Centralia Airport (CLS), Washington. Sunstone is just about close enough to be in the landing pattern for Mulino State Airport (4S9), Oregon. The two airports are 89 nautical miles apart, which will take about an hour and a half for both legs. That leaves 42 miles (or about 20 minutes) fuel for a sightseeing trip. I'd take that.

Duane Benson
Carburators man. That's what life is all about.

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

 

« October 2012 | Main | December 2012 »