Dec 12

GE G-35 LED Lights with EQ Quick Build

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:

Build Info:

If you are interested in building a set of EQ Pixels for yourself here are the key materials you will need:

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)

Shield top: Shield bottom:

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!

Enclosure top:Enclosure side with cables:


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.

  1. Check the button to see if it was pressed and update eqmode
  2. Execute the current “effect” based on eqmode
    1. Read the value of the EQ if applicable
    2. Update the first strand of lights
    3. 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

Additional Resources:

Sep 17

EQ Pixels

First a little background… Last year I built a color organ type project using the hackable GE RGB LED Christmas lights and the MSGEQ7 Graphic Equalizer Display Filter. The project changed the lights based on the audio signal presented to the MSGEQ7. I wrote several effects for the lights and changed them based on pressing a button.

Upon seeing the GE lights in all their glory a friend of mine thought it would be cool to have something similar for his entertainment center. I happened to have another set of GE lights, so I said sure no problem. Fast forward 6 months of both of us forgetting about it and me thinking up another use for the extra set of GE lights I had, so now I needed to source a new set of lights. After looking around at several options I decided on the 20mm Clear Digital RGB LED Pixels from Bliptronics/Adafruit. The LED Pixels are very bright and with the available Arduino library they are easy to control. In addition to a button to change effects in my old design I also added an IR receiver and mapped a few unused buttons on the standard FIOS remote, so now you can switch effects without ever leaving the couch!

While working on the new hardware I also came up with a few new effects, some of which are based on the audio running through the EQ and some of which are not. The EQ effects are mainly driven by 3 channels from the MSGEQ7 (Low, Mid, High). Each of the channels corresponds to a Red, Green or Blue LED in a pixel and the value of the channel as determined by the MSGEQ7 sets the intensity of the colors. This basic mapping makes for a great visualization of the music and theoretically the same song will always produce the same effect.

Take a look at the video to see how it looks:

For the curious, here is a brief description of all the effects:

Light Effects (not driven by audio):

  • Slow Wheel – Transitions through 96 colors over 45 minutes. (default effect)
  • Fireflies – Random pixels are lit for random lengths – like fireflies at night.
  • Strobe – Typical strobe light – all white.

EQ Effects:

  • Split Follow – Splits the pixel strip in half and sends out new beats from the middle.
  • Full Follow – Sends out new beats out from one side down the strip.
  • Color Bar – Every pixel in the strip is updated on each beat.
  • Mono Shuffle – Maps RGB values to just blue LEDs.
  • XMAS – Red & green lights mapped from half to full brightness based on music.

Build Info:

If you are interested in building a set of EQ Pixels for yourself here are the key materials you will need:

You will also need various resistors, capacitors, buttons etc… most of which should be readily available at Radio Shack etc…

Since this project is fairly in depth I have chosen not show step by step instructions, but rather a few key photos along with a schematic and the sketch for running on the Arduino. Keep in mind you could also use this hardware to build an LED sign, ambilight etc… just change up the code on the Arduino.

Let’s start off by looking at the schematic (click for larger view).

SchematicFrom the schematic you can see the major components and how they are connected logically. The left and right audio channels are joined together then sent into the input pin of the MSGEQ7, which then analyzes the audio and sends it’s output to the Arduino on an analog pin as a voltage range. The Arduino reads the information from the MSGEQ7 and alters the appearance of the LED Pixels according to the currently playing effect. The large capacitor on the input voltage helps smooth out the output of the 5V power supply since the on board regulator etc… is not being used. There is also a button and IR sensor connected to the Arduino to allow for switching effects. Now let’s take a look at some pictures of the physical build to see how it all comes together.

Two sets of 20 LED pixel strips were joined together and then shortened to produce a single strip of 32 pixels. The LED pixels were then hot glued to the 8 foot aluminum angle bar with the connection wires hanging from one end. Tip: Make sure to rough up the aluminum to give something for the hot glue to stick to.

An RJ11 jack was attached to the opposite side of the aluminum angle bar to provide a connection back to the control box.

RJ11 JackThe completed strip installed behind the entertainment center. The strip is held in place with “L” brackets allowing for quick and easy removal if necessary.

Installed pixel stripCompleted circuit board mounted in case without Boarduino. The 3 sets of 2 pin male headers are used to connect the power, power switch and effect button.

Circuit BoardFront view of circuit board with Boarduino now in place. Note: the regulator and power jack on the Boarduino are not being used since +5V is being fed to the Arduino on the 5V pin. These power regulation items on the Boarduino etc… could be omitted, I just happened to use a Boarduino I already had built.

Boarduino Front viewAnother view from the rear.

Boarduino back viewInterior view of the case top showing the power jack, switch and button installed and window cutout for the IR receiver.

Case topFront view of assembled case showing the IR receiver window.

Case front

Rear view of assembled case showing audio input jack, RJ11 jack to pixels and power jack.

Case rear


The Arduino sketch is a mashup of the LED Pixels samples code with my effects and some additional handling for the IR and button presses added. The current effect to play is handled by the eqmode variable the value of which is changed by either button or remote key presses. It’s fairly straightforward, the main loop performs the following basic operations on each pass and hands off to functions where necessary.

  1. Check the button to see if it was pressed and update eqmode
  2. Check the IR remote to see if a key was pressed and update eqmode
  3. Execute the current “effect” based on eqmode
    1. Read the value of the EQ if applicable
    2. Update the Pixel strip

Click here to download the entire Arduino sketch:

Additional Resources:

Jul 27

Joe Knows Resistor Kits

I was strolling through the digital aisles of the other day and one of the recommendations it popped up for me was a $20 resistor kit from a vendor I never heard of before called Joe Knows Electronics. The recommendation led me to a 1/4W 1% 860 piece resistor kit that seemed pretty well packaged, priced right and was fulfilled by (free shipping for orders of $25), so on a whim I thew it into my cart.

Fast forward a couple of days and I now have the kit in hand. The kit contains 10 each of 86 values from 0 – 10M ohm, each within it’s own separate zip-lock bag. Also the bags are ordered in the box from lowest to highest value, so it’s super easy to find the value you are looking for. The box is made out of heavyweight cardboard that should last, but you could easily transfer the bags to a plastic box, bin etc…

I did a random selection and tested a few resistors to see if they fell within their 1% advertised tolerance and here are the results:

Rated Ohms Measured Difference
10K 10.01K 0.10%
4.7K 4.66K 0.85%
1K 0.998K 0.20%
220 218.7 0.59%

All of the resistors I tested did fall within the 1% tolerance, although my bulk 5% 220 ohm resistors actually performed a little better than these did, but I guess you can’t count on that.

I do buy specific resistor values I use often in multiples of 100 from different suppliers, but for the random oddball values I rely on the old standby $10 assortment from RadioShack. For the extra $10 the Joe Knows Electronics Resistor kit is well worth it for the wider assortment, tighter tolerance and no work to identify and organize a batch. In the end it does look like at least Joe Knows Resistor Kits.

Amazon link: Joe Knows Electronics 86 Value 860 Pc. Resistor Kit


PS. I did go to and it looks like the only sell the resistor kit and a few LEDs, but do offer some type of manufacturing/prototyping services. Odd, but I do like the resistor kit.


Jun 28

AlarmingTweet Entered in Make it Tweet Contest

I built a new project I called AlarmingTweet for the Adafruit Make it Tweet contest at Instructables.  The project adds tweeting capabilities to the GE 45142 Choice-Alert Wireless Control Center Alarm system. The Choice-Alert system allows you to wirelessly connect up to 16 different sensors across 4 zones. You can purchase door/window sensors, motion detectors, garage door sensors and more allowing to build your own custom alarm system.

The only thing the Control Center lacked was the ability to notify you remotely in the event of an alarm. I figured I could solve this problem with an Arduino, Ethernet shield, ThingTweet and Twitter, which fit ​beautifully with the goal of the Make it Tweet contest.

After a long weekend of trying to find time to get the project completed I was finally able to get it across the finish line late Sunday night. Much to my surprise my project was featured by the Instructables editors on Monday in the Technology section and for a time made a run up the most popular projects list. Voting for the contest is currently underway, so please take a few minutes to view the contest entries and vote for your choice.

You can see all the contest entries and vote for your favorite here, or if you just want to read my Instructable go to AlarmingTweet directly.


UPDATE: AlarmingTweet was chosen as a finalist in the Make it Tweet Contest, but in the end did not win. Maybe next time…

Jun 19

Waterproof DS18B20 probe at Adafruit

As luck would have it, about a week or two after building the DS18B20 temperature probe from scratch since I didn’t want to wait for it to ship from China, Adafruit has added a similar probe to their product lineup. The Adafruit probe looks very similar to the Arduino-Direct one, but Adafruit is US based so shipping would be much faster and as always they provide great documentation on how to use it.

From their documentation it looks like if you wanted to use it with my Easy Arduino 1-Wire Sensor Network you would connect it as follows:

  • Red -> Vdd
  • Black -> GND
  • White -> DQ

You can order the sensor from Adafruit at


Older posts «