Good software is written in modular fashion. By avoiding interdependencies, we can pull out a chunk of code here and another there to create new programs.
So why do we keep making interdependent hardware?
For one reason, no one has come up with a schema and a platform for its independent functionality. No one has, in effect, created Object-Oriented Hardware.
Bug Labs, a new company with staff in San Francisco and New York, has done just that. A 3x8x20 cm base unit is a fully functional, fully hackable Linux computer. It has Wi-Fi, USB, Ethernet, and a small LCD screen along its thinnest side. Up to four thin, square modules can be snapped into it, top and bottom, two to a side.
Bug has already created four modules''a camera/videocamera; GPS; an accellerometer/motion sensor; and a touch-sensitive, color LCD touchscreen. It has plans for a GSM module and a wish-list of 81 others to come.
Put the camera and the motion sensor together and you have a quick home security system. With a GSM module, it could send you a text message or a photo of the intruder (or your cat). Since it already has Wi-Fi, it could send a message to your computer which could then send out an alert.
Peter Semmelhack, Bug''s founder, says one of his favorite combinations of modules was someone''s idea for putting together the GPS unit, the LCD screen, and a little bit of software that would flash your shopping list when you drive up to the supermarket. ''Or for example, when you get to your subway stop, it reminds you to pick up the dry cleaning,'' the aptly-named Semmelhack says.
I saw any number of good examples where Bugs'' idea would improve new products. Magellan, the GPS company, has units with voice recognition, and also video cameras ''to record the experience once you get there.'' But your digital camera already takes video, and maybe even your phone as well. How many small, built-in videocameras do you really need? Wouldn''t it be nice to be able to invest in a single, really good one, and just snap it in? Similarly, your phone and car may already have voice recognition.
The Bug system doesn''t slip into your pocket as nicely as a phone or camera. But what Bug does is two things. It creates a mindset of modularity for hardware manufacturers. Second, it provides a platform for developing software that uses hardware that hitherto was too expensive or complicated for the home hacker to work with.
Take the to-do list hack. A teenager could come with the idea, write the basic software, and drive around the neighborhood testing and refining it all in a single afternoon. Think of it as super-rapid prototyping.
New hardware capabilities are showing up in devices all the time. Sony Ericsson has a beautiful new phone, the W760 that has an accelerometer built in.
You can play a car-driving game on it where you turn by tilting the phone left and right, and speed up and slow down by tilting it forward and back. My iPhone and my camera already have LCD screens and accelerometers. If I, as a hacker, had access to that hardware, I could run the same game on them in an idle moment. And with the right Bug modules, I could come up with new games that could run on all three.
Some will complain''in fact they already have, according to Semmelhack''that Bug''s system obscures the hardware from the user and actually runs counter to the hacking mentality. That''s wrong in two different ways.
First, Bug''s platform is a great one hardware development''every pin, screw, and software interface of the base unit is exposed and documented. And even if want to create the world''s best accelerometer in order to, say, do camera image-stabilization control in a new way, I hardly want to also have to invent my own camera or LCD screen.
Second, many hackers are just less interested in the basic hardware than stretching the bounds of what you can do with it. Microsoft''s Tandy Trower made this very point in an August Spectrum article about robot software development.
''We kept hearing that robotics research was popular but challenging,'' Trower said. ''Students wanted to program robots, but they were spending all their time on fundamental engineering. There was a lot of reinvention of the wheel.''
The Bug Labs scheme creates a new level of abstraction at which hackers can hack, in much the same way that Basic did in an era of assembly-language programming, and that Visual Basic and Java do today. In every case, new hackers are made out of people overwhelmed or intimidated by the complexity of existing platforms. Let the new era of hardware mashups begin!