G35 LED Christmas Light Review and Teardown
In this write up & video I review the “GE Color Effects” G35 multi colored LED Christmas lights 50 count. I will cover product details, hanging hints and show a teardown and give some links to great hacks at the end.
You get to pick from 14 sequence patterns using a wireless controller. Hacking these lights using Arduino is already very popular so I will be linking to some good hack posts below. In a later video I will be trying some of the known hacks and some of my own.
Link to the GE product page for these lights
In the box you get the below:
40.8 feet of lights
50 lights spaced at 10 inches
50 rain gutter clips, 50 base clips
Radio controller with 14 light patters

CLICK TO READ ALL —>:
The light patterns are labeled on the back of the remote. Very nice touch but the 14 options are not very good. They all blink or change or race too fast. I would have much preferred a softer mood with solid color options or slower changing effects. These lights just must be hacked!

And you get a switch mode power supply 120v AC 0.4A to 5v DC 3A (later in the post I show that these rating are more than enough).

I got my lights on sale back in August at Costco for ~$60 but these 50 count lights can run from $100 to $120 on Amazon. There are other light counts and light styles in the “GE Color Effects” product line. (See above product page link for such details).
First let’s cover hanging. I was very surprised at how much care and thought was put into the hangers, which are included. You can use the hangers in several ways, either with or without the rain gutter clips.
I don’t have rain cutters so I screwed these base snaps to the underside of my fascia boards.

It was easier for me to sit at my bench and pre-screw the 50 clips with a short pan-head screw.

I then used an 11 inch board with a nail driven though each end spaced at exactly 10 inches. I used this jig to mark off the 10 inches between each clip. If you use bigger nails and give the jig a whack with a hammer when marking off, you will get nice pilot holes too.

Even using this jig it was very slow going putting up 150 clips. I experimented with other ideas and the only other option for my wood fascia board would have been to use the rain gutter clips with some staples. I found that Arrows T-25 cable staples and cable stapler worked just great. These rounded staples leave just enough room to slide the clips in and out.
I also tried square staples but they didn’t work at all. They drive too deep or too shallow and there was no good way to make the square staples work.

Between the rounded cable staples and the screws I picked the screws as seen on the right side of the below photo.

I liked the screw method because the wires are harder to see when you screw the base clips directly to the bottom of the fascia boards.
This is my house with 150 lights. Not easy taking photos in the dark. They are very bright, much brighter than you can tell in this photo. I must say I love how big and bright they are but I will have to hack these lights to get better color effects and timing.

Now let’s take some measurements and take a look inside these lights. When connected to my bench supply at 5v none of the light patterns took more than 1.75A which was solid white. All the other patterns ran from 0.89A to 1.47A so this is way under the 3A switch mode power supply that comers with each light strand.
I can’t set all the lights to be solid but I was able to pick a slow enough race pattern that would race all the colors to one color before switching to the next color. Just as the 50 lights all got to a single color I would record the amps on my bench supply. Here is what I got.
Red 0.91A
Blue dark 1.2A
Blue light 1.4A
Green 0.89A
Purple 1.46A
Yellow 1.47A
White 1.75A
And the 120v AC amps when set to solid white for all 50 lights came to 0.209A, also way under the power supplies rating of 0.4 amps. So these lights come with very good rated power supplies for the loads they will be powering. This also means that running these lights is even less then I thought at 25.08 Watts. WOW that’s less power than a single old style night light for the whole strand including the controller.

The plastic crystal defusing covers just pop right off giving you a good view of the surface mounted RGB colored LED in a sealed clear plastic case.

Here is a close up where you can see the PCB and the silk screen labeling. You can clearly see where the three wires come into each PCB. The two outside wires are for 5v power and ground and the middle wire is the data line that transmits the color codes to each LED.

Opening up the control box reveals a single sided board with a radio control daughter board on the back side. Here are some close ups.

The black blob is a “Chip on board” where they glue a chip die directly to the PCB, wire bond from the die to the PCB and then seal it all up with a blob of epoxy/resin. It is a very cheap way to mass produce a product but I find it strange they also have a micro controller on the board.

The micro controller is the surface mount SOP-20 chip (20 pins) by MEGAWIN. Here is the datasheet. http://www.megawin.com.tw/megawin_EN/UploadFiles/MG87FEL2051_4051_6051_DS_v103.pdf
MG87FE2051AS20
Here are the specs.
MG87FE/L2051/4051/6051is single-chip 8-bits microcontroller with the instruction sets fully compatible with industrial-standard 80C51 series microcontroller.2K/4K/6Kbytes flash memory and 256 bytes RAM has been embedded to provide widely field application. In-System-Programming and In-Application-Programming allows the users to download new code or data while the microcontroller sits in the application. This device executes one machine cycle in 6 clock cycles or 12 clock cycles. MG87FE/L2051/4051/6051 has one 8-bit I/O ports (P1),one 7-bit I/O port (P30~P35,P37), two 16-bit timer/counters, one PWM-timer for 8-channel PWM output, a seven-source, four-priority-level interrupt structure, an enhanced UART, a precision analog comparator, on-chip crystal oscillator (combined P42,P43) and a high-precision internal oscillator.

