The IOIO (pronounced “yo-yo”) is a board specially designed to work with your Android device (OS versions 1.5 and greater). The board provides extensive and robust connectivity to an Android device via a USB connection. The IOIO is fully controllable from within an Android application, using a simple and intuitive Java API – no embedded programming or external programmer will ever be needed, even for firmware upgrades!
So far, the devices proven to work are: G1, Nexus One, Nexus S, Motorola Droid X. If you get the IOIO working on your Android device, please let us know in the comments below, thanks!
The IOIO board contains a single MCU that acts as a USB host and interprets commands from an Android app. In addition, the IOIO can interact with peripheral devices in the same way as most MCUs. Digital Input/Output, PWM, Analog Input, I2C, SPI, and UART control can all be used with the IOIO. Code to control these interfaces is written in the same way as you write an Android app with the help of a simple to use app-level library. In other words, you can combine the awesome computing power, Internet/Bluetooth connectivity, touch screen, and a variety of sensors from your Android device with the ability to easily add peripheral devices to interact with the outside world.
The board needs to be powered through the VIN pin with a 5V-15V power supply. There is also an optional, unpopulated JST connector footprint on the bottom of the board that can be used, however single cell LiPos will NOT work with this connector, you need a 5-15V input. The IOIO can also provide 1.5A at 5V for charging your Android device or powering small servos, etc.. A potentiometer on the board allows limiting the amount of current the Android device pulls for detection and charging. It needs to be adjusted once for a specific hardware model or be set so that full charging current is supplied. Be sure to enable USB debugging on your Android device to allow communication with the IOIO. More information on how to do all of this can be found in the Beginners Guide.
In order to write code to interact with the IOIO, you will need to download and install a few pieces of software, one of which is the Android SDK. If you are new to developing apps with Android, please follow the instructions from developer.android.com to install your development environment. We also have a nice tutorial to walk you through your the setup and your first IOIO sketch.
Here are some additional resources to help you get started:
Beginner’s Guide (coming soon)
User’s Guide (coming soon)
Example Projects (coming soon)
Using the IOIO does not require any hardware or software modifications to your Android device, thus preserving the warranty as well as making the functionality available to non-hackers. If you would like to modify the firmware on the MCU, the code is open-sourced and can be found here.
Note: If you have trouble installing the Android SDK, please first try the troubleshooting resources found on Android.com. If you still have problems, try a simple Google search, chances are others have encountered the same hurdle and there is a very large online community of resources to help.