Thousands of integrated circuits of varying functions have come and gone since the old days, when we used to mosey on down to the local Radio Shack to grab that last minute electronic part, like maybe a 1uF electrolytic capacitor. Or a grab-bag full of diodes, hoping we could pluck one out and complete the dinosaur design of the day.
What we’re left with is an era of super-integration. The spearheads of the popular nouveau “maker movement” are the Arduino family of customizable electronic sub functions/assemblies and the Raspberry Pi family of processor cards, on which you can run things like Linux and Android, with WiFi and/or Bluetooth wireless functions if you so desire.
We’ve truly come a long way to the point where cobbling together a suitable processor and a bunch of I/O functions, serial interfaces, motor drivers, communications, etc. can be done in a matter of hours — and for some who are regular tinkerers in this space, a matter of minutes.
Once you have that single working prototype in hand, can you then make 1,000 of them? 100,000? 1,000,000? Each a clone of the original you made, and performing equally?
Allowing rapid prototyping and initial concept testing of a smorgasbord of types of electronic designs is a fantastic property of these subsystem-level assemblies. However, therein lies the problem — once you have that single working prototype in hand, can you then make 1,000 of them? 100,000? 1,000,000? Each a clone of the original you made, and performing equally?
Well, not so fast, Bucko. Hold onto your Adafruit, you’re having a bit too much Sparkfun.
Readying Electronic Prototypes for High-Volume Production
Traditionally, in an electronic design destined for high-volume production, a lot of the work is related to making sure everything you interconnect will work as designed, under all conditions, and within all manufacturers’ specifications, across all design tolerances. This is the hallmark of methodical and thorough electronics engineering, in which good engineers make sure that, when the design is replicated thousands of times, the manufacturing yield will be high and there will not be excessive fallout (yield loss) in manufacturing, or worse yet, at customer locations.
Not only does Little Johnny hate it when his video game crashes unexpectedly, but product recalls are expensive, and are very tarnishing to a brand name. There are good reasons why companies like Apple, Google, Amazon, and Sony spend millions of dollars preparing designs for production, and the proper process is far from trivial.
Our Checklist Goes To 11!
So what are some of the design problems that can come up, and how do we eliminate the possibility of those problems, or at least mitigate the risk of a problem occurring? Connecting a bunch of Lego-type pieces without paying proper attention to the nature of the connections is a wonderful prescription for high-quantity failure. Let’s touch on some of the issues that need to be dealt with and acknowledged before a quick-turn electronic prototype can be put into high-volume production:
1: Digital is not really digital.
In today’s cookbook world, there is a tendency to assume that digital designs are much more straightforward than analog, well, because everything is just 1’s and 0’s, right? Wrong. Digital is largely analog with a binary interpretation. When that binary interpretation isn’t really clear at any point in the chain, that’s when things go bad in a hurry. Hope you studied up on your R’s, L’s, and C’s.
2: Schwarzenegger vs. DeVito
One of the most common problems is a mismatch of CMOS/TTL voltage levels. Logic signals cannot be arbitrarily connected if specs for min/max logic thresholds between parts are not compatible. It’s an easy problem to have, depending on the specs of the ICs on the chosen board(s). Buffers or logic-level translators may be needed, and can alleviate the problem, but result in increased cost, complexity, and additional pesky little PCBs.
3: Be early for your appointment, and don’t be the first one to leave.
The clock signal in a system provides timing for the transitions of data and the propagation of that data from one point to another in a system. Clocking data from one point to another isn’t always as easy as it may seem. Key parameters of setup and hold must not be violated, or funky analog things can happen inside your digital parts.
‘Setup’ is the amount of time before a clock edge that data must be voltage-stable and not varying, and ‘hold’ is the amount of time data must remain stable after that clock edge. This is to allow the ANALOG stuff inside your digital part to come to a stable, binary state.
Failure to meet setup/hold requirements can result in “metastability,” which includes an in-between, no-man’s-land, unwanted state that persists or oscillates for a finite amount of time (think egg balanced on a roof peak) and can wreak intermittent havoc on your system stability. Wonder why you get the “Blue Screen of Death” occasionally? Or you’d swear you already hit that volume-up button?
4: Shlock clocks.
Generally, in a high-level system, clocks should not be gated. (The exception is in detailed integrated circuit design, where clock gating is used to conserve chip power and designed specifically to do so.) Gating a clock introduces unwanted timing skews between signals, which, if not properly accounted for, can also cause intermittent stability problems. It is preferable to keep designs fully synchronous with the continuous clock to prevent race conditions and other timing problems. The use of Arduino building blocks may not allow this sort of architecture.
5: Traffic on the freeway is a little slow today.
Propagation delays from one circuit board to another can be overly long if the circuits are disjoint from each other as a result of separately-designed and mismatched subsection designs. This can cause digital timing problems, or slow down data interfaces and transfer times.
6: Holy petrol, Batman! We’re out of gas!
Insufficient source-drive current, especially to motors and/or devices that draw higher amounts of current, results in the inability to properly drive the load device. This creates a consequent detrimental voltage droop and/or excessive noise. Current requirements need to be taken into account, and proper circuitry implemented such that these problems do not occur.
7: Don’t call your weakest friends to move your furniture.
Part derating is the process of selecting parts that are a bit overqualified for the job, so that they are not overly stressed, and thus don’t break down on the job (premature failure). This is even more important for parts such as electrolytic and tantalum capacitors that are overly sensitive to being run too close to their rated voltage. Premature failure is usually the result here, after units have been sold or put into the field, and overheating can also cause other problems.
8: That wig needs a serious haircut, man.
Interconnect wires that are too long can cause a few problems, ranging from unwanted vibration and rattle, to noise pickup or radiation, to coupling of adjacent signal lines. Wires that are inadvertently looped can inductively couple into each other, or act as unwanted antennas. As frequencies and transition speeds go up, wires need to be kept as short as possible.
9: Mom always told me I should be more grounded.
Grounding and shielding are two of the most important concepts in electronics, and two of the least properly understood. Having two or more separate PC boards in a design means that extra care needs to be taken with ground connections, ground impedances, prevention of ground loops, etc. Shielding (not typically seen on Arduino or similar PCBs) could be needed to prevent noise from coupling into a circuit, or prevent circuits from radiating too much energy — the FCC doesn’t seem to like that very much….
10: Aaaaaand speaking of which…
A production-level design needs to pass FCC and other certification tests (UL, CE, etc.), and if not designed specifically to do so, can be a real nightmare to get a passing grade.
What IS great these days is that there are pre-FCC-certified modules being produced by a variety of companies, especially in the wireless (WiFI/Bluetooth) arenas, thus alleviating part of the problem of getting a full product to pass certifications, but certainly not eliminating all of the issues.
11: And last, but far from least…
Software. Firmware. Cobbled together code. With the proliferation of so much modular maker hardware, the matching tendency has been to grab as many building blocks of code that you can find, ranging from freeware or open-source, to manufacturer-provided functional code and APIs, and paste them together like a 3rd grade collage.
This often gets the designer to a ‘functional’ point, but is not usually a good path to production. There can be copyright issues, inadequately implemented functions, early obsolescence, insufficient knowledge of design details, and a whole host of other more direct problems like bugs or timing problems.
This checklist just touches on the many issues that need to be considered for a design that is destined for high-quantity production. Likewise, of course, any mechanical portions of a design need to be similarly analyzed for material appropriateness, longevity, and construction, using techniques like finite element analysis (FEA). But I’ll leave that post to one of our mechanical engineers.
Read about our Electrical Engineering expertise.