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.01 bootloader and the V5.00 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 them for product support and continued development.

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

IOIO-OTG Product Help and Resources

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

2 Soldering

Skill Level: Rookie - The number of pins increases, and you will have to determine polarity of components and some of the components might be a bit trickier or close together. You might need solder wick or flux.
See all skill levels

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

4 Programming

Skill Level: Experienced - You will require a firm understanding of programming, the programming toolchain, and may have to make decisions on programming software or language. You may need to decipher a proprietary or specialized communication protocol. A logic analyzer might be necessary.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

1 Electrical Prototyping

Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Hossrod / about 9 years ago / 1

    "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."

    Anyone know if this would work on a Windows Phone 10 (ok even if only work in dev mode)?

  • Member #341442 / about 9 years ago / 1

    This is a really cool board to develop with! Having the ability to connect to a micro-controller though an android OS phone is really cool for a noob. However, one word of caution, the micro-USB connection to the board is NOT structurally sound. I have broken three boards because of this issue. If one is to apply even the smallest amount of torque to the connector it is highly possible to rip the pads off the board. The first board I broke was just simply because I plugged/unplugged the USB wire meany times. The other times I broke them was because I tried snaking the red wire in a tight place for different projects. (the second time I did this was because I was stupid tired and wasn't paying attention) This is something Sparkfun should look into as a design improvement but until then take great care to protect the connector!

    • hey.. .I had the same issue .. and for the next card I just applied a lot of solder on the sides of the connector (where the outer shell of the connector is actually soldered to the board) it made it a lot stronger.. no more issues with the connector breaking and damaging the board.. I hope this helps.

Customer Reviews

4.3 out of 5

Based on 3 ratings:

Currently viewing all customer reviews.

2 of 2 found this helpful:

Great board - wish it were a bit smaller and the USB connector stronger

We are working on a project where we have to drive a bunch of IO including Serial, SPI, PWM and standard digital In/Out pins from an Android app and this is perfect for that purpose.

Wish the API were a little nicer and not so heavily tied to the User interface. Please consider revising the API to make it UI independent.

Also we broke off the USB connector in two of the 5 boards we bought. We don't have the capability of soldering these back because of the really small connection points - really wish this was a little stronger, or the OTG cable a bit more flexible so it doesn't put so much pressure on the USB connector.

Otherwise a great product.

1 of 1 found this helpful:

Great bridge to physical world for Android

I am using it with a bluetooth dongle and it works perfectly from a variety of Android devices -- from version 3 to version 5. The bluetooth dongle is Kinivo BTD-300. No issues.

1 of 1 found this helpful:


Once I updated firmware using dude, it worked as advertised, using my Samsung Note 4.

(I had to COPY not download the windows driver for the connection to my computer. Found that tip online after having connection probs.)

Maybe Sparkfun will start doing upgrade as part of their manufacturing process??