ONE OF THE outdated axioms of corporate IT is, "Never build anything you can buy." Five years ago, custom software was considered
a risky, low-return exercise. Horrific anecdotes aside, old theories about custom software's negative ROI have been soundly
disproved. Now it's time to work on those unfounded fears about the risks and returns associated with in-house hardware projects.
A recent experience started my exploration of embedded technology. I wanted to track the performance of different vendors'
hard drives over an indefinite period of time, under extremes of temperature and usage. Designing around a PC raised many
issues, but the showstopper was that the PC itself was a failure-prone part of the test bed. I'd have to use a second PC to
watch the first one and to mirror the logged data for safety. That's when I realized the project was bigger than I had time
to tackle, so I shelved it. Sound familiar?
I only knew about the two extremes of the embedded technology spectrum: For $100 in Radio Shack parts and several long nights
at your workbench, you can make an ugly, inaccurate clock. Three thousand dollars of circuit boards, wired together inside
a mailbox-size cabinet, can run a jet fighter's guidance system or replace your home thermostat. I didn't see a fit with my
project.
What I didn't realize was that there were plenty of affordable, bulletproof systems that reduce jobs like mine to a couple
days' worth of programming. I built my test bed using embedded systems and tools I acquired from Rabbit Semiconductor, Parallax,
and Maxim. Rabbit (
http://www.zworld.com
) sells single-board computers built around an 8-bit Z-80 microprocessor. The OP6700 system I chose has a real-time clock,
battery-backed RAM, nonvolatile flash memory, Ethernet, a 12-button keypad, and an LCD display in a self-contained enclosure.
It powers my PC test bed up and down, manages the testing process, and records the test data in real time; I view log data
from the OP6700 with a Web browser. All of the programming is done in a multithreaded variant of C, using an easy Windows-based
IDE (integrated development environment).
I added Parallax's (
http://www.parallaxinc.com
) Basic Stamp 2P because it has built-in support for Maxim's (
http://www.ibutton.com
) 1-wire temperature sensors. The Basic Stamp is easy to program in Basic, and I found I could string together as many
as 15 temperature sensors, so I was able to track each drive's temperature independently. The Basic Stamp and OP6700 work
together, shutting things down and sending an alert to my BlackBerry if a drive fails or anything gets too hot.
I was almost embarrassed by how quickly the whole test bed came together. I didn't solder a single wire and I ended up with
a completely self-managing solution. After solving this problem, I started seeing embedded solutions to other challenges in
my lab, and I think back to a host of IT projects I waved off because I assumed the cost and risk of failure outweighed the
benefits. How wrong I was.