IOIO Board for Android Control I/O
The IOIO (yo-yo") is a board specially designed to work with your Android device (OS versions 1.5 and greater). The board provides robust connectivity to an Android device via a USB connection and 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!
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. Also, 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 are new to the IOIO or developing apps with Android, please use these resources to help get started:
For firmware upgrades, you can download the IOIO Manager app (see the QR code in the images to the right). See the IOIO Manager wiki for more information.
Also featured is a Programmer function, which lets you upgrade the bootloader of your IOIO using another IOIO as a programmer! See the IOIO Manager wiki for more information.
- Microcontroller PIC24FJ128DA106-I/PT (with USB OTG , USB Host Support)
- 48 total I/O pins - all of which can function as digital inputs and outputs.
- Up to 16 analog inputs (10-bit).
- Up to 9 PWM outputs.
- Up to 4 UART channels.
- Up to 3 SPI channels.
- Up to 3 TWI (I²C-compatible) channels.
- On-board switch-mode regulator providing up to 1.5A of 5V supply. Can charge the Android device as well as power a couple of small motors. (Power Supply via USB cable from PC or Device)
- Bootloader on the board pulls firmware off phone, enabling OTA firmware upgrades and application-specific firmware.
- Pulse-width measurement, capacitance sensing and more (will be pushed with first OTA firmware upgrade).
Update: The IOIO now has beta firmware available which supports Google's Open Accessory (ADK) protocol. The code base can be found here.
- Eagle Files
- Beginner's Guide
- IOIO Wiki Home
- Latest Firmware Downloads
- IOIO Discussion/Support Group
- IOIO Code Base