I had a nice 32x16 LED matrix lying around and decided I should do something with it. The result is a small virtual fireplace for my desk!
To control the display I used a Teensy 3.1, an excellent little ARM dev-board clocked at 48MHz. It has plenty of RAM (16K) to buffer the 32x16 screen, an internal RTC to keep time and a whole bunch of neat features like capacitive input on a lot of pins.
To create the “enclosure”, I cut two pieces of semi-transparent plexiglass and screwed them together with stand-offs. The display is held by the back panel so it looks like it’s floating between the two glass pieces.
The folks over at SmartMatrix are selling a great shield that can be used to attach the Teensy to the back of the display. The connections are pretty simple and the shield is open source hardware so it would be easy to create your own version if you don’t want to buy one as it’s pretty expensive.
Lastly, I attached a wire to one of the stand-offs so I could use it as a capacitive input. With this the display can be turned on and off without having to add any kind of hardware.
For rendering the fire effect I modified some code from SmartMatrix’s Aurora project. Basically, I made the effect code standalone, added the capacitive input and clock rendering. All the source code is available on Github. I originally planned to add a serial interface to set the clock but apparently it’s automatically set when you program the Teensy! Maybe I’ll still implement it in the future so you don’t have to reflash the device every time you want to set the time.