Part 1: Arduino Christmas Lights Controller
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:
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:
- 2014: iPhone Christmas Lights Controller for GE G-35 LED Lights (YouTube)
- 2015: An Arduino library for GE Color Effects G-35 holiday lights
- 2015: Arduino control software for GE G-35 LED christmas lights
- 2011: GE Color Effects Arduino Library
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:
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.
- Gut the remote and connect the RF internals to an Arduino, using that to send the commands
- Order an Arduino Radio breakout board, and use that to send messages to the controller
- 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!