Go Down

Topic: Cheap addressable RGB strip - how to control? (Read 12 times) previous topic - next topic


Hey guys,

I found this rather cheap RGB LED strip on eBay:

It arrived yesterday and I was planning on putting it behind the projector screen in my living room to do some atmo light. But as it turns out the strip doesn't use a shift register as one would suspect, at least not in the common sense.

I used my scope to try and reverse engineer what I need to send to the strip, but turns out it's doing some weird stuff and I'm unable to find any documentation anywhere.

Here's what I found so far, maybe somebody knows what this is:

The strip has four wires: GND +5V DTI CKI
DTI and CKI are on another source online called DAT_RECV and CLK_RECV so I was assuming a shift register with data and clock.

The scope told me a different story. There is a ~7bit signal both on CKI and DTI (but different ofc). Here's the timing of a "shift pixel" command in 10ths of microseconds (0.1us): (| means a falling/rising edge)
// DTI + 32 | 10 , 14 | 26 | 16 , 16 | 18 , 16 | 18 , 18 | 14 , 20 | 12 , 22 | 14 +
// CKI | 32 , 10 | 14 , 26 , 16 | 16 , 18 | 16 , 18 | 18 , 14 | 20 , 12 | 22 , 14 |   

Both lines are high by default, CKI becomes LOW, 3.2us later DTI becomes low as well, 1.0us later CKI rises to HIGH again etc.
Finally CKI becomes HIGH 1.4us after DTI.

Each of the areas between two | depict one bit. Both CKI and DTI are used to transfer actual data (or I'm misunderstanding something completely).

So far I achieved to do some stuff, like shifting pixels through the strip, but only in the direction of the shift register and only in RGB + mix of full red, full green etc. The controller that came with it is able to do all kinds of nice effects, but it seems that the ucs on the strip are doing some of the controlling themselves (1 uc handles data i/o tells 2nd uc what to do. 2nd uc controls 8 rgb LEDs => 24 channel LED driver).

Thanks for any help and sorry for the long post! :)

I hope it'll be possible to hack this strip, since adafruits alternative has the disadvantage of price and availability. :-/


Without too much analysis could bet, it's I2C. Please draw the waveforms, so I could decode the address/data.


The trick is to find out what those chips are between the LEDs. Can you spot a number on them?


Nov 09, 2011, 10:26 pm Last Edit: Nov 10, 2011, 04:00 am by milamber Reason: 1
I went looking for information on strips using d7001. Most of the strips I found used a combination D7001/D7002. With the explanation given:
D7001 with 24 outputs for the LED driver chips
D7002 for the bus driver chip

I couldn't find any specifications for either chip. But I am curious as to how it is working.
<edit with further info>
I found two images that I have attached but I will try direct linking to put them in this post:

From Google translate:
"Here(below) is a typical application circuit D7001/7002. The above is 8 5050 RGB LED, below the LED driver IC D7001 and bus transfer chips D7002. Only two external components resistor, a capacitor element is very small."

Frustratingly I can not find anything that even resembles a spec sheet for either the D7001 or the D7002. It does look like the D7002 just runs the BUS and the D7001 is just taking the DT and CK lines in and driving the LEDs.

I am interested as these look really nice and seem like they are at a good price.


Just received Chinese versions from a manufacturer. Not too much info.


The pins are labeled DAT and CLK or on the pinout SDA and SCL, which is I2C.

Go Up