[Projekt:Bunt]

While relaxing on a beach in spain back in 2006, an idea came into my mind. i wanted to build an LED display. fullcolor and large. no large resolution, just large in terms of dimension. in december 2006, i made actual plans for the project. from there on, i experimented, prototyped, programmed and soldered from time to time. having no deadline made it a real long time project. but then in 2009, i had my 10×10 pixel RGB LED matrix, a square meter of color and light.

matrix with its creator

i guess most of you are particularly interested in some facts about the hardware and software. first the hardware. i used 100 Superflux RGB LEDs with an angle of radiation of about 100°. the LEDs are dimmed via 8-bit PWM, generated by ATmega8 microcontrollers. each controller is responsible for 4 LEDs, which makes it a total of 25 controllers, running at 14,7456 MHz. there are 4 controllers on each PCB, the outputs are amplified by darlington arrays.

guts of the matrix

every LED has it’s own small board, including resistors for each color channel. the pixels are separated by a grid made of 4mm plywood. the light in each pixel is diffused by a small piece of air filter material and the frosted plexiglas pane. diffusion was a major problem, and i guess it’s not really possible to achieve perfect diffusion. my solution is a tradeoff between good diffusion and complexity.

pixels seperated by a grid

the data comes from a PC via RS232(USB adapter) at 460800 baud. all controllers read the RS232 line simultaneously and are addressed by a reserved byte in the data stream. so i broadcast the data to all controllers and each one picks the data it is supposed to read. i’ve reached frame rates beyond 100 FPS.

the final software was written in JAVA because of the OS independency. it is still in development and will probably always be. at the moment it is capable of playing back animations which are stored in bitmaps, displaying the game of life and some variations of it, simple particles and several colorful effects and filters. and of course multiplayer tetris with overlaying playfields. can drive up to three sane persons really nuts.
the matrix was always supposed to be some entertaining decoration element, so it has to be able to generate an endless variety of content without steady user inputs. so i let the software surf the internet and jump from link to link. on every website, it collects content. at the moment, its just an image of the whole website, but i plan to analyze for example the text on the website. the image of the website is analyzed to get it’s n main colors, which are then the basic colors of graphical effects. i hope to end up with some kind of AI which analyzes the web in-depth and shows a simulated creative behavior in dealing with forms, colors and movement. but that’s an utopia right now and it’s gonna be a long way.
another plan was to add some kind of interactivity, but the design is not optimized for adding sensors. maybe a webcam could be used as a proper input-device.
future plans for the hardware include the integration of a netbook to have a completely standalone device which connects to the internet via wifi or ethernet. i considered some embedded solutions, but as old netbooks get cheaper and cheaper, this would be a reasonable solution

if you want to have detailed information about the development and the building process of this project, please visit the project’s own blog
http://rgb-led-matrix.blog.de (german)

15 thoughts on “[Projekt:Bunt]”

  1. Great project, congrats at finishing it.
    I’ve done something very similar, but I only made a 6×6 blue only system using some dedicated I2C LED driver chips, two of them allow control over 16 levels of blue brightness.
    I decided to keep mine independent from a PC but after building it I saw how limiting the tiny memory in a PIC16F877A is for images and effects.
    I’m therefore most intrigued about how you wired up the serial connection to all the microcontrollers. Did you literally just connect up RXD and TXD to all the microcontrollers in parallel, like a couple of bus lines?
    Thanks for sharing, doing a bigger RGB display is a long term goal of mine and this time I’d like to wire them up to a PC like you have.

    1. Hi!

      I basically connected all microcontrollers to the TX-line (PC view). I don’t get any feedback from the controllers. You obviously couldn’t do that with the RX-line

  2. i was fascinated with your projects. i would like to do the same. can you post or send me copy of the source code and the schematic diagram. thanks….

    1. Hi!

      I could send you my designs (unfortunately lost the firmware), but you should not do it the way I did it. When I started this project, special LED-drivers were not as easily available as they are today. That explains my excessive use of microcontrollers. If I would start this project again today, I would use LED-drivers or an FPGA. And that’s what I also advise you to do.

  3. Nice work, found you via Hack-a-day. The web-based content generation sounds great, I’m planning to go in a similar direction w/ my lighting fixtures.

    Cheers from Canada,
    ao.

  4. Hi,

    I found your project interesting, and I was wondering if you could shed some light on how you powered everything. I think I saw a computer PSU there, I’m guessing you used that for a regulated 5V supply? What sort of voltage and current did each of the LEDs require?

    Thanks

    1. Hi!

      I replaced the PC power supply by a switched power supply like you use for a laptop. The whole system runs on 5V at a maximum of about 2.8A. See this PDF for accurate measurements:

      Click to access current.pdf

      The x axis represents the brightness of the color from 0 to 230 = 0% to 100%, the y axis represents the current of the whole system. As you can see the system without the LEDs takes about 0.65A.

  5. hola me gustaria saber como es el circuirto yo tengo una matris de 6 x 6 con compuertas manejada por paralelo y tengo un problema por que las compuertas se cargan de estatica y disparan cualquier cosa desde ya muchas gracias

    1. I ended up using Superflux RGB LEDs. They are very bright, even through the two diffusing layers in my matrix. Unfortunately I have no numbers for you. I think the Sparkfun-LEDs will not be bright enough. Be aware that the LEDs will be the most expensive part of your LED matrix. Spend some money on bright LEDs with a large angle of radiation. It is also important to order high quality LEDs to be sure they all emit the same color at a given voltage. I ordered a test-set of 3 cheap Superflux-LEDS on eBay and found that the colors were very different, see my post in the build blog:

Leave a comment