Creative Commons images are CC BY-NC-SA 3.0


added to your
shopping cart

In stock 44 in stock
39.95 1+ units
35.96 10+ units
31.96 100+ units

Description: Are you a Java developer looking to add advanced hardware I/O capabilities to your Android or PC application? Well then the IOIO-OTG is for you! The IOIO-OTG (pronounced “yo-yo-O-T-G”) is a development board specially designed to do just that. It features a PIC microcontroller which acts like a bridge that connects an app on your PC or Android device to low-level peripherals like GPIO, PWM, ADC, I2C, SPI, and UART. An app-level library helps you write control code for these low level peripherals in the same way you'd write any other Java app!

What separates the IOIO-OTG from previous IOIO boards is the ability to leverage the USB On-The-Go specification to connect as a host or an accessory. There are several ways to connect the IOIO to your Java app. If the app is running on your Android device, the IOIO-OTG will act as a USB host and supply charging current to your device (meaning the IOIO-OTG will need its own power source). If your app is running on a Windows, Linux or OSX machine, the IOIO-OTG will assume device mode and present itself as a virtual serial port. When in device mode, the IOIO-OTG can be powered by the host! Connecting a USB Bluetooth dongle will cause the IOIO-OTG to show up as a Bluetooth serial connection so you can go wireless!

A switch on the board can be used to force the IOIO-OTG into host mode, but most of the time the board can be left in 'auto' mode and it will detect its role in the connection. We're now shipping the IOIO-OTG board loaded with the V4.00 bootloader and the V3.30 application firmware. New application firmware is frequently released, and can be upgraded without needing a programmer using the IOIODude application.

The board includes a JST connector for attaching a LiPo battery and there are several pin headers broken out for voltage and ground access. A trimpot on the board allows you to adjust the charge current used when the IOIO-OTG is acting as a host. A USB-A to micro-A OTG cable is included which will let you connect your android device to the micro-USB port on the board using the cable that came with your android device.

Note: This product is a collaboration with Ytai Ben-Tsvi. A portion of each sales goes back to him for product support and continued development.


  • IOIO-OTG Development Board
  • USB Female-A to Micro-A Cable


Replaces: DEV-10748

