Search Instructable, and you can find many LED matrix projects. None of them were quite what I wanted, which was to explore the interactions of hardware and software design to produce something, and produce the final product in a neat PCB with a driver that let’s me draw to the “LED screen” using high-level constructs (e.g, drawing a line as opposed to setting specific pixels). This part was important to me, as many of the LED matrix drivers are bare bones and don’t provide much in the way of programmatically creating an image or animation. This doesn’t mean you can’t create images and animations with the other drivers, just that you would have to do more repetitive work from project to project.

So I set out to accomplish my vision. The first step was to design the hardware. This was probably the most challenging for me, as my background is more software. Again, there were many pre-baked designs, and I certainly used them for inspiration, but I wanted to learn through doing, so I prototyped a 4x4 matrix on a breadboard. I learned much through that process, as my first few iterations did not work. But, I did hardware design that worked, which in turn allowed me to start developing a driver.

I chose the Arduino as my driver platform because it is widely available and has plenty of references online. While career experience allowed me to get to a working version of a driver more slickly than my hardware efforts, there was still plenty of iterations while I optimized driver performance for the ATMega micro controller and developed a programming API that I liked.

This Instructuctable documents the design and some key learnings from my project. More information about this project can be found at my website here, including full kits you can purchase to build your own RGB LED matrix.”