Another build based on the hackable GE G-35 LED Christmas lights and the MSGEQ7 Equalizer chip. This time another friend of mine wanted to put up 2 sets of the GE lights on his house for Christmas, so he asked me if I could build him a copy of my GE light controller box. I started some thinking about how I would need to modify my existing build to accommodate an extra set of lights and how long it would take build it all up. Then it dawned on me that this would be a perfect opportunity to use the new Sparkfun Spectrum shield based on the design by Bliptronics. I asked my buddy if he minded spending a little more on an Arduino +shield to save a good amount of time and he said no problem!
After building the project I can tell you that spending the extra money on the Arduino and Spectrum shield paid many dividends in time savings and my existing code worked with the new shield without issue. If you have all the materials on hand when starting I would think even a beginner should be able to complete the build in under 4 hours, most of which time will be spent splicing cables. If you would like to build your own keep reading, but first let’s take a look at the results:
If you are interested in building a set of EQ Pixels for yourself here are the key materials you will need:
- GE G-35 Color Effects 50 LED Light set
- Costco has the best price
- Home Depot/Lowes sell 35 light sets
- Arduino – Uno
- EQ Shield – Sparkfun Spectrum Shield
- Screw Terminals – Screw Terminals 5mm Pitch (2-Pin)
- 9V Power Supply – 9V DC 650mA Wall Adapter Power Supply
- 3 pin Molex connectors – 093″ Pin Connector- 3 Circuits
- Then number you need will depend on your build
- Pin Extractor tool for Molex connectors – Pin Extractor
- Trust me…
- Enclosure – 6.5-Quart Shoe Box
- PVC Elbow – NIBCO 3 in. PVC DWV 90-Degree
- 50′ Extension cord
You will also need a 10K resistor, wire, headers and a button, all of which should be readily available at Radio Shack etc…
The build is pretty straightforward on the Spectrum shield. We are just going to add 2 screw terminals, tying one line from each to ground and then connecting each of the other lines from the screw terminals for the data lines to their own digital pin. Beyond that we are also going to add a 2 pin header and 10K resistor for a button to change the effect programs. For this build to keep the splicing of cables simpler we will not be powering the Arduino from the GE lights power supply, instead we will use a typical 9v wall wart.
Take a look at the photos below to see how to wire everything up. (Click photos for larger view)
For the button, just connect any button you like to 2 pieces of wire long enough to install it where you want and then solder on a 2 pin female header to connect it to the 2 pin male header we installed on the Spectrum shield.
Once the board is built it’s onto the cabling. For hacking the GE lights I prefer to use Molex connectors so I can “undo” the hack in the future if I want to. First thing you will need to do is identify which wires are which on the GE strands, to do this take a look at Darco’s Hacking Christmas Lights post. I would also suggest running a black marker on the GND line in the area where we will cut the wire to make it easier to identify which wire is which. You will need to perform the following tasks for each of the 2 sets of lights.
Once you have the individual wires figure out cut the strand between the green control box and the first light on the string. Now solder on a set of Molex connectors being sure to key them correctly – I prefer to match the keyed side of the connector with the GND line since I mark that wire with the black marker. Once the connectors are soldered on plug them together and plug in the light set to make sure it still works correctly.
Now it’s time to make a splice cable to connect the GE lights to the Arduino/Spectrum Shield. Unfortunately I forgot to take a picture of this, so I made the following diagram to illustrate. What we need to do is let the +5V line pass the Arduino and connect directly to the lights, connect the GND of the lights and the Arduino together and then connect the Arduino to the DATA line for the lights. Build the cable as follows in the diagram being sure to use the correct molex connectors to join up with the ones soldered on in the last step. I made my cables about 6 inches long, but you can make them as long or short as you like.
Tip: Old computer power cables with 4 pin Molex connectors are a great place to scavenge the wires to build the cables with.
Splice diagram:After building the cables connect each light strand to the Arduino/Spectrum shield and load the code included below to test the lights. If everything is working correctly you are done with the exception of extension cables if needed. For the example in the video above the controller box was located on the ground at the side of the house and the 2 sets of lights were up on the first and second floor roofs. This configuration required a 12′ extension cable to reach the first floor roof and a 24′ extension cable to reach the second floor roof. To make the extension cables I used a 50′ grounded extension cord and cut it into 4 pieces – plug + 4′, 12′, 24′ and 10′ + outlet. I soldered Molex connectors on the 12′ and 24′ lengths for the light extensions and then soldered the 4′ and 10′ back together to make a 14′ extension cord to power the project with.
Note: if you aren’t confident in you soldering/insulating skills with AC cords just discard the 4′ and 10′ sections and use a new extension cord to power the project.
Now that we have everything working let’s put it in an enclosure. Again keeping things quick and simple I used a plastic shoebox for the enclosure. I modified the box slightly by hot gluing in a PVC elbow at an angle so the cables could run in/out of the box without rain/snow getting inside. Just throw the Arduino and all the cords inside and hide the box behind a bush and you are good to go!
The Arduino sketch is a continuation of the GE G-35 code built last year by Darco, Scott Harris and others in the DIY Christmas forums along with MSGEQ7 code. There are 16 different effect “programs” in the sketch, the current effect to play is handled by the eqmode variable the value of which is changed by button presses. It’s fairly straightforward, the main loop performs the following basic operations on each pass and hands off to functions where necessary.
- Check the button to see if it was pressed and update eqmode
- Execute the current “effect” based on eqmode
- Read the value of the EQ if applicable
- Update the first strand of lights
- Update the second strand of lights
Note: Sketch was built with Arduino IDE prior to V1.0 (Arduino 0022).
Click here to download the entire Arduino sketch : EQ_GE_G35_SFE_V90
- Darco’s Deep Darc Blog post – the original hack
- Scott Harris’s Blog with improved code to drive the lights
- J Skoba’s MSGEQ7 Code (my Archive)
- For more info on the hackable GE RGB LED Christmas light project you can read the mega 459 post thread over at DIY Christmas.
- Pictures of my MSGEQ7 build are in message #372.