Comments 43 comments

  • Any forecast to have it back in stock?

  • It says that on windows the IOIO shows up as a virtual serial port. What data rate does this serial port have?

  • Hi, I got a IOIO-OTG can not be found via Bluetooth dongle, moving the “force host” (H) position and turnning current-limiting potentiometer to fully clockwise can not make it work too. But the same dongle can work with the IOIO V1 to be connected by blue-tooth. Anyone encountered same problem?

  • Is there a known issue with the regulator failing on these boards? I’ve had two out of five fail after only a few weeks of operation. It appears the TPS62133RGTT step down DC-DC converter has failed on both. They are all powered by commercial switching power supplies from a very well known distributor. I have scoped them and they have clean 12 VDC power well below the 17 V limit.

    • I’ve now had three fail. I discovered that a 7805 linear regulator has the same pinout and can be soldered into the power pins near the USB port to get the board back in service. I don’t see a post from Sparkfun, however they have confirmed to me that there is an issue and the TPS62133RGTT regulators are blowing up due to a design flaw on this board.

  • Yes (person that’s above me).

  • Is it possible to program this to have a output screen? Like to view files that is shared over Bluetooth.

  • Hello folks! In my project I need to raise “1” at a digital out pin for a certain number of msecs (1000s of msecs) with a +-1ms accuracy. Please correct me if I’m wrong, but as far as I understand: 1) I can’t program IOIO itself to do this for me internally, and 2) by setting/clearing pins from an Android application I will not be even close to the desired accuracy (because of the Android’s and the USB interface’s latencies). Am i right?

    • I’m not 100% sure about your specific application, but in theory you can do it for up to 500ms. Open a PWM output with a 1Hz frequency and set the pulse width to 500ms. Within 500ms you have enough time to disable the PWM so you reach the precision you need.

  • Your datasheet for the PIC24FJ256 is only an Errata sheet, not a true datasheet. Please update this.

  • Is it possible to run the IOIO as a USB device when connected to an Android device running as the USB host? I’d like to be able to connect the IOIO to the Android device through a hub, so that I can connect multiple USB devices to the Android. I don’t think this is supported, but I’d like to double check. Thanks!

  • Can I get an IOIO without the JST power connector?

  • Please don’t stop making the IOIO board with the bigger USB connector. Not a lot of USB BlueTooth dongle that work with this USB connector.

  • The IOIO OTG Board could support Android V2.3.3 SONY X10i phone?

  • Can someone please change the description above to state the board has a JST-PH connector. Not a JST connector. Now send me an adapter while your at it.

    • Yes I completely agree - would it be too hard to add this “not so common” connector to the “so common” usb otg cable that comes with package? I got package after 1month, and now I am still looking for that power connector - please give us precise description (product code) what power connector we need!

  • I remember previous IOIO had a compatible phones list. Does it apply to this version as well?

    • In addition to what Toni said, if your phone is not on the list, it doesn’t mean the board won’t work. Any Android with either a USB device or host connector should work.

    • Check the Wiki. There is list of tested phones on there, along with which IOIO bootloader and IOIO firmware versions they have been tested with.

  • After one hour continuous operation, is the 5-15V input damaged. The IOIO works now only with 5V supply at the 5V output pin. I’ve used it with a 12V power supply…

  • Okay, I see that this version has a micro USB connection - fine. How the heck am I supposed to easily connect this to my cell phone? Which also has a micro USB connection? (For the previous versions of IOIO this was obvious .- clearly there is a reason for the change) Sure, one could additionally use a male USB to micro USB cable - but this is starting to get bulky / ungainly. Can one get a short micro to micro cable?

    And what’s best practice for developing? With the cable from the Android to the PC - do you have to remove the cable to the PC and plug it into the IOIO to run? That way of course you can’t debug using eclipse - crazy. (For example, if you plugged in a bluetooth adapter on the IOIO perhaps you could remain plugged into the PC and keep debugging?)

    • For development or prototyping, I use a rooted device so if that is your case, then on the Android just install adbWireless, available from the Android market.

      From within eclipse, install the AdbConnect plugin by choosing ‘Help->Install New Software…’ and select the site as update site.

      That is it. You not longer need a cable for debugging. Enjoy!

    • I use bluetooth. Use the usb cable for the eclipse-phone connection and bluetooh for the phone-ioio connection.

  • Has anyone managed to connect it to OSX 10.8? /dev/tty.usb simply doesn’t show up, and the IOIO wiki specifically say that no drivers are needed for mac.

    • Never mind, apparently whether or not the IOIO enters a device or host mode depends on the USB cable used. With the right cable it shows and functions as expected.

  • Will this charge its battery if the battery is connected to the JST PH jack? I want to put it inside the case of a 4-dollar sound player named the Funtronics Phone.

  • Got my IOIO-OTG working over USB with my Android tablet (HP Touchpad running CM9) and Processing for Android, thanks to this tutorial ( I can’t get it to connect over my Bluetooth dongle, however ( Is there something I’m missing, or is this dongle just not compatible?

    BTW, I am both powering and connecting to the Android device/Bluetooth dongle through a USB-OTG Y cable.

    • I too have gone through that tutorial only to find Bluetooth connections not working. Working out that kink led me to coding up a IOIO Processing library of my own (check out

      Before you go any further though, you should confirm your Bluetooth dongle works with your setup first. The App-IOIO330 download should have a HelloIOIO.apk you can load onto your phone to do just that. BLE may be a little ahead of IOIO support, but I’m hoping it works out. Let me know what happens.

  • I wanted something like this and finally i found it. This will help me in making a Drone. I am so much excited

  • So this thing HAS to run in host mode to work with an android device over USB, or can it function the same way if it is treated as a slave to the android device?

    • It all depends on what you are connecting the IOIO to. Some devices are USB hosts, some are devices. The OTG spec means the IOIO can act as either. Currently, most Android phones are devices, so yes, the IOIO must run as a host when connected to any device, but more and more androids are incorporating the OTG spec, so this could change.

      • Oh I’m sorry i should have been more specific. I was thinking devices that don’t have a dedicated host USB port. Although in my situation, having the IOIO as the host device is necessary. I want to use it in an automotive application where a tablet replaces my head unit. Therefore i need it to be able to charge AND interface with the board at the same time, which for the tablet i have, charging and OTG cannot work at the same time. I was just curious if it could work either way. Thanks for clarifying.

  • Wonderful, I just received 10748 today :( When was this new version made available?

    • I think today. I just received two on Wednesday. I’ve been blowing them up fairly often recently. There’s not much protection on the power input on the older model.

  • Schematic link does not work (at least for me)

  • So I can not connect it to a phone and power it by the phone? :/

    • I’m afraid the protocol that the IOIO uses to communicate with the phone treats the IOIO as a host so the phone can’t provide power out. Sorry about that!

Related Products