Controlling An LED Matrix With An Android Phone

Even though everyone with a smart phone has a small, powerful computer in their pocket, we haven’t seen many applications of this portable processing power that use the built-in camera. [Michael] decided to change this and built an LED matrix that displays the data coming from the phone’s camera.

For the build, [Michael] used two 32×32 LED panels from Adafruit along with an IOIO and an Arduino. To build the Android app, [Michael] used the Android OpenCV computer vision library that grabs an image from the Android camera and downsamples it to 64×32 pixels. This data is transferred over a serial connection from the phone to the IOIO and again from the IOIO to the Arduino. Even though each frame is 1024 bytes, [Michael] still gets around four frames per second on his LED matrix display.

After the break you can check out the results of [Michael]’s build. The video is a little choppy because of the frame rate issue, but it’s still an interesting build in the Android software development category.

[youtube=http://www.youtube.com/watch?v=yhA4Jne7o14&w=470]

[youtube=http://www.youtube.com/watch?v=zn6Ky3Qc5w4&w=470]

13 thoughts on “Controlling An LED Matrix With An Android Phone

  1. Cool. This would be a lot of fun to play with. I need to start playing with Android development.

    These overkill comments are just pathetic. Why should someone write from scratch what a library can take care of? Everything about computing is overkill. Does my monitor need to display millions of colors to allow me to read your nonconstructive comment?

    1. this project is epic, and nikescar’s comment sums it up. HAD Staff: Get disqus or something equiv already, so useless comments can be downvoted. Looking forward to a day when junior-high-school-peanut-gallery-zealot comments are history. Peace, love and hacks!

  2. nootropic – this is pretty cool. I remember watching the Adafruit show when she unveiled the panel at her shop, and all the viewer comments were about using it for video, getting VGA inputs, etc.

    People want LED-based displays accessible by mere mortals. IOIO and Arduino and Android gets it a step closer.

    2 questions:
    1) Why can’t the IOIO drive the LED panel directly? The Arduino seems to be the weak link here.

    2) This seems bandwidth limited. Perhaps ditching the Arduino would help here, but another angle: Have you considered simple compression, like RLE?

    1. > 1) Why can’t the IOIO drive the LED panel directly? The Arduino seems to be the weak link here.

      Because the efficient inline assembly routines for driving the display are written for the Arduino. I didn’t want to rewrite something I didn’t need to.

      > 2) This seems bandwidth limited. Perhaps ditching the Arduino would help here, but another angle: Have you considered simple compression, like RLE?

      I don’t think the Arduino is the weak link. I think the ADB connection from the phone to the IOIO is the slow link. I didn’t try any compression.

  3. I love it; I got my frame to display a few photos, but I was wondering what kind of video projects people would make with it. My comment on Engadget got silently deleted. I guess because I said they were unnecessarily condescending and only interested in what products they can consume. Woopsies.

  4. Nice. We currently work on a project to stream a video via internet to a big RGB-LED matrix wall. Therefore, we tested some options whereas – as side “product” – a webservice to control the color of the light in our office has been developed.

    It’s just a funny side effect, but anyway – it can be visited under: http://lamp.ventoo.ch/

    Unfortunately, the blog post about the development is written in german – but anyway, for some it might be interesting: http://www.ventoo.ch/arduino-fun/

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.