Christmas Light Hacking

Sitting in the cluster early one morning in late summer, several of my friends and I discussed extending our recent cluster rave capability by "raving" standard Christmas lights. We weren't sure on the feasibility, but our plan was to take a set of chasing lights and modify them to our liking until we could control them via computer. This site documents our progress.


After forgetting about the project for a few months, I again became motivated in late October 2005, and began searching on the internet for locations to purchase lights prior to the holiday season. A search on Amazon through Target yielded a good looking set, but they were not going to ship until late November. This was not desirable.

A few weeks later, I stumbled onto Santa's Online Store, an eBay seller, and ended up purchasing this set of chasing lights.

The order arrived on 31 October, and I opened it to find a set similar to the one I'd located on Amazon earlier. They even came in Target bags, and seem to be the brand Target would be selling. Likely this seller purchased many lights after the Christmas season so that he could offer them all through the year. The extra price paid is well worth the convenience of getting them now.

The string of lights is actually composed of 140 3.5V bulbs, 35 each of red, green, blue, and orange.

[Box of lights]

Box of lights

Opening the box yields, as one might expect, all of the lights on the strand and the light controller, a little green egg-shaped device. It has a twisting selector on top and a sticker describing the various chase modes. It's interesting to note that the "memory" function touted on the lights is really just due to how the selector is designed: it's a simple, non-electronic switch. Isn't advertising fun?

[The light controller still in its case]

The light controller still in its case

The light conroller case has five screws on the top surrounding the selector, and after removing the excess glue it was easy to open it up to see what was inside.

The inside was actually fairly undramatic: an IC, four SCRs (ML1225's), two resistors, and four diodes. The IC had model MT-X81R (16 pin) written on it, which led to this datasheet in a Google search. Most of the information appears to be in Chinese, but thankfully the most useful information (such as the schematic) is more or less language independent. Further inspection revealed that the lights used the exact same example schematic given in this datasheet, down to the components recommended.

[The top view of the light controller]

The top view of the light controller

The most natural next step, of course, was to pull out a multimeter to see just exactly how this thing was operating. (Plus, playing with line voltage is a fun game.) The IC seems to raise up to a maximum of 0.77V on its outputs to the SCRs for full brightness of the lights, dropping down to 0V when they are off. It's not clear whether the control is linear or not, as the multimeter is not sufficient.

[The side view of the light controller]

The side view of the light controller

The SCRs appeared to be swinging between 0V and line voltage (100V+), which makes sense intuitively as the lights are connected in serial. Each light thus takes a small percentage of the 100V+ given to the entire chain.

[The bottom view of the light controller]

The bottom view of the light controller

The Next Step

Next we must figure out exactly how we wish to use or own hardware to drive the lights. Further research is necessary, but it seems clear that we can use the same basic design as incorporated in the current controller to drive the lights; we only need to figure out some DAC to interface between the PIC or computer which will be controlling the light intensity.

A simple, easy solution will be to use the parallel port common on many computers (including mine), as it is very easy to program this for bit manipulation in Linux. It has not been decided yet whether the computer should talk directly to the DAC or to a PIC in between yet, however.

Much further down the line, assuming we can get "simple" control working, we plan to write Linux applications/an XMMS plugin to do some nifty sound-to-light tastiness. I also have dreams of integrating a DMX interface into the controller, because it would be just that cool, but my partners do not seem to share the same enthusiasm. We will see what happens.