JVM Languages

Hardware Mash-ups and Bug Lab's Bug

By Mike Riley, August 27, 2008

A Java-programmable electronic base with various I/O ports

Mike is a contributing editor to Dr. Dobb's Journal. He can be contacted at mike@mikeriley.com

Being a child in the '60s, one of my favorite toys was Mattel's Thing Maker. If you're too young to have experienced the perilous thrill of creating a collection of plastic bugs by heating a colorful substance the Mattel designers playfully called "Goop" poured into metal molds baked on a potentially skin bubbling electric griddle, the creation process was far more satisfying than the final product. This dangerous aspect was actually part of the product's appeal; if you weren't careful, you could get badly burned. What also made the Thing Maker so fascinating was its ability to pour different color goop into different bug parts to ultimately create a unique mixture that satisfied an intrinsic inventive need. While the end product provided passing interest to friends and family, the reward was almost entirely realized during the creative phase.

That sense of joyful wonder, playful construction and even sense of danger was resurrected both literally and metaphorically when I began exploring the learning potential of Bug Labs' BUG -- an open embedded Linux-based combination of a BUGbase and four BUGmodules.

The BUGbase is a Java-programmable electronic base with various I/O ports: MicroUSB storage slot, 2-line LCD display, buttons, a 4-way joypad and four large interfaces (two each on the top and bottom) for Bug Labs' variety of BUGmodules. BUGmodules are individual modules that supply additional functionality to the BUGbase. Four BUGmodules currently exist:

A color LCD screen (BUGview).

A combined motion detector/accelerometer (BUGmotion).

A GPS (BUGlocate).

A 2-megapixel color camera (BUGcam2MP).

A much needed WiFi module is in the works, but no release date was available at this time. An active thread of BUGmodule ideas ranging from cell radios to infrared modules can be followed at buglabs.ideascale.com/ . While each of these components can be purchased separately, the best way to experience the BUG is to obtain the combined BUGbundle. This is the edition I reviewed.

Bug Labs adopted the Apple packaging experience philosophy, as the BUGbundle is boxed in a sturdy, attractive, and innovative geometric design that folds out to reveal a snugly seated BUGbase and four BUGmodules along with a thick 4-color card stock deck mapping the hardware and prompting new owners to follow the software download and installation steps at www.buglabs.net/start. You can check out the BUGbundle un-boxing in this video.

Setup instructions are available for each of the the Linux, Mac OS X, and Windows platforms. This is because the BUG SDK (appropriately named "Dragonfly") is an Eclipse Perspective and, as such, can run within the same operating system environments that can host the Eclipse IDE. This software distribution decision lets Bug Labs continually iterate on the evolving Dragonfly software without the added expense of stale CD-ROMs and ensures that its customers are obtaining the latest bits to interact with the device.

After considering the different OS platforms to plug the BUGbase into, I opted to use OSX 10.4 as it required the least amount of prep work and, unlike the other platforms, it didn't require any additional software driver installations. This is not the case on other operating systems, including OSX 10.5, because of the need to install a USB networking driver to talk to the BUGbase's private network address of 10.10.10.10. Once the USB configuration has been set up, plugging in the BUGbase using the supplied USB cable and telnet'ing or secure shelling to its address verifies that it is ready to accept Dragonfly-constructed applications.

Unpacking, downloading, installing, and configuring application and device dependencies took me about 20 minutes although this setup time may take longer for those who don't already have the latest Eclipse IDE downloaded and configured on their computer.

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task.
However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Video

This month's Dr. Dobb's Journal

This month,
Dr. Dobb's Journal is devoted to mobile programming. We introduce you to Apple's new Swift programming language, discuss the perils of being the third-most-popular mobile platform, revisit SQLite on Android
, and much more!