Just got a brand new IOIO for Android (pronounced "yo-yo") from SparkFun electronics. It is an a Android Open Accessory compatible development board, which allows external USB hardware to interact with an Android-powered device in an accessory mode without any special licensing or fees, unlike Apple’s Made For iPod (MFi) program. Pretty cool stuff!
The accessory mode does not require the Android device to support USB Host mode, which most of them don’t really do at this time. The Android Open Accessory Development Kit (ADK) APIs support both Android powered devices that act as a conventional USB host, and non-host Android devices that communicate with USB hosts or Android USB Accessories. Devices that support accessory mode can be filtered using a <uses-feature> element in the application's Android manifest.
In accessory mode the Android phone or tablet acts as the USB Device and the accessory acts as the USB Host. This means that the accessory is the bus master and provides power, which also poses some challenges for those developing accessories (e.g. deal with battery, power management etc).
Back to the IOIO board, it supports wired or Bluetooth communication and enables virtually any Android 1.5+ device to control external circuits using different interfaces, from within Android's applications. Thanks to a 48 I/O pins – Digital Input/Output, PWM, Analog Input, I2C, SPI and UART control – you can hook up the IOIO with a variety of devices, such as sensors, motors, actuators etc.
Here are the pieces of hardware I used:
- An Android HTC Inspire 4G
- IOIO for Android board
- USB cable that is compatible with your Android device
- 5-15V power supply with at least 1A of current.
The steps:
- You need to power the IOIO board. I bought these suggested parts: PRT-08612 (JST Right Angle Connector), TOL-08734 (adapter Barrel Jack to 2-pin JS), and a power supply TOL-08269 from SparkFun. Then, I soldered the JST connector on the back of the board (see picture below).
- Install Eclipse (the Java developers version is sufficient) and ADT.
- Complete the Hello World Tutorial of Android. If you are familiar with Android development, you may want to skip this step.
- Run your first Hello IOIO application; this tutorial will get you up to speed. The app displays a toggle button on the screen, which allows turn on and off an LED on the board.
Now, you are ready to build the next big thing in the Android accessories’ world.
Here is a video showing a very cool implementation of an object follower robot using IOIO:
Resources:
- IOIO wiki
- IOIO discussion group
- Many more videos of IOIO action, hosted by MIT, can be found here