Luke Cyca .com

G35 RF Remote

I bought two strings of the wonderfully hackable General Electric G35 Christmas Lights. Each string has fifty "bulbs" containing RGB LEDs and a microcontroller capable of responding to commands sent over a single data line. Each bulb is uniquely addressable and can be set to a 12-bit colour (plus an additional 8-bit brightness). Amazing.

The strings have a controller on one end that has a dozen canned sequences, and an RF remote control to advance between them and power the string on and off. Of course, the main reason to buy these lights is for the hacking opportunities. You just splice the data line onto an Arduino pin and start programming. There is an excellent library that makes it ridiculously easy, and an excellent fork with the most tasteful Christmas light patterns you've ever seen.

Using the Whole Animal

After repurposing the lights, I was left with the controllers and nice little generic remotes. It turns out that the RF receiver for the remote is on its own tiny circuit board, and can easily be harvested from the controller. You could connect it to the Arduino and continue to use it to control your lights, or you can use it to add a remote control to any other project.

The only readable markings are RGB-RX-RF 70-900020-03R REV07 and SHX 13.573255, so spec sheets I have not. Robert Quattlebaum's blog is the only place I found any mention of hacking the remote from the G35. I tried to implement a receiver based off his protocol analysis, but found that mine was a bit different. I guess there are multiple revision of this remote.

I had to yak-shave a logic analyzer by using an Arduino, this Arduino sketch, and this OLS client. I've never used a logic analyzer before so this in and of itself was a revelation. Here's what I got:

TOP: Remote control's TX pin; BOTTOM: Receiver's RX pin

G35RF Arduino Library

So from that trace, I made an Arduino library that you can drop into your project, and start taking commands from one of these remotes.

Get it on Github. I barely know what I'm doing with microcontroller interrupts so your feedback is, uh, welcome.

Luke Cyca .com