I built a huge wall-mounted LED matrix, 2’x4’ with 20x10 LEDs, and wrote various visual effects for it. I was inspired by several other LED builds like the PixelBrite.

  • It contains 200 daisy-chained WS2801 LED modules.
  • Custom wood frame and foamcore grid to isolate pixels from each other and diffuse the lighting.
  • Controller started off as an Arduino, upgraded to a Teensy, later moved to a Raspberry Pi.
Music visualizer I wrote for the LED board, running on a Teensy 3.1 microcontroller. Each row is a frequency band, higher frequencies at top. The background brightness is controlled by bass frequencies. Check out the drop at 0:17.

Here’s a photo gallery of the build.

I drew a cutting template for the foamcore grid in OmniGraffle and printed it on a plotter. The foamcore grid was cut out with a hot knife at first; later switched to a bandsaw later when I got lazy. Laser cutting would have been ideal! Gluing up the frame, built out of 1x4s. There's an additional thin "bezel" placed on top (not pictured). Assembling the foamcore grid. Test fitting the grid in the frame. Painting the frame. Installing the 200 LED modules. Back all lit up. Front lit up. The grid acts as a reflector that distributes the light within the pixel. All working! Me in front of my creation. Eevee enjoying his digital fireplace.

At various points, it’s been capable of:

  • Playing my own implementation of Tetris
  • Visual simulations: fire simulation; simplex noise simulations (clouds); metaballs visualization (blob effect)
  • Video loop playback
  • Real-time audio visualizer
  • Streaming video over serial connection, for use with the GLEDIATOR matrix control software.
  • Hand-coded graphics libraries to draw lines and shapes (with anti-aliasing!).
  • Arduino-based text rendering from a bitmap font. To overcome the storage limitations of the Arduino, I wrote a small Python utility to take my own font designed in BitFontMaker and store them into a dense bit vector, which is then compiled into the C program.

Updated:

Comments