Xmas Light Hacking

So a long time back I bought some GE Color Effects outdoor christmas lights.

image

They looked great outside although the controller had a pretty limited range of options… However after 2 seasons I discovered half the bulbs would not light anymore and turfed em into the bad light box…

I finally looked into repairing or at least salvaging them if possible cuz I wanted to put them in my car for the Xmas season. Did a little googling and managed to find some Arduino code that would drive them. I went through the string and managed to get two strings of 16 bulbs.

I rigged up a small plastic box with a small buck convertor (to take the cards 12V and drop it to the 5V the lights need and an Arduino Nano to run the code. Added a lighter plug and now I have mobile Xmas lights.

image

Right now they just switch colors randomly every 30 seconds. These are pretty old so they are very limited compared to WS2812 (and variants) but I do like the large bulb size…

image

Now I have have two sets of mobile Xmas lights!!!

So if you have a set of GE Color Effects that are broken this is a way to salvage them. I used the code from here: https://github.com/guppy/G35

My coding is pretty terrible but I cobbled this together to get some random colors that change every 30 seconds. Since it is going to be in a car I do not need anything too flashy…

/*
  G35: An Arduino library for GE Color Effects G-35 holiday lights.
  Copyright © 2011 The G35 Authors. Use, modification, and distribution are
  subject to the BSD license as described in the accompanying LICENSE file.

  See README for complete attributions.
*/

#include <G35String.h>

// Total # of lights on string (usually 50, 48, or 36). Maximum is 63, because
// the protocol uses 6-bit addressing and bulb #63 is reserved for broadcast
// messages.
#define LIGHT_COUNT (16)

#define BRIGHTNESS (204)  // Value = 0 to 204

// Arduino pin number. Pin 13 will blink the on-board LED.
#define G35_PIN (6)

G35String lights(G35_PIN, LIGHT_COUNT);

void setup() {
  lights.enumerate();
  randomSeed(analogRead(0));
  delay(50);
}

void loop() {
  lights.fill_random_max(0, LIGHT_COUNT,  BRIGHTNESS);
  delay(30000);
3 Likes

I love the xmas lights in your car. This is awesome. Thanks for sharing the code. Great you could salvage these.

Nice! I have a couple strings of these and have been running them off a partycat for the last few years.

1 Like