Buy or Build?

Long before the decision is made to fire up the CAD workstation and begin capturing schematics, you should take the time to do a thorough search of existing products and components to see whether what you need already exists. After all, you’re creating this new widget because there’s a glaring and obvious need, right? In other words, a real market? If the market exists, it’s likely that other people have recognized that fact and will already be offering “solutions” of one sort or another—even though their solutions might be inferior to what you have in mind. But perhaps you could adapt, rework, enhance, or otherwise improve upon what’s already out there.

While you’re doing this research, don’t be afraid to approach potential competitors. You may find that they would be more than willing to defray some of their own development and manufacturing costs by selling you a hardware platform to which you can add your own differentiating features via software. This scenario is particularly likely with offshore manufacturers, who may not have your marketing or distribution expertise or home field sales advantage.

As a general rule, unless you intend to build minimum quantities of several thousand per month or your requirement is so unique that there’s no possibility of economically using anything off the shelf, you should shop for screwdrivers instead of CAD tools. If you do decide to buy rather than build, don’t be disappointed at having to suppress the engineer’s natural instinct to invent. There will still be plenty of other opportunities for challenge and excitement (like it or not).

The “Cheap PC” Myth

Inevitably, while you’re researching platform possibilities, someone (most likely from Operations or Administration) will feel compelled to deliver an impassioned lecture that goes into exquisite detail in pointing out the galactically obvious: Desktop PCs are ubiquitous, powerful, and incredibly cheap. It follows from this argument that if you could simply develop your product based on an ordinary PC, then it too would become ubiquitous, powerful, and (in lieu of cheap) immensely profitable.

In fact, there are a great many valid and compelling arguments that can be made for adopting such a strategy, including reduced development time, expense, and risk. However, you can’t safely assume that you will get the same cost savings as the large PC OEMs. While you may use the same basic components (processor, chipset, memory), and these are produced in tremendous cost-reducing volumes, realistically they represent only a small fraction of the completed system cost. If you really can use standard, unmodified PC components, you may save some money. But if you need a different form-factor or user interface, diskless operation, alternative power sources, or any other modifications, your “standard PC” starts looking more and more like a wide range of other alternatives.

One closely related alternative involves the use of so-called “industrial PCs,” which utilize standard form-factor boards with a passive ISA or PCI backplane in a rugged (typically rack-mounted) enclosure. If you’ve already done some shopping for these industrial PC components, you’re well aware of the huge cost difference between that PC you purchased at a discount warehouse for development use and its equivalent (or lesser) industrial version. The industrial version can easily cost three to four times as much for the same functionality. Many developers aren’t aware of this difference until they’ve committed the project to being PC-compatible, and then it’s too late to reverse the decision easily. This makes the industrial PC suppliers very happy.

The alternative to using an industrial product, which ostensibly offers great long-term availability and reliability, is to settle for the “motherboard du jour” approach. Under this system, you use whatever boards are available; although these boards may indeed be PC-compatible (by definition), some will also be completely different in terms of component layout, heat distribution, core chipsets, BIOS features, power requirements, memory compatibility, processor vendors, peripheral functions, mechanical mounting, and cabling/connector requirements. The PC industry is evolving so rapidly and the competitive cost pressures are so great that in many cases the manufacturer will initiate a complete redesign to save only a few cents per board. As a result, the use of “standard motherboards” means that your product will be subject to constant change and evolution completely beyond your control. This is guaranteed to have some undesirable consequences, despite any “compatibility” claims.

Perhaps you have other reasons for wanting a PC-compatible platform, such as the ability to reuse existing code, legacy applications or hardware interfaces, or specialized development tools. At the same time, you may find that the industrial approach is either too expensive or doesn’t offer the flexibility or feature set that you need. In this case, you have the option of designing your own “motherboard.”

The major silicon vendors continue to devise new variations of x86-family processors and chipsets targeted for embedded applications. More importantly, they’re finally beginning to address the need for a stable and long-term supply chain for both the processors and companion chipsets that’s more in line with the expected lifecycles of the products in which they’ll be used. What’s more, some manufacturers are willing to simplify the design process by supplying a wealth of reference materials, evaluation systems, and even complete ready-to-use designs in CAD format. All you have to do is ask—but be prepared to “do the math” anyway, since you still have to contend with PCB layouts, mechanical and thermal issues, assembly and test, EMI and safety, and a wide range of other issues that apply to any product—whether PC-compatible or not.

If it sounds as though I’m discouraging the use of PCs for embedded Linux, rest assured that I’m not. It’s just that there are many alternatives in addition to the standard PC that are often neglected because the “PC option” seems so obvious. Still, the PC approach can be, and often is, the best fit.

Another, more expensive approach is to use notebook components. These tend to be rugged and small. You can take the main-logic board and mount it in a new box. Besides being rugged, many logic boards have built-in power supplies and charging circuits.

SBCs and Other Options

Pursuing the “buy” option? There are quite a few alternatives to desktop or industrial PCs.These generally fall into two categories: single-board computers (SBCs) with little or no expansion capability beyond the features provided onboard, or modular systems products based on specific bus standards.

Single-board computers come in a wide range of standard and custom form-factors. The most common types usually have a mechanical footprint equivalent to either a 3½-inch disk drive or the slightly larger CD-ROM drive size. Most are PC compatible, although it’s not uncommon to find other processor families supported as well (for example, PowerPC or StrongARM).

SBCs also tend to cost slightly less than the industrial-PC products, but be aware that the reduced cost comes at the expense of having limited expansion capability. As a result, SBC designers tend to take a “kitchen sink” approach by including as many peripheral functions as they can possibly squeeze onto a relatively small PCB, often using nonstandard connectors to save additional space. Power requirements vary wildly depending on processor type, speed grade, type of memory used, and peripheral functions available.

If you’re lucky enough to find an SBC that offers the exact mix of performance and functionality you need, you still have to contend with packaging it and a power supply, along with anything else you need (display, controls, cooling, and so forth) in a suitable enclosure. In my experience, the small form-factor usually provides little benefit once the other bits and pieces are added and the myriad cable and connector issues are sorted out.

Perhaps the biggest drawback of SBCs is the limited expansion capability. It never seems to fail that the one interface you need—typically the thing that makes your application and product unique—is not available and will require substantial thrashing and contortions on your part to accommodate and adapt.

And finally there’s the cost. If you’re building one or a small number of something truly custom (in other words, not intended for ongoing production), the cost savings of using the SBC will disappear once the other costs (assembly, configuration, documentation, and so on) are assimilated.

A somewhat more flexible approach is provided by a number of bus-based products, including PC104 and PC104+, STD bus,VME bus, CompactPCI, and others, all of which conform to published standards and are supported by extensive supplier organizations. The cost of these products is usually on par with the industrial-PC equivalents, but in many cases they can cost considerably more. The benefits include much greater flexibility in packaging, processor/performance options, increased supplier base, and—theoretically, at least—choice of off-the-shelf interface types and functions.

The primary advantage to be derived from using any of these systems is that it allows you to build custom functions to be added according to well-defined standards in a well-known, documented environment. But notice that I said build—meaning that you have already determined that some elements of your product will have to be engineered, designed, and constructed by you. What’s more, you’ve also determined that your performance or throughput requirements demand this level of sophistication. This approach, a combination of “buy” and “build,” represents the top of the food chain as far as embedded is defined. Systems like these are typically embedded in airliners, oil tankers, and skyscrapers—not wristwatches.Yet Linux can be equally at home in all of these cases.

Custom Design

If your search for a ready-made hardware platform fails to turn up anything promising or suitable, or if your volume and cost requirements warrant going into full production, you may have no choice but to design it yourself. Obviously, this approach yields the utmost in flexibility but provides the greatest risk as well as many challenges. You can design the hardware yourself if you have the in-house talent, or you can hire a consultant to do the designing.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset