My family has always been into Christmas lights and creating custom decorations, so when I read this blog post on how to hack GE Color Effects Christmas lights, I knew I needed to try it out myself. I decided to use an XBee Programmable so that I could control the lights wirelessly and try out the new built-in Freescale co-processor.
For this project I'm sending RGBA (Red Green Blue Alpha) values for each LED over a ZigBee network to the FreeScale co-processor built into the XBee Programmable. The code on the co-processor uses a PWM to send the RGB values on a data line to the LEDs in the strand. Each LED on the strand has an 8051 microprocessor in it that decodes the signal and sets the LED color and brightness. Voila, wireless control of 50 tri-color LEDs. The strands themselves support a refresh rate of up to ~24Hz when setting all 50 LEDs (faster if you are setting fewer LEDs). Using a compact over the air representation for the LED values (removing the brightness or ALPHA portion), I can get ~10Hz refresh rates in real time over the wireless network.
Step 1: Assemble the parts
First you need a strand of GE color effects G-35 Christmas lights. I'd suggest trying to find a strand with 50 lights in it, but one of the 36 light strands will also work. If you can find them at Costco, they are usually available for ~$60 as apposed to the full retail price of ~$100.
Next you need to get an XBee Programmable and programmer for the FreeScale co-processor. I suggest checking out Digi's Getting Started for more information. You'll also need a second XBee (series 2) connected to your PC to send data to the programmable XBees. You can download the required software, drivers, and getting started guide here.
The example computer programs are written in Python. You'll need to download Python 2.7 and then install pySerial. All of my code and the XBee profiles are located on GitHub at: https://github.com/mrsutherland/lightshow.
You may need a 1kOhm resistor and 10pF ceramic capacitor to reduce noise on the data line for the Christmas lights. It doesn't appear to always be necessary, but I've had some issues without them.
Finally, you'll need some misc components to wire everything up without using the XBIB board:
* 1 small prototyping board or breadboard
* 1 XBee breakout board from Sparkfun.
* 1 LN1117T - 3.3V linear regulator to provide 3.3V to the XBee from the 5V off the Christmas lights
* 2 10uF radial caps - for the linear regulator
* 1 LED - association LED isn't strictly necessary, but very useful.
* 1 1kOhm resistor for the LED
* optional enclosure