So a long time back I bought some GE Color Effects outdoor christmas lights.
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.
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…
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);