IOIO (pronounced "yo-yo") is a bridge between Android devices and external hardware such as sensors and servos. IOIO enables you to add the computational power, touch display, connectivity, and built-in sensors (camera, GPS, accelerometer) of Android to your projects. IOIO can connect to any standard Android device (as early as Android 1.5) over both USB and Bluetooth. Here's a few IOIO projects which will give you an idea of what you can do with IOIO.
Note: that IOIOMint is based on the IOIO V1 board and does not include the OTG features of the IOIO OTG board.
Unlike Arduino based methods of interfacing with Android, IOIO differs in that the firmware is taken care of for you. You have full control of the IOIO pins from within your Android application code using the supplied IOIO Java-based libraries; no additional Arduino sketches are required! This significantly simplifies the process, allowing you to focus solely on your Android application code. In addition to basic digital input/output and analog input, the IOIO library also handles PWM, I2C, SPI, and UART control. The firmware is easily upgradeable using the IOIO Manager app from your Android phone.
IOIOMint is a special edition version of the IOIO board with the added features of an on-board LiPO charger, LiPO battery, header pins, included Bluetooth dongle, and micro USB board power/charging port, all mounted in a laser cut, mint tin package. IOIOMint is identical to the Droidalyzer hardware with the exception that IOIOMint does not include the alcohol sensor.
Chances are your Android device is compatible with IOIO but they cannot be absolutely certain as each Android device manufacturer can modify the Android build. The following devices have been verified to be compatible with IOIO. Nearly all devices will work with a MicroUSB cable, but not all will work with the Bluetooth connection, so please check it out!
IOIO has an active community of users who can be found on the IOIO users forum. IOIO is 100% open-source hardware and software, with permissive royalty-free license terms.
Plug and play connection support for USB (ADB), USB (Google OpenAccessory/ADK), and Bluetooth. No additional application code is required for USB or Bluetooth connectivity. The IOIO firmware and libraries take care of this plumbing for you.
- 46 total I/O pins * - featuring both open-drain, and internal pull up/down, some pins are 5V tolerant
- USB Bluetooth dongle, this particular dongle has been found to be the most compatible with Android devices. See verified devices with this dongle.
- On-board LiPO charger circuit. The LiPO is re-chargeable using any USB power source.
- Included 400 mAh LiPO battery (under the PCB)
- LED indicators for charging and full battery states
- On-board on/off switch
- Female header pins
- 16 analog inputs (10-bit)
- 9 PWM outputs
- 9 pulse inputs
- 4 UART channels
- 3 SPI channels
- 3 TWI (I²C-compatible) channels
- In addition to the headers, 19 of the IOIO pins are also exposed via solder pads for applications where sturdy/permanent connections are needed.
- On-board programmable LED (IOIO "status" LED)
- Maximum 800mA load output
- Solder pad for an optional alcohol sensor
* Note: IOIO has 48 pins. Two pins on IOIOMint are unavailable (pins 1 and 40). Also note Pin 41 is a dedicated special pin for reading the remaining battery life of the on-board LiPO battery which you can expose in your Android application. Outside of these three pins, IOIOMint is a fully compatible IOIO board.
Please refer to the IOIO Wiki for the full documentation of IOIO including pinouts, firmware, and libraries.
Getting Started with IOIO video tutorial (Running Time: 11 minutes)