Control an RGB LED Matrix With Android and IOIO

40,831

153

24

Posted

Introduction: Control an RGB LED Matrix With Android and IOIO

LED Contest with Elemental LED

First Prize in the
LED Contest with Elemental LED

**** Product version of this project available at http://ledpixelart.com *****

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.

Materials:

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

App
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.

Share

Recommendations

  • Epilog Challenge 9

    Epilog Challenge 9
  • Sew Warm Contest 2018

    Sew Warm Contest 2018
  • Paper Contest 2018

    Paper Contest 2018
user

We have a be nice policy.
Please be positive and constructive.

Tips

Questions

24 Comments

user

Hi,

You did an amazing job! Have you tried doing this project with 2 or more RGB LED Matrix Displays? Which parts would need to be changed? Would the Android app need to be adjusted? Thanks much. Have a nice day.

hey thanks, we did this also with a 32x32 matrix here http://ledpixelart.com . But to answer your question, the firmware and Android app would need to be modified in order to support cascaded displays. It's all open source so could be done.

Here are the images.

P1010427.JPGP1010428.JPG

here's how to upgrade the firmware http://ledpixelart.com/for-developers-2/ , there is also a new version out which you can get from the link, scroll down to the bottom of the page, you'll also see a youtube on how to do the firmware upgrade. I don't recognize the LED matrix, where did you get it? With that firmware, you can also use the latest apps http://ledpixelart.com/support/get-the-apps/ . In the Android apps for Pixel, go to the settings section and try both 32x32 LED matrixes as the software supports two different kinds, hopefully yours is compatible with one of them.

Hi again,

I'm having difficulty in displaying the images in the RGB 32*32 Matrix. I already downloaded the IOIO Manager into my HTC cellphone. I tried the HelloIOIO app and the on/off button works perfectly in IOIO board.

I also downloaded the APP-MIRR0003 firmware into my cellphone, but I don't know how to download it to the IOIO board. Is there something I'm omitting?

I attach you an image of my Matrix, IOIO board and cellphone.

Thanks.

Hi,

I have an IOIO OTG Board, I know it is compatible with both USB and Bluetooth dongle. My question is whether the apps you created can be run with USB?

Thanks,

Juan

Hey Juan, it works fine now USB from Android using the IOIO v1 board. I'm assuming your question though is USB from the PC which as you know only the IOIO OTG board supports this connection. Haven't had a chance to test that. It should work in theory but would need to test it all out to be sure.

Dear akinke,

In the picture I see you connect the 13 pins cable from the matrix to ioio board <
You use pins 22 23 and 24 9red on 23)
Except power , there not anymore cable to fix to ioio board? I mean you just connect these 3 of 13 cables?
tks in advance
regards
Pierre

I have taken a look at the instructable and it is the type of strip I'm looking to control but I'm looking to be able to play animations and display images on those strips arranged in a matrix similar to this video http://www.youtube.com/watch?v=rirEppdEpks
Most of the videos and research I've gone over have the strips controlled with either arduino boards or dmx controllers with complex programming software etc. Would you happen to know if the pins (3 and 4) he plugged the led strips in directly send the bluetooth info to the strips

in this case too, you'd need to do some complex programming assuming you could find a way to control multiple strips. If you want to just load in existing animations / art, that's what this project does http://ledpixelart.com, but it's very specific to a particular 32x32 LED matrix used by the project, converting it to LED strips probably doable but would require some low level firmware tweaking. It's all open source so it's possible but I don't think an easy job.