Androids Love IOIOs!


We've had high expectations for the IOIO since its inception in April 2011. The ability to easily connect external hardware to your Android device has its allure already, but advances in the IOIO firmware/software (like Bluetooth capability), as well as exceptionally documented projects have created enough public information that will enable anyone (not just Java developers) to start their very own IOIO-Android project. 

Here is a quick IOIO refresher in case this is all new: The IOIO is a piece of hardware, as shown above. In order to have your Android control the IOIO, you will need to write a program in Java using the IOIO libraries. The IOIO libraries allow you to write simple Java code to control any of the pins on the IOIO board, as you would a normal microcontroller. The IOIO code sits along with the Android app code that controls functions on your Android device (i.e. touchscreen, GPS, etc.). The IOIO board and its supporting IOIO libraries combine very low level embedded hardware development with very high level Android app development in one environment. If you want to jump right into it, here is the IOIO Beginners Guide

Want to know more? We will be offering a IOIO workshop/class on June 30th and another on July 1st. We will have Ytai Ben-Tsvi (inventor of the IOIO) leading each class. The class will be based on the MIT hack-a-thon Ytai taught in February. Limit is 20 per class. Don't miss this!

Example projects are vital to quickly learning this stuff and we can't get enough of them. Here are some great, well documented resources on IOIO projects:

For all you paper lovers out there we have a book of IOIO projects! For all you paper haters, the book also has its own website with videos, source code, etc.! This book is well documented with pictures, code examples, and clear wiring diagrams. All of the projects use SparkFun parts, so if you want to follow along with the projects in the book, a shopping list can be found here

 

Michael Mitchell, a PhD Computer Science student at FSU, has compiled some beautifully documented IOIO examples on his website MitchTech. There are projects ranging from garage door control to a laser turret. Nice work!

The Droidalyzer is a great example of a Bluetooth enabled IOIO project. An alcohol sensor takes your BAC reading, then transmits the information to your Android. If you've had one too many, the app will even call a cab for you! The Droidalyzer is very well documented with an Instructable and an official Android app

This is another project that stood out. An RC car is controlled by a IOIO board, plugged to an Android phone that receives motor commands from a base station computer over Wi-Fi or 3G (Wi-Fi in this video). The phone also sends the video and the values from the acceleration and orientation sensors back to the computer. The communication protocol between the phone and the computer is UDP. There is a great blog post with source code for this project found here. Check out the base station display at 3:33 in the clip. Me want.

Another well documented project with source code. This project can send MIDI signals to any MIDI hardware. Check out the blog post here.

Many more videos of IOIO action, hosted by MIT, can be found here.

A couple more things; be sure to bookmark the official IOIO wiki. This place is where you will find all of the most up-to-date information and source code relating to the IOIO. Also, the IOIO discussion group is where you will get any technical question answered. Here is the product page where you can purchase the IOIO

I hope this blog post can serve as a reference point for example IOIO projects. If anyone has any IOIO project to share, please post in the comments!

P.S. More to come, so please stay tuned. 

EDIT 6/15/12: More projects on youtube, check out Open Gadgets Channel.


Comments 33 comments

  • I think my soldering iron just started to salivate.

  • Is the PIday logo staying up?

  • For my latest IOIO project, I displayed video captured from the Android phone on a large RGB LED matrix panel:

    Android Video on an RGB LED Matrix

  • Someone needs to hook the mbed Slingshot into this (or create a ioio-slingshot)…

  • Cute, but the Propbridge does all this for $10 and you still have half a microcontroller to play with… It came out a month before the IOIO, too.

    http://www.youtube.com/watch?v=QcR0ZG_7YC8 http://forums.parallax.com/showthread.php?130380-Android-Debug-Bridge-on-a-prop&highlight=spiritplumber

    • does all of this

      But how easily?

      There are a few other alternatives to the IOIO that have benefits of their own, but from what I have seen, the IOIO hardware/software combo is the most finished and easiest to use. The software is also extremely well supported and very robust allowing for advanced projects along with very simple ones. Obviously I might be biased towards the IOIO, but honestly I haven’t seen anything as finished.

      • The prop gets a shell on the phone and can run things even with the phone in standby - I think the IOIO can do this hardware wise, but isn’t set up to do that in software. This has obvious value for datalogging applications due to extended battery life.

        The Propeller IDE is about as easy to use as the Arduino IDE, it’s just less well known (and admittedly Parallax doesn’t support non-windows systems, which is a bit of a drag)

        Overall I’d say the IOIO is easier to use but the Propbridge has more features (of course I’m biased).

        • the Propbridge has more features

          I am not really that familiar with the propbridge, but the IOIO supports both ADB (same as the propbridge) and soon will support Open Accessory as well.

          Also, does Propeller allow you to program androids from the IDE? The IOIO libs allow all of this to happen in one environment, which is insanely easier to debug with.

          • If you want one to play with I have some leftovers from a nasa order, you can have one free if you don’t mind a bit of wear and tear on it.

            Programming is done either by its console serial port or by sending it string from Log.e(“PB_IN”,string); in any android app. Or you can load your own firmware. The idea was to have as little hardcoded stuff as possible (this started as “let’s write a USB bluetooth dongle driver for the Propeller” project, so the USB port is actually device-agnostic, as long as there is only one device per port)

            • Sounds really cool and different! We are looking into more propeller stuff, so this could be an option in the future.

              • The propbridge was designed as a datalogger and as a controller for autonomous rovers, so it has to have a watchdog, the ability to reboot or shut down the phone if it hangs, the ability to restart Dalvik if that hangs, etc. It’s geared more towards industrial and scientific use. That said it’s pretty cheap, the small one goes for $30-$50 depending on quantities (it has a DIP40 form factor). I don’t want to link to my site here because right now I’m technically a competitor as well as a customer and I feel that would be gauche, but email me ( spiritplumber at gmail ) and we can talk about it :)

                http://www.youtube.com/watch?v=w-FcIuaJRr0&list=UUwfCldqmzcFZkjjnZi_IHAw&index=2&feature=plcp

                The original idea was of course to recycle older Android phones, which is why I don’t think I’m going to make this open-accessory compatible for a while.

      • Unless I missed something, the Propbridge doesn’t have built in bluetooth though, which would be a selling point of the IOIO for me. Being able to wirelessly integrate a project to phone is slick…
      • The propbridge can support 2 usb ports, so one for the fone and one for a cheapie bluetooth dongle. Both propbridge and IOIO can talk to serial-to-bluetooth devices such as the RN42.

        That said most Android phones have bluetooth natively…

        • The IOIO supports USB bluetooth dongles that cost about $4. The integration is seamless so that you don’t have to deal with the bluetooth stack, at all.

          If this can be done easier that the IOIO I would be very surprised, I have yet to see anything as easy. Just sayin…

          • that’s actually really neat, how many usb device can you have at a time? The propbridge tops out at two (usually an android phone and one other thing).

        • Agreed… I’ve done an RN-42 to homebrew arduino before to get a project talking to an Android device, and I guess I’d just rather spend the extra $20 or so to have a slim and trim one board solution rather than spend the time wiring up an RN-42 and arduino (or Propbridge), and more time futzing with the config/code. Both valid options, although by the time you buy and config bluetooth to something else the elegance and simplicity of using this would be hard to beat I’d think.

          • I like those things, they Just Work. However if I’m making an android based rover I’d rather have the phone talk to the chassis through a wire, be it USB or serial-through-audio-jack or what have you. This simply because it’s one less thing that can break/disconnect, and because I have to power the phone from the main battery anyway…

              • Gotchya… I was going for remote starting my car via my phone (actually RN-41 was used for increased range), so a physical connection kind of defeated the purpose. :-) I definitely hear you on the ‘one less thing to go wrong’ though, it all depends on what you’re looking to do…
  • when using the IOIO: does the device need to be rooted?

    • Nope

    • No but (if it’s anything like mine) you have to have debugging mode on for it to work.

      Mine can also reset (reboot) an unrooted phone if it needs to; I’d love to know if the IOIO can actually (I got the “thick” Google board that works with ADK, and it couldn’t).

  • Awesome.. I love my ioio still working on what do actually do with it but futzing around on my workbench with it is awesome! Wish I were in CO, I’d love to come to the class :(

    ps love the Pi in the logo

  • Nice

    Nice One

  • Can this IOIO board use the Wi-Fi USB dongle please? Also how about Modbus TCP, RTU, ASCII. Any libraries?

  • Hi, Can somebody please help!

    I am looking to run several LEDs in a preprogrammed pattern using the IOIO on my Android phone. I got this LED sequencer board -> http://www.specialeffectsmagic.com/product/led-sequencer My question is, is it possible to use the IOIO to sort of “push” the buttons on the sequencer board so that I can control the sequences & speed using my phone?

    1. Is that possible?
    2. What additional hardware would I need?
    3. How should I wire it?
    4. Is there an app out there that I can use to program the IOIO to sort of “push” the button at specific time in form of a timeline? (eg. “push” once, wait 5secs, “push” again etc.)

    Any help will be very much appreciated! Thank you in advance!

    • Is that possible?

      Possible, yes; practical, maybe.

      What additional hardware would I need?

      You might not need anything other than wire, depending on how the sequencer board reads the buttons.

      How should I wire it?

      The IOIO can imitate the button press. The button is either connecting to VCC or GND when hit (check out some schematics on our website that use buttons). You will need to get a multimeter out and see, check each button pin and figure out how the button works. Also, note the voltage on the given button pin. If it is 3.3V or 5V the IOIO could work.

      Is there an app

      The point of the IOIO is that you create the app that communicates with the IOIO board. There could be a similar project somewhere out there that you could imitate.

      Hope this helps!

  • These are on the front page, but they’re out of stock! I just got a young man interested in electronics, wanting to use one of his old Android phones with this. You guys need to fill the stock back up if you’re going to put it on the front page.


This Week

Heartbleed

This Month

Happy Arduino Day!

SXSW Create 2014