By

Android Experiment - EL Control using IOIO and Arduino

Once again, I found myself not going to Google IO, having lost my Ion status years ago. However, Google announced the Android Experiments contest, which got work to let me work on a cool Android hack so that I could try and get into Google IO. Unfortunately, since it's work, that means I have a time budget, so I decided to work on this thing with the following caveats:

  1. Parts must be readily available! (Sorry Google IO Limited Edition Arduino Board)
  2. Application must be using Vanilla Android and the Compatibility Library
  3. Application most only be possible using Android (Sorry Bluetooth)
  4. Total development time must be only 8 hours
  5. Must be well documented

With that in mind, I started working on the EL Control. I've been working with EL Wire for years. I built an EL Wire Hoodie to wear when I decided to go to Burning Man the first time. Needless to say, the playa wasn't very kind to it, but it bothered me that there was no way that I could change the pattern, so I've been working on using Arduino-based sequencers for a while and had one inside a backpack that I was going to wire up for another trip to various parties.

For this build, I am using the following parts:

The reason I decided to use the SeeedStudio EL shield instead of the SparkFun EL Escudo Dos is because I wanted to have some digital IO pins left over to do Software Serial to the IOIO Board. The reason that we're using SoftwareSerial instead of Hardware Serial is because Hardware Serial is nearly impossible to debug. The cool thing about EL is that there's EL Tape, EL Wire and EL Panels that allow you to do a lot more quickly than with LEDs. For time, I recommend using the panels because they already have their JST connectors attached and plug into the board easily, and won't coil up and clutter your desk or workspace when you're working on them

The important thing to note is how to connect the IOIO to the Arduino. The IOIO only has certain pins that are able to be used as Serial UARTs, which is how we're connecting to the Arduino, for simplicty, I hooked up my Green Cable from pin 10 on the Arduino (RX) to pin 45 of the IOIO(TX) and Blue cable from pin 11(TX) to pin 46 of the IOIO(RX). The Ground and Vin pins are connected to Ground and 5V on the Arduino, since we need to be powered by the same power source as the Arduino to communicate with it. This is difficult to do with the ELWire Shield's Acrylic panel, since it blocks the numbers on the board.

Once this is all hooked up, load the sketch that is found at https://github.com/infil00p/ELControl/tree/master/arduino/ELShield and load it on the Arduino. Once this is done, you can hook up the EL Wire and the EL Panels to the shield. Once this is done, and you install this app here, you should be able to get this working.

Going Further

This method can be applied to any Arduino project that has two pins available for SoftwareSerial. It may seem strange to turn a robust board like an IOIO into a Serial Port for Arduino, but it is probably the fastest method to get a hardware hobby project complete. While it's possible to connect various boards to the IOIO directly, this could actually add complexity to the code and it's easy to reuse existing Arudino sketches instead of trying to implement things like PWM.

Another thing that can be done is adding Bluetooth to this project using a similar method as the above, however it is more complex, and part of the goals of this project was to allow people to be able to re-create this project and implement it as quickly as possible. If I do manage to win the contest, and I do end up going to Google IO, I will be definitely be adding more features to this demo, but this is just a first proof-of-concept.