This is the first in a series of blog posts about researching and rewiring Christmas lights to work with Arduino devices.

I spend a lot of time working on web interfaces to sensor data systems. I wanted to learn more about Arduino and small controller systems so I bought some beginner hardware a few months ago. I was able to get some sensors like the DHT11 and DHT22 working, and ran a small comparison test. I bought some air quality measurement sensors that I haven’t figured out yet. But the real reason I wanted to learn Arduino was to build a better Christmas lights controller for this set of lights:

GE Lights Box

This is a set of the GE “Color Effects” LED lights with a custom controller that lets you change the lights using your mobile device. Except the controller is terrible and you have to connect to its Wi-Fi network every time you want to change the program or colour of the lights. This is too bad as the LED lights can do some pretty neat things: they can be addressed individually and have six different colours.

Well, some adventurous people have already taken the plunge and tried to replace the built-in controller with an Arduino. Here are a few:

I plan on following their work and implementing something similar, although I may use a different wireless tech. I was a bit leery about opening up the controller and futzing around with the wiring, but knowing that they use 5V makes everything much more simple — most Arduino controllers run on 3.3V or 5V. And I have a Mega 2560 that runs on 5V!

The secondary project that I will also be attempting is to hack these lights:

HC Lights Box

They have a small controller brick with a button that switches between programs. A remote that runs on a weird little battery can turn the lights on/off, change the program, and sync. I am not sure about the syncing, it may have something to do with multiple light strands. The remote is pretty cheap and the plastic housing comes pre-scratched. It uses RF, which is nice as you wouldn’t need to go outside or point at the controller box to change the lights.

I am not 100% sure what my plan here is, although I have a few ideas.

  1. Gut the remote and connect the RF internals to an Arduino, using that to send the commands
  2. Order an Arduino Radio breakout board, and use that to send messages to the controller
  3. Replace the controller with an Arduino

Number 2 sounds appealing as I get to keep the remote just in case, although I don’t know what frequency the radio is using and ordering that part may take a week or two. Number 3 may be difficult depending on the voltage used by the existing controller. Number 1 may also use a weird voltage or be inconvenient to connect to an Arduino board. I guess I will need to research this a bit more!