Handbag: the Android Arduino Accessorizer

The latest release and more information is now available at the Handbag App for Android project log on Labradoc.com.

Make Arduino accessories for Android without writing Android code!

Do you want to make Arduino-based accessories for your Android phone or tablet like the Android Open Accessory Development Kit?

Don't know how to write Java code for Android?

Don't want to install Eclipse and the Android SDK?

Just can't be bothered with more yak shaving?

Use the Handbag™ for Android app and those Android coding days are gone...

If you can write a sketch for your Arduino, you can accessorize your Android with Handbag!

  1. Install: the Handbag for Android app
  2. Upload: the Handbag Arduino example sketch
  3. Connect: A USB Host Shield to your Arduino Uno or similar.
  4. Connect: Power (e.g. wall wart or 9V battery) to Arduino power jack.
  5. Connect: LEDs to digital pin 4 and analog pin 5.
  6. Open: The Handbag app on your Android phone or tablet.
  7. Connect: Your USB Host Shield to your Android device.
  8. (The first time you connect it you'll be asked to always open Handbag for this device, select to make it the default. Then unplug & re-plug the power on the Arduino. There's a small timing bug that means it currently needs to be the default.)
  9. Press: Buttons!
  10. Watch: Lights!
  11. Edit: The App UI by modifying the Arduino sketch!

17 May 2011


Initial pre-alpha release.

Handbag makes it possible to create Arduino-based accessories for Android devices without creating an Android app. You both define the Android application user interface and implement the behaviour in your Arduino sketch.

Here's an example of how you would (currently) create an interface with a label, some space and a single button:

configureWidget(UI_WIDGET_LABEL, ID_NONE, "Example Handbag Android Accessory");
configureWidget(UI_WIDGET_LABEL, ID_NONE, "");        
configureWidget(UI_WIDGET_BUTTON, ID_B1, "Toggle Digital Pin 4");
Take a look at the sketch linked above to see how the behaviour is implemented.

This is a pre-alpha proof of concept—my intention is to greatly simplify the Arduino side of things so you can do something like:

void someCallbackFunction() {
  digitalWrite(A5, HIGH);

app.addLabel("A label.");
app.addButton("Press me!", someCallbackFunction);
But, for now, sleep could be a good idea. :)

BTW, the lovely handbag vector image is from TheresaKnott on OpenClipArt.org.