Below is the radio daughter board on the back side of the main board. The unpopulated parts you see are for a crystal for the micro controller on the other side. To save money they programmed the micro to use an internal timer instead of the quality external crystal. If they had populated the crystal and the capacitors for the crystal on the front side then I would have had no problem synchronizing two light strands and keeping them in sync. But with the low grade internal timer, each chip will have a different idea of time and even when you do get two strands in sync the poor internal timers will just drift and the light strands will be all out of whack with each other in under an hour. Unfortunately you can’t just populate the crystal yourself because the micro is internally set to look at the internal timing not an external crystal, oscillator or resonator.

Under this daughter board I could see another “chip on board” so this radio board was setup for some major mass production. Under this board I can see the silk screening for a button (SW1) so this board can be used with our without the radio option.

And you can see the in the plastic over it is setup for a hole to be punched for a button. I would guess this is for other products GE sales that don’t have radio control and you just push a button to switch patterns or hold the button for a count of “?” to turn on and off.

Button hole on front cover if punched.

This would be where the button would be mounted on the PCB board if this was not a wireless model. I was able to short these two traces with a quick flick to change patterns and a longer short did turn off the unit as I suspected.

Now for the deep hacking folks. I wanted to take close up photos of the traces in the hope that maybe a more easily programmed SOP-20 micro could be implemented. Maybe some ATmega or PIC would be dropped on board and programmed in place keeping the board and its radio control. The crystal and capacitors could also be populated for better timing. Then these strands can be synchronized as well as programmed with better patterns. (Click for larger photos)
If the crystal is populated on the back side here is where the legs come up. And just below you can see C1 and C2 which would be the capacitors home needed for the crystal.
I know we need to see the traces under the IC so I used my hot air wand to remove it and take photos.
Below I tracked the copper just incase it was not clear where the traces ran in the above photos. This helps a ton being we know what connects to each and every pin of the micro controller. This is a single sided single layer board so nothing hard really.
Now the IC is back on and as you can see the lights are running fine.

That is it for my review and teardown. Now for some links to others that are doing some hacks for these lights.
DigitalMisery.com has an open source drop in wireless replace board for these lights. WOW, you can’t ask for more than that. He does not sell the boards yet but keep checking his site to see if he gets a Kick starter going or just follow his open source documents and spin your own board. He links to his code and the Arduino library’s “G35Arduino”
DeepDarc.com put up some amazing engineering details on these lights and reverse engineered both the radio protocol and the protocol used on the LED data bus. You must read his post if you’re going to be hacking these lights. He also shares his code and other very useful tips.
Keithsw has some great stuff synchronizing 6 strands and shares his control code, Arduino circuit and a PC software simulator program to help design the layout and patterns. Here is his short (video).
CheerLights is an ioBridge Labs project that allows people all across the world to synchronize their lights. This sit gives all the hacking details and you can play along even it you don’t have lights by tweeting a color to @cheerlights and watching on ustream.
Jim at Jim’s G-35 Project Page makes his own control board using a PIC18F2620 micro controler.
If I have any of my own hack updates I will link to them from here and under “All Postings” with the title “G35 LED Christmas Light…”

























Nice details. You are right there are lots of examples of people hacking these lights. In my article at http://www.codeproject.com/KB/system/GELights.aspx I used one of the bigger Arduinos to drive 5 sets of lights in synch. The youtube video is at http://www.youtube.com/watch?v=K8epnb7tkVs . The article describes the hardware and software including a simulator and a higher level programming language for programming the patterns.
[...] Harrison] took a slew of pictures in his quest to loose all the secrets of the G-35 Christmas Lights. These are a string of 50 plastic bulbs which house individually addressable RGB LEDs. We’ve [...]
Actually, I think you can sync the lights, without replacing the chip or adding a crystal.
You need to do two of at least three things.
1. Find a “code” that can be sent down the lights control line, that does nothing.
OR
2. Find a code that you can use, if they’re all used (say 32 code are there, but they’re all used).
And, in the second string, you would have to watch that line, interrupt or what ever, and reset your timer on that.
So you have two different processors, running almost in time code.
Of course, it’s not perfect, but it’s not “run away” either, because you’re continuously resetting the sync. So it may be off a couple clock cycles, but won’t wonder far from that.
(think of those “atomic clocks” that receive the time signal. It’s not perfect, but the clock is always right)
Todd,
Thanks for your blog postings and videos. I’ve enjoyed a number of them.
After viewing your post on G35 Christmas Light Review, Deep Darc’s Hacking Christmas Light (http://www.deepdarc.com/2010/11/27/hacking-christmas-lights/) and a few others and wonder if I may have a solution to your syncing problem.
I imagine simply chaining multiple light string together would cause power issues. But, what would happen if you were to keep power on separate power supplies, yet connect the data line. See Deep Darc talks about ‘Bulb Enumeration’.
Possible problems/issues.
1 – Address propogation may only happen in one direction, so you might need to connect the tail end of the first chain to the front end of the second. It sounds like you could then move the power lines to the new tail end.
2 -This may only allow you to address up to 64 (2^6) bulbs before you need to start reprogramming the controller.
Good luck.
– Bill
Like bill said. just cut the middle wire (looks to be the comunication line) Tie grounds to each other. and use seperate power lines for each strand. Then the data line would probably send the same command to 2 LED’s or 3 or 4 at the same time. unless of course its i2c control and the LED’s are talking back to the master device. but if its a send and forget system then you could probably dasiy chain a bunch together from one controller and many power supplies.
Check out SanDevices.com. The guy there has created a board that works with the G35′s as well as industry standard pixel strings. It connects via ethernet to a PC running Vixen or Lightshow Pro. I’m running four sets on one of his boards with Lightshow Pro. I considered syncing sets as profit said, until I ran across SanDevices. Each pixel is electrically identical and on startup address themselves. You can actually cut a set of 50 in half and you have two 25′s.
@Bill and profit, That is where I’m at in my mind too. Others have emailed me and said I was going to have problems and shared why so I will be looking into those solutions.
@DanO, That Company does make a workable commercial solution using a Parallax propeller chip. Thanks for the link! But, and this is a BIG BUT for me, they are not open source. You only get the product as is, no source code and no circuit layouts. They have a right to do that and I applaud their entrepreneurship, but I really want an open source solution I can alter and share my changes with others. If it was open I think I would buy it right now and maybe I would use it as is or maybe I would hack it but I want that choice.
The board is really a DMX gateway and power supply, and all commands are streamed from a running PC in real time. I can see the advantage of an Arduino solution is you can make it stand alone. The SanDevices board is working for me, since I’m running Lightshow Pro. I appreciate open source, but was glad to let someone else do the thinking for me this year.
One thing I found that may be helpful is that the strands are sensitive to voltage drop. I managed to push the limit with a 25 foot lead ahead of some sets using 16/4 outdoor speaker cable (going for UV resistant.) 16 gauge normally would be overkill, but even with that, when set to all white, some of the later pixels have a slightly different color to them. It’s not that bad and I shortened the leads once installed to be just what is necessary.
Now if the winds we’re having in SoCal today don’t rearrange the lights in my trees, I’ll be happy.
I’ve failed so far at getting the epoxy off the back of the individual LEDs. It must be a simple processor since the LEDs are driven with PWM signals and it’s able to block the propagation of the data for enumeration. Re-programming/replacing that part would allow you to add all sorts of functions (like Blink, Fade, One-shot, automatic color changes, etc.). Expanding the six bit address field would be another target, although there are power issues with the existing led and wiring.
I have a Question here, i’m not a pro at this, well it rained snowed will this short the lights out for sure ??
I tride to tear down the power box and no power. I went out and bought a different switching adapter at 5v 4a and still no lights. I open the control box and not really sure what is what.. could you give me an idea ..
@joe, I don’t get what you are saying. Thanks for your email. I will contact you by email and see if I can help.
Todd
The colornode project is really nice. But, I think it would be really cool if we could just reprogram/replace the MG87FE processor in these sets. It would be cool, if all you had to do was just reflash the uP with custom code.
The custom code could set up custom patterns that we actually like/want, or take it to the next level and use the existing RF link, the RFM12 (or another simple cheap RF interface like NRF24L01) to send real time pixel data to the string from Vixen/LSP/Madrix, etc.
I think it would be awesome to just plug these sets in and be able to control each pixel independently and wirelessly from a PC.
Does anybody have experience/dev tools for this microprocessor?
@Joey, That was my hope. That if I took lots of photos, removed the uP and documented all the traces that somebody with more skills with the uP would commit some time to replace or submit programming tips to the hacker community. Still hope! Maybe by next year.
[...] Harrison] took a slew of pictures in his quest to loose all the secrets of the G-35 Christmas Lights. These are a string of 50 plastic bulbs which house individually addressable RGB LEDs. We’ve seen [...]