I’ve just received one of these wonderful little I/O boards for Android. The IOIO connects to an Android phone or tablet via USB allowing it to act on external inputs and control external devices, no modification of the Android device is required and no firmware programming is necessary, just ordinary Android application authoring with a very simple API for controlling the pins on the board. Optionally it can also provide power to charge the phone or even run some external devices such as small servos.
By allowing you to use all the computing power and connectivity of an Android device along with its built in sensors and devices such as the display, camera, GPS, Bluetooth, WiFi, gyroscope, accelerometer etc. for interfacing with external peripherals the IOIO opens up a whole world of possibilities. I don’t have any specific use in mind for mine at the moment, I’ll just be experimenting for now but there is obviously huge potential there.
IOIO Main Features:
- 48 I/O pins – all of which can function as digital inputs and outputs
- Up to 16 analogue 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
- 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)
The Android Open Accessory Development Kit (ADK) recently announced at Google I/O has some similarities but for the hobbyist the IOIO has some major benefits compared to the ADK as it currently stands. The IOIO is a lot cheaper for starters (50USD v 400USD) and is easier to use since you only will need to write code for your app, no embedded programming in C++ is needed and whereas the ADK requires Android 2.3.4 or higher the IOIO will work on 1.5 or above so recycling old handsets for use in a project is possible. It is hoped that the ADK protocol can be added to the IOIO in future.