Twitter github

OSGi, BUG and Modular Hardware

Over the holidays, I’ve been having a blast with the BUG from Bug Labs.

What is the BUG you ask? Well, it’s a bit hard to explain but on the high level think of it as programmable LEGOs for adults. It’s essentially a collection of electronic modules you can easily snap together and program to make any device or gadget you want. There are many modules available for the BUG…

Using these modules you can build any device you want. Once you have built creation, you can start developing applications for that particular device. For example, I can have the BUGlocate (GPS) and BUGmotion (accelerometer) modules and develop an application that takes a picture between a certain time and tweets the photo.

In my opinion, the coolest thing about the BUG is that it’s open source and enables modularity via OSGi. Under the covers, it is using the Concierge OSGi framework implementation due to size constraints.

Since I’m a hardened OSGi guy, I found developing applications for the BUG really easy. You interact with each of the modules and other applications via OSGi services. For example, the BUGmotion module exposes a com.buglabs.bug.module.motion.pub.IMotionSubject service which you can use to get information about motion events.

In terms of tooling, you’ll be right at home with the Eclipse-based Dragonfly SDK (if you’re an Eclipse person).

The SDK makes it pretty easy to launch, test, deploy and find applications. If you’re familiar with Eclipse and Java development, it should be really easy to get started. If you’re familiar with OSGi development in Eclipse, you’ll feel like you’re right at home. They also use some aspects of the Plug-in Development Environment (PDE) from Eclipse to make your life easier (although not as much as I’d like them too). On top of the tooling, the BUG also has an “app store” (called BUGNet) for all of its applications. It’s very easy to browse for applications and have the source downloaded into your SDK.

The ease of browsing and downloading BUG applications makes me jealous as an Eclipse user.

On the whole, I’m very pleased with the BUG. The BUG has changed the way I think about hardware and how it relates to modularity. Furthermore, any company who’s mission is to advance modularity by making it fun and allowing you to build cool devices get kudos from me.

On a side note, given the set of BUG modules, anyone have interesting ideas for an application to develop :)? My current thinking is something that involves the motion module, the camera module, my refrigerator, twitter and late night snacking.