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.02 bootloader and the V5.06 application firmware. New application firmware is frequently released, and can be upgraded without needing a programmer using the IOIODude application. Additionally, this version of the IOIO-OTG has corrected the IC power failure issue due to the on-board switch voltage regulator failing as well as adding a missing decoupling cap on the AVIN pin. This new IOIO-OTG has fixed the problems that plagued the previous version making it a true vision of how the board is intended! You can find out more about these updates here.
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.
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.
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
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.
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
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.
Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Based on 5 ratings:
does a lot!
I use them to drive multi-card HF RFiD detection logic from Android tablets. I was expanding an array built a few years ago. Just dropped the new ones in. Same wire config, new power distribution, and all is good.
Also planning for use to drive servos from Android
0 of 1 found this helpful:
The OTG is as cute as the Dickens, the power LED glows, Bluetooth blinks real good and pairs ok with the 4545 pin - - but
Can't connect to OTG using USB or Bluetooth. Reviewed Troubleshooting Tips - no help. Also posted on Forum WRT Bluetooth - no response.
Installed Android SDK 30.0.2 on my Windows 7 PC and ADB.exe reports Error 0xC000007B (I did the "$Path" stuff.
Would dearly love to move ahead with OTG but can't until I establish comm. Please help.
What kind of battery connector does this module requires?
Hi Sparkfun,
I have a project in mind that I think this board may work for. I would like to connect a USB dongle that talks to a medical device to the board with the USB otg function, then connect a Bluetooth module (hm-11 or similar) to the board so it can send the data from the USB dongle over Bluetooth to an Android phone.
Do you think this is achievable with this board?
Thanks
Chris