There’s that moment when you power up the first production board for a new design. It doesn’t matter how perfectly the prototypes operated. The question, “Is it going to work?”, still hangs in the air. At its best, this process is exciting. At its worst, you find yourself with an intermittent but persistent problem that means you need to spend more time and money.
Today, there are a great variety of off-the-shelf boards available to jumpstart your designs. However, if you plan on shipping, say, an Arduino with lots of wires crisscrossing the board to more than a handful of customers, it is likely neither cost-effective nor reliable to ship. At some point you need to consider a custom design.
Unfortunately, any time you request custom work, it erodes away the production-ready aspect of design. By its nature, a custom board has never been built or tested in this particular configuration. There might be some nuances you’ve missed or some unanticipated interaction between two drivers that keeps your board dark when it should be coming to life the first time you attempt to power it on. Each failure will cost you. There’s the cost of adjusting the design—and definitely more frustrating—the added delay before you have the next board in your hands. And let’s not forget all of those now useless production boards sitting in boxes.
Perhaps the most effective way to minimize board bring up problems and assure that you experience the right kind of excitement when you turn on your board is to avoid reinventing the wheel, so to speak. Instead of creating a wholly new design, use what has already been done and has already been proven to work.
To see this in action, consider the customized module design tool, Geppetto. Geppetto greatly simplifies the process of creating a custom module by allowing you to drag-and-drop capabilities onto a board. You can choose from well-established blocks of functionality that have been used in many diverse designs. The key here is that the IP has been proven again and again, across a wide range of use cases and development environments.
Using what has already been done doesn’t get rid of all the problems. For example, chip manufacturers approach compatibility in different ways. Consider an MCU driver for a particular camera. When a compatibility issue arises, the chip vendor may modify the vendor’s camera driver, not their own software. That’s why a fix may work with some boards (including the one for which they’ve already ‘solved’ the problem) but not for all boards.
Companies such as Gumstix work hard to make sure that such hacks (let’s call them what they are) don’t get into the system by employing a Gold Standard for drivers. For example, at a minimum, drivers need to be based on the base Linux code, the approved one that everyone works from. In this way, many types of incompatibility can be avoided.
Board bring-up is one of the big moments of the design process. By building upon proven IP, you can assure it is one you are going to enjoy.
Take a look at some Gumstix customer success stories or contact Gumstix today to learn more about their products, design tools, and services. Or try out Geppetto, their customized module design tool, for yourself.