I wanted to take control of the lights on my Christmas tree this year, so I read everything I could about interfacing an LED matrix. The idea was to have a setup where I could turn individual lights on and off, and run a little program that did something more than your typical strand of lights. All of my Googling led me to the Maxim 7219 chip, which can control up to 64 LEDs using only 3 pins on the Arduino. I used one of Paul Badger’s Arduino-compatible Bare Bones Boards to run the whole show.

If you get really ambituous, you can cascade multiple 7219s and LED matrixes, so you can have a lot of lights. But I ended up getting lazy, and only built one matrix of 64 lights. I followed the diagram on page 1 of tomek ness’ tutorial to build the LED matrix (be sure to read this bug report for an important update). There may be better ways to do it, but I laid out the matrix as a web of wires, using wire strippers to cut into the wire and push some insulation out of the way before I wrapped each LED’s leads around the exposed wire. Then I soldered it in place, put some heatshrink wrap around the joint, and ended up with a not-too-shabby LED matrix. Once that was done, I again turned to tomek’s tutorial, and hooked the Arduino up to the 7219 and the 7219 up to the matrix. tomek also has some source code available that I was able to modify for my needs. You can find my code right here.

The video above gives you an overview of the project. After the jump, you can see a high-speed video showing how I put one of the rows together (stripping, soldering, shrinking). I’ll post some more on this project soon–stay tuned for details on how I got this talking to my Nokia phone over Bluetooth.