By following these steps, you will be able to control a strand of 50 tri-color Christmas lights wirelessly using a Programmable XBee.

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

In this step we are going to start acquiring the necessary hardware and software.

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
I have a string of these GE lights and I would love to try this project. What exactly is the shopping list? I.E. the boards needed and so forth.
<p>Has anyone tried to make one of these using the wifi xbee? </p><p>https://www.sparkfun.com/products/12571</p>
As far as I understand, the XBee WiFi doesn't come with a programmable interface. I believe you'd need to use a co-processor to be able to control the LED lights.<br><br>Alternatively, you could use something like the Digi XBee Gateway - ZigBee to Ethernet/Wi-Fi (product # X2E-Z3C-W1-A). You can run the PC Python code on the gateway and setup a ZigBee network to talk to the XBee controller Christmas lights.<br><br>I hope that helps!<br>-Mike
<p>mrsutherland, </p><p>This is an awesome project!</p><p>So, how many XBee module did you end up using? One XBee for the PC, and how many for the lights?</p><p>Do I understand correctly, that each LED can be controlled individually?</p><p>Thanks!</p>
<p>Thanks :-). I'm using one XBee for the PC and one XBee for each strand of 50 lights. For this project, I only had a single strand of lights, so there are two XBees total. You can control each LED in &quot;real-time&quot;, or at least within a ten of a second.</p>

About This Instructable




Bio: Software Engineer that likes to tinker with embedded devices, ZigBee networks, and Python. I recently started a consulting/contracting company with a close friend, Null ... More »
More by mrsutherland:XBee Programmable Christmas Lights 
Add instructable to: