[James] was wandering around Walgreens after Christmas and found something very interesting – RGB LED Christmas lights that were individually addressable. At $6.50 for a strand of 15 lights, he just had to buy a few and figure out the control protocol. After all, who can turn down a big, cheap, controllable RGB LED strip?
The packaging for these lights – apparently manufactured by BriteStar – includes a ‘try me’ button that cycles through different light patterns. This button is what initially tipped [James] off to the fact the lights on this strand could be individually controllable. Opening up one of the lights, he found exactly what he wanted: an epoxy blob, two wires for power, and three wires for the signaling.
After checking out this light with a scope and logic analyzer, [James] realized there was a very, very simple protocol going on. Essentially, the entire string functioned as a gigantic shift register, taking the values for one light and pushing it down the string. In looking at the protocol, [James] also discovered] these lights support 16 levels of brightness. Yep, RGB LED Christmas Lights with PWM for under $7. Can’t beat that.
[James] wrote an Arduino library to control these strings and put it up on Github. While your local Walgreens has probably already hidden these lights away in the back of the store, it might be worth asking around to see if they have any left.
13 thoughts on “Controlling Cheap, Awesome Christmas Lights”
It looks like these are individually addressable single LEDs, rather than addressable RGB pixels. Just FYI before you raid Walgreens.
Which is really just a form factor difference, right? Tie the grounds together and four leads is four leads, you’ve got PWM, so.. you have an RGB pixel, sure it’s bigger than 3 LEDs in a single package, but that may work out better for some applications.
No, I think what Pablo is saying is that each bulb does not have an RGB, each bulb has a single colored LED that has PWM. In his first paragraph he states:
“These have 15 individually addressable LED lights (3 sets of 5 LEDs arranged as red, green, blue, orange, white).”
Which makes me think Pablo is right. The first bulb is only ever red, the second bulb is only ever green, etc…
I agree, this is what I was saying, but if you have PWM and can turn two or three of each RGB cluster on at once you still have an RGB pixel, it’s just bigger than if you had a 3 LEDs in a single 3 lead package.
Yes, but that means you only get 5 “pixels” for $6, which means they are $1.30/pixel where as adafruit sells various form factors for around $0.50/pixel with free instructions on how to use them.
Yes, you are correct. I think the HaD article mistook some of what I said in my blog post to mean that they were RGB. They are not RGB but just a single color LED. The string itself has 15 individual lights (LEDs). The first is a red LED, the second light is a green LED and so on. The sets are all arranged in the same order which is handy for creating Christmas light displays.
Yeah, Pablo is right. It is just 15 colored LEDs (red, green, blue, orange, and white) on a string that are individually dimmable. [James] shows a teardown of the first bulb and it is just a red LED:
AHH! My mistake.
Yeah, [James]’s screenshot of the logical analyzer with only the “Red”, “Green”, and “Blue” lines (the one used for the HaD article) didn’t help with the confusion. I had to read the article a few times to make sure, myself.
Awww, darn. And here I was thinking at 43 cents each this could be the least expensive way to make a 640×480 RGB LED display.
As a suggestion for readers that want to go into controlling individual RGB LEDs, LED strings or strips with the ws2801, ws2811 or similar protocol are much cheaper (I recently got strings of 50 RGB LEDs for $25 on eBay, instead of 15 non-RGB LEDs for $6.50) and are well supported by libraries for the Arduino (see, e.g., Adafruit’s Neopixels).
“Icicle Light Show” by the same manufacturer nets 18 white serial LED’s, 30 always-on LED’s, 500ma 5V power supply (four wires out – the two thick ones only connect to the power socket for the follow-on chain and are presumably AC, while the lights are all on the two thin lines), and a battery holder for 3 AAA batteries attached to a button/timer breakout that will provide power for 19 seconds. Default program (for first LED in chain) is to turn on for about a quarter of a second, appearing to be followed by “off” 7 times to make the drip effect, with “drips” about every two seconds.
The daisy-chain power supplies are an intriguing idea: I think it just solved the problem of how to have the kids share a power point for their electronics projects. With neither of them being able to brown-out the other! According to the box, up to thirty of the chains can be connected together.
Arduino fans: 30 arduinos with *separate* power supplies running from one outlet, with a 12′ spacing between power supplies. Further ideas may be provided by noting the box is marked: “Indoor/outdoor light set”.
Yep, RGB LED Christmas Lights with PWM for under $7. … olightsc.wordpress.com
Please be kind and respectful to help make the comments section excellent. (Comment Policy)