Specifications

site. They tend to be well written and serve as good example
programs from which to learn. There is sample code avail-
able on the Bug Labs Web site to exercise each of the
available modules as well as the Java Abstract Window
Toolkit (AWT) that comes with the BUG.
Bug Labs has a remarkable outlook when it comes to the
openness of its products. To borrow a term from the CEO, Bug
Labs embraces “Radical Openness”. This policy is reflected in the
use of Linux as the core of its system, Java as the main develop-
ment language and complete documentation for the system and
programming API. But, it goes beyond that. Bug Labs even has
documented the pinout of the connector that its modules plug in
to. I was told that if someone wanted to start producing third-
party modules for the BUG, Bug Labs would support that effort.
This policy, as well as the flexibility and sophistication of the
device, makes the BUG a hacker’s dream come true.
Every product has its drawbacks though, and the BUG is
no different. The fact that none of the buttons and connectors
are labeled makes the device less than intuitive. I actually had
to look at the documentation that came with it. With such a
small form factor, this device is just begging to be used in
mobile applications. So although the USB networking gets the
job done, the BUG really needs Ethernet or Wi-Fi capability.
I’m told there will be an Ethernet module available soon.
Removing the various modules from the base unit is some-
times a bit unnerving. The latching mechanism holds the modules
in place quite securely, and it’s often difficult to un-install them. At
first, it isn’t even obvious how to go about it. Having removed
and replaced the modules several times now, I’ve gotten used to
the fact that I have to press harder than expected and that the
unit’s chassis is more sturdy than it looks. That said, I still haven’t
worked up the courage to exchange modules while the unit is
running, although I’m told that they’re hot-swappable.
The Bug Labs Web site is testing some of the modules
that they plan to release in the second quarter of 2008. The
QWERTY keyboard will be a welcome addition. Though the
BUG has a built-in speaker, it’s of rather poor quality, so the
speaker module with I/O jacks will be nice. Neither of these
promised modules seem to be in the same league as the mod-
ules already available. It’s pretty hard to compete with a GPS
module with an external antenna connection or a motion sen-
sor module, but they’re trying. I received an e-mail from my
contact at Bug Labs indicating that they have about 80 new
modules on their R&D list. Some of the modules on their list
include a TV tuner, Servo interface, game controller, bar-code
scanner, 3G modem and a Geiger counter!
My contact at Bug Labs went on to describe a module that
they are working on that will open up the BUG to a whole
new world of customization. They’re about to release a mod-
ule that exposes all of the BUG’s hardware signaling and pre-
sents it in a manner much like a breadboard or breakout box.
With such a module, it seems like it would be fairly easy to
interface the BUG with a PIC microcontroller, or an external
relay bank, or a Roomba—but I digress.
Remembering my earlier lamentations about the inadequa-
cies of my existing electronic gadgets, what can we really do
with a BUG? I have a few suggestions that are completely
plausible and that I hope pique your interest in developing
programs for the BUG.
Parents of teenagers might be interested in using a BUG
to track their kids’ driving habits. With a built-in GPS, an
accelerometer and almost 512MB of memory, it wouldn’t be
difficult to track where kids go, and how fast they went. Such a
device could be mounted in the trunk and would have the
added benefit that if the kid decided to remove the unit and
stash it at the library, where he told his parents he would be, the
device could sense that it was being moved, using the motion
detector module, and start filming the event—busted!
But, that’s a bit too much Big Brother for me. I could see
giving a BUG to a group of Boy Scouts at a camp-out. The
device could be preprogrammed with GPS coordinates for vari-
ous targets. The boys would be told to use the GPS to locate
the targets and take a picture of them. The BUG could verify
that the boys had reached the correct locations and store anno-
tated pictures of each target. The accelerometer module could
be used to measure the boys’ minimum, average and maximum
speed as they hiked up mountain passes and into valleys. This
could evolve into a timed race between different groups.
I could go on, but I think you get the idea. Neither of these
devices are on the market right now. Sure, you could use a
GPS and a digital camera and get most of the same function-
ality described above, but part of the appeal of the BUG is
that all of these features are combined in one unit and under
user-programmable software control. With the appropriate
modules installed, you can program the BUG to do anything
you want it to do. Then, by installing different modules and
running a different application, the same unit can provide an
entirely different function—one of the few times when you
are truly bound only by your imagination.
I don’t have enough space to explore the BUG fully. I’ve
spent hours looking at the Bug Labs Web site. I haven’t writ-
ten about the embedded Web server and associated Web ser-
vices API. I’ve not written about the underlying Linux system.
I’ve not written about the details of the SDK that are freely
available from the Web site. I’ve not written about how the
system hosts a service-oriented Java runtime component called
OSGi that simplifies software development. For such a small
device, there is a surprisingly steep learning curve. What origi-
nally attracted me to Linux was the fact that I could learn to
do simple tasks quickly with Linux, but that I also could study
Linux for years without ever running out of things to learn. I
think the BUG is going to provide a very similar experience.
I
Mike Diehl works for Orion International at Sandia National Laboratories in Albuquerque, New
Mexico, as a Linux server manager. Mike lives with his wife and three small boys, including a
newborn, and can be reached via e-mail at mdiehl@diehlnet.com.
www.linuxjournal.com august 2008 | 51
Resources
Bug Labs Web Site:
www.buglabs.net
Download Site for BUG SDK:
buglabs.net/sdk
BUG Wiki:
bugcommunity.com/wiki
BUG Documentation:
bugcommunity.com/forums
Getting Started:
buglabs.net/products