Hacking Christmas Lights
We are all waiting for consumer electronics producers to sell hacking-friendly, repairable products.
While we wait we can all enjoy [Darco] Christmas Lights Hack. He reverse engineered the leds protocol and the remote control of the GE Color Effects G-35.
The protocol on the data line is simple and self-clocked. Here are the low-level details:
- Idle bus state: Low
- Start Bit: High for 10µSeconds
- 0 Bit: Low for 10µSeconds, High for 20µSeconds
- 1 Bit: Low for 20µSeconds, High for 10µSeconds
- Minimum quiet-time between frames: 30µSeconds
Each frame is 26 bits long and has the following format:
- Start bit
- 6-Bit Bulb Address, MSB first
- 8-Bit Brightness, MSB first
- 4-Bit Blue, MSB first
- 4-Bit Green, MSB first
- 4-Bit Red, MSB first
From this we can see that we have a color depth of 12 bits. Not terribly great, but this should still be plenty for our purposes. What is interesting is the Brightness field. This field acts a bit like a multiplier and enables smooth fade-ins and fade-outs.
Merry Hacking Christmas!
December 10th, 2010 at 14:32:05
[…] Robert used a logic analyzer to snoop out the protocol and coded an ATTiny13A to take command of the lights. He posted a thorough guide to his findings for us less savvy hackers to start experimenting. [via the Arduino Blog] […]