LED Matrix

LED Matrix


LED matrix is a big and bright low-resolution display. The Maker wated one for animated ambience lighting rather than showing any practical information. For him, it seemed fun to experiment with basic animation through code on such a thing.


What have you made?

I built a 16*8 pixel RGB LED matrix for animated lighting. It's roughly 140x70cm with 128 round ”pixels” 7cm in diameter. The LEDs are controlled by an Arduino Uno and the FastLED library. I also wrote a couple animations (the rain and dancing snakes for example) as well as some simple two-button menus for it. My favourite animation so far was written by a Mark Kriegsman though, the 'twinkling lights' one (found on GitHub).

What gave you the initial inspiration?

Mainly old computers and sci-fi movie props. These “blinkenlights” always fascinated me growing up, and they still do. I guess this is one reason why I opted for round pixels, it felt like the right choice at the time. Once I began researching my options, I came upon several good tutorials online using Arduino controllers (and their clones). The youtube channel ”GreatScott!” was probably my biggest inspiration and resource once the idea really began taking shape. He makes tons of excellent tutorials and informative videos on DIY electronics.

What is the original idea behind this project?

Building something that I'd enjoy to code and hopefully find fun or soothing to watch. I'm kind of happy with the result although I kind of wish I'd made it even larger with a few more pixels in resolution. I have mixed feelings about the round pixels as well, they work great for some animations but square ones had worked a lot better for others.

How does it work?

An Arduino Uno with the FastLED library controls the LEDs. These WS2812 LEDs are addressable so no multiplexing techniques or additional circuits were needed. The data signal is simply connected in series through Data In / Data Out pins of the LEDs. 
Cycling animations is done with a pushbutton. Two more buttons are used for basic menus that allow picking colors and setting brightness and saturation level of most animations without reprogramming the controller.

How long did it take to make it real?

I guess with planning, building and coding it's taken me about a year on and off to finish. But I've only been focused on this project every now and then, with other projects and hobbies stealing my attention during that same year. One could have finished it a lot faster of course, but I think taking my time made the more monotonous tasks (such as soldering for example) more enjoyable to me. I'm not sure I will ever feel completely finished though. I've got some bugs to work out and some weird disturbances in the data signal and/or power distribution that I haven't managed to get rid of entirely. I've also got lot's of animation ideas I'd like to try out eventually, like basic audio spectrum visualization for example.

How did you build it?

- Arduino Uno 
- 128 * WS2812 5mm LEDs 
- 128 * decoupling capacitors 0,1 uF (ceramic 104)
- 5V 10A power supply
- Buttons
- A couple of resistors and lot's of wire. 
The matrix is basically a backlit square grid of foamboard with plastic front and back panels. There's also a thin frosty diffusion plastic in between to make the tiny light sources appear larger. 
The foamboard grid and plastic front panel were machine cut before assembly with glue. I then drilled holes in the back panel for the LEDs and used a gluegun to fix them. After that it was mostly lots and lots of soldering: Data wire in series and power wires in parallel. 
Every LED has 4 pins: +5V, Ground, Data In & Data Out and need a capacitor connected to the power pins for stability. In addition to this, just running power in parallel rows wasn't enough in my case. I had to “bridge” power cables in both directions here and there to minimize what I guess might be voltage drops causing flicker and LEDs showing wrong color. The long runs of and wire and my imperfect soldering might be the problem.
A simple wooden frame was built around everything, allowing it to either stand up on the floor or hang on a wall.