For novel ideas about building embedded systems (both hardware and firmware), join the 35,000 engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. Click here to subscribe.
By Jack Ganssle
Some years ago I visited Agilent's oscilloscope division in Colorado Springs. They had just finished designing the "Infinium" series of scopes. The product was - and is - impressive. Still more interesting was their development approach.
The engineers told me that every time they started work on a new product they'd first design the device's computer board. But. Agilent is not a computer company. Why, they wondered, focus on endlessly creating embedded computers instead of zeroing in on the product's application?
This minor revelation shaped the Infinium's entire development strategy. Instead of an embedded computer the scope uses an off-the-shelf PC motherboard.
Revelation number two: why spend so much time and effort getting a cranky embedded RTOS and complete environment going? The Infinium runs Windows, autostarting the scope app once the OS boots.
These two decisions cut man-years from the development process. Designers immediately jumped into the meat of the product, building hardware to suck in analog data at astounding rates, and writing code to display and interpret this data.
I imagine Agilent sells thousands of these scopes each year. Not millions - it's not a high volume product like a cell phone. The average price is many thousands of dollars, so there's room to increase costs - some - to shorten development time. That PC motherboard is surely not the cheapest solution, but cutting man-years of effort saves money over the product's entire lifecycle.
In my job as embedded gadfly I look into the workings of an awful lot of companies building products. A phenomenal number never balance the NRE (non-recurring engineering) versus cost of goods equation. The math is simple: if it costs X dollars to develop a product, and Y units are sold, then the engineering cost per unit is X/Y. It's a cost that is as real as the price of the chips and resistors, as the RTOS licensing fees and the plastic enclosure.
NRE is a cost that must be amortized over the product's lifecycle. To do otherwise means one cannot make intelligent engineering tradeoffs. Spend half a mil on an ASIC and, if volumes are low, the per-unit cost of that chip is thousands of dollars. Does this make sense for your product? Add these thousands to the production cost of the product - is it still profitable? If not, you're going broke.
(Of course, there are cases where other factors intrude - size, power dissipation, and the like may overwhelm simple cost drivers).
Maybe you really do need to design that 8051-based board, but sometimes it's far cheaper, in the long run, to use a more expensive solution like a Basic Stamp. The Buyer's Guide, on this site, lists hundreds of vendors pushing all sorts of COTS boards. In low volumes I betcha you can't beat what initially might seem like the high prices of these done, tested, working-today solutions.
To design, debug, respin, retest, document and productize a moderately complex PCB with an 8 or 16 bit processor will cost at least $25k. $100k is not out of the question. 32 bitters will be more.
If size, power and other factors aren't a huge issue, and if volumes are low, how can a responsible designer not pick a COTS solution?