Specifications

The BUG:
a Linux-Based
Hardware Mashup
It runs Linux, has a GPS, camera, motion detector
and color touchscreen—and it’s completely hackable!
Mike Diehl
48 | august 2008 www.linuxjournal.com
T
inker Toys, Lincoln Logs, Erector Sets, Legos—I
think I had just about every building toy there was
when I was a child. Now that I’m all grown up, I
still like to play with toys, and I still like to build
things and connect them together. Only now, my toys are
much more sophisticated, and some of them are even prac-
tical. I think much of the attraction that software develop-
ment has for me is that I get to use my creativity to build
applications that didn’t previously exist, using a few soft-
ware building blocks. I think most programmers and Linux
users can relate to feeling this attraction.
However, many of the really neat things I would like to
do in software aren’t typically supported by hardware. For
example, my home’s thermostat doesn’t talk to my group-
ware to see when I’ll be home and want the house heated
or cooled. My digital camera doesn’t talk to my GPS to
embed location information into the pictures I take, and I’m
not able to add labels to my pictures with my PDA. To be
able to build functionality like this, we need hardware that
is open enough so we can hack on it and powerful enough
that we can do nontrivial things with it. Finally, we need
hardware that has a variety of functions built in to it. I have
such a device; it’s called a BUG from Bug Labs, and it’s got
to be the neatest thing I’ve seen in some time.
The BUG is an embedded Linux machine that accepts
up to four external modules that provide various function-
ality. For example, the BUG I received had a color touch-
screen module, a GPS module, a 2-mega-pixel digital cam-
era module and an accelerometer with motion sensor. All
of these modules plug in to the base unit. Once plugged
in to the base unit, the modules expose their functionality
as a kernel device and via a Java API. The idea is that you
write a program that combines these functions into useful,
or simply fun, applications. Peter Semmelhack, the CEO at
Bug Labs, described it to me as a hardware mashup.
When I received my review unit, I opened the package in
FedEx’s parking lot and couldn’t believe what I saw. The base
unit is only 5-inches wide, 2.5-inches deep, and less than half
an inch thick. There are two module ports on top of the unit
and two ports on the bottom of the unit. With all four mod-
ules installed, the whole unit fits in the palm of your hand
and is about the size of a large digital camera. The Web site
indicates that the camera module can output still frames or
MPEG video at ten frames per second. The unit comes with
an LCD status display, four software-definable buttons, two
menu buttons, a USBtoGo port and a piezo speaker—all of
this and a tripod mount!
The unit also comes with a 512MB MMCmicro memory
card installed. I found out the hard way that this is where
the BUG stores its root filesystem. I decided to see what
was on it, so I put the memory card in my PDA, which of
course reformatted the card and squashed my BUG pretty
handily. Fortunately, I was able to download a new image
from the Bug Labs Web site, and I was up and running
again in minutes. The root image consumes only about
30MB of the available 512MB, so there should be plenty
of space for user programs, pictures and data.
Conspicuously absent from the unit is any type of labeling.
None of the buttons are labeled, nor are any of the modules,
although the modules do sport some Braille marking. This
doesn’t make the unit difficult to use, but it does make for a
clean presentation. It also opens up the possibility for chassis
modification, which reinforces the idea that the BUG puts
the user in control.