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.
I think my soldering iron just started to salivate.
Is the PIday logo staying up?
Evidently not...
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
Wow! That is awesome!
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
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).
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.
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...
Yeah, absolutely. About RN41s, careful where you put it in the car: they occasionally overheat.
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?
Any help will be very much appreciated! Thank you in advance!
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.
Yea, sorry about that, those went quick. We should have more stock very soon.
I didn't realize they all sold out in one day. Wow! Thanks for the update.
It seems it is a good sign if you can sell out of stock in one day caused by good advertising. Nice work! Now expand to keep up :)