Introduction: Control an RGB LED Matrix With Android and IOIO

About: Al is a wearable tech entrepreneur and creator of a line of smart phone controlled LED handbags With 22 years of experience in the IT industry, Al is currently Senior Director of Inform…

**** Product version of this project available at *****

An Android controlled interactive mirror. Running various Android apps, the interactive mirror displays pictures, running text, simple games, and video streamed from an Android device over Bluetooth.


RGB 16 x 32 Matrix from Adafruit - $80
PIXEL Maker's Kit (includes bluetooth dongle and microSD card)
Black Fabric (an old Black T-shirt will do)
Black Foam Core Board
5V 2A Power Supply
2-Way Mirror - $20 for 12" x 12" size
Picture Frame (Antiques shops are good places to find unique looking ones)
Duct tape
Android Phone - 2.3.3 or above if using Bluetooth

Step 1: Installing the IOIO Board Application Firmware

For those not familiar with IOIO, IOIO (pronounced "yo-yo") is an open source microcontroller. Think of it as like Arduino but very well integrated for Android. Unlike Arduino based methods of interfacing with Android, IOIO differs in that the firmware is taken care of for you.  You have full control of the analog and digital pins from within your Android application code using the supplied IOIO Java-based libraries; no additional Arduino sketches are required!  This significantly simplifies the process, allowing you to focus solely on your Android application code.  In addition to basic digital input/output and analog input, the IOIO library also handles PWM, I2C, SPI, and UART control. The firmware is easily upgradeable using the IOIO Manager app from your Android phone.

For this project, you'll need to install a custom IOIO application firmware that supports the 16 x 32 RBG LED matrix from Adafruit which can be downloaded from here (scroll down the page to the RGB LED Matrix section). One cool feature of IOIO is you can install the difference firmwares using your Android device with a USB connection to the IOIO BoardIf you're a developer modifying the source code, you'll also need a special version of the IOIO libraries here. To do this, first install the IOIO Manager app to your Android device and then follow these instructions to import the RGB Matrix application firmware into IOIO manager and then download to the IOIO board over USB. Special thanks to Ytai Ben-Tsvi, the creator of IOIO, who wrote this custom firmware for this project.

There are currently two flavors of the IOIO board. The base IOIO board from Sparkfun and a version from Seeedstudio and Adafruit that includes some additional features like an on-board LiPO charger, LiPO battery, header pins, Bluetooth dongle, mini USB board power/charging port, and mint tin case.

Step 2: Wiring Schematic

Wire everything up per this schematic.

If this is a permanent installation, you can cut off the other end of the included LED matrix cable (this cable ships along with the 16x32 LED matrix from Adafruit) and solder directly to the pins on the IOIO.

Before mounting in the picture frame, check that everything is wired correctly before continuing. Supply 5V power to the IOIO board and 5V power to the LED matrix. Also plug in the Bluetooth dongle to the IOIO board. Bluetooth pair the IOIO to your Android phone, the pairing code is: 4545. Then install one of the apps in step 5 on your Android Phone and run it. If all is well, then you’ll see the LED Matrix light up per the app.

Step 3: Mounting in the Picture Frame

Cut the Black Foam Core board to the size of your picture frame and then cut a center rectangle in the middle of the foam core board to fit the LED matrix. Mount the LED matrix in Black Foam Core board. You can secure the back of it with duct tape.

Now cover the front of the matrix and foam core board with the black t-shirt. This is needed for the effect of the 2-way mirror. If there is any white exposed, the mirror effect will be ruined.

Secure the t-shirt using duct tape or some other adhesive.

Use a glass cutter to cut the two-way mirror to the size of the picture frame.

Step 4: Final Installation

Now just mount LED matrix into the picture frame. It should be a tight fit so it won’t move around much but you may also want to secure it with duct tape or some other frame mount.

Assuming you have covered the LED matrix correctly with the black t-shirt and there is no white showing, it will look like a mirror when turned off.

If the LED matrix is not covered in black fabric or something else that is equivalent black, the mirror effect will be lost and the LED matrix will show through the two-way mirror.

Step 5: Android Apps and Source Code

I wrote four Android apps for the IOIO LED matrix which can be downloaded from Google Play (formerly known as the Android Market). You can see the apps in action in the video at the beginning of this Instructable. Ensure before running the apps, you Bluetooth pair your phone to the IOIO using pairing code: 4545. If you’ve got an Android phone 2.3.3 and above, this pairing step need only be done once.

Soure code for the apps is here

IOIO Pics to LED Matrix – Choose a pre-set image and display it on the LED matrix
IOIO 8-Ball – Magic 8-Ball fortune teller. Displays the answers to your questions on the LED matrix.
IOIO Verbage to LED Matrix – Displays random words on the LED matrix
IOIO Camera to LED Matrix – Streams a small portion of the camera frame to the LED matrix. This one is not really that useful as the portion of the camera video displayed is very small and is really more of a proof of concept that the IOIO LED matrix can also do video.
LED Contest with Elemental LED

First Prize in the
LED Contest with Elemental LED

Hurricane Lasers Contest

Participated in the
Hurricane Lasers Contest