Cheap addressable RGB strip - how to control?

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

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.

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.

20101222162438_1542.jpg

20101222162544_2792.jpg

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.

..very interesting!

Check this thread out. The author of the FastSPI library has a sample of a D7001-based strip and is planning on adding support.

I note the eBay URL you pasted says 12V but you say the strips are labelled 5V. Which is it? How much current do they draw? I'm interested in using these strips in a project of my own.

Cheers, Robert.

Hi! FastSPI author here - I do have a D7001 strip, but I haven't had a chance to figure out how it's talking yet, and my attempts to find datasheets have been limiting. The next chipset on my chain is the TM1803 in high speed mode (just had a "oh, duh!" moment for how I can support it in my library, as well as re-work the TM1809/4 support so that the code is a bit cleaner, and not quite as ... delicate as it is right now).

If it's I2C - That can probably get me a bit closer to working out what's going on here. Time to read up on I2C I suppose! Also, it isn't clear to me whether it's 12 bits per pixel (a datasheet I saw talked about 4096 colors) or 12 bits per rgb pixel. The former would be fantastic from a color leveling standpoint (most other chipsets I work with are 8 bits per pixel, 24 bits per rgb pixel). The latter would be a bit limiting, I get higher than 4 bits per pixel w/hl1606.

Very keen to hear an update on this when you've got something to share, Daniel :-). Just about to order some of these strips myself, for this year's project.

Any first-hand info on the voltage for these strips, by the way? Is it 5V everywhere, or 5V signalling and 12V to power the LEDs like the LPD6803 strips I used last time?

Hi -
I've got a 5M roll of this stuff, but my manufacturers in China refuse to give me any documentation on the strips so I refuse to order more. I like the lower power requirement of this strip versus the ws2801 and lpd8806 variants plus the lower cost.

I'm willing to give 1/2 meter long segments away to anyone who might be able to take a serious crack at getting this stuff to do anything useful. I'm a PIC micro guy myself, but even working arduino code should be easy enough to port over. I'm admittedly not a great hardware guy but I've spent 2 weekends blindly trying to send data to this and I've yet to get it to do anything useful.

The only catch is that any code given needs to be freely (as in no strings attached) redistributable.

Thanks!
-Patrick

Oh, PS the stuff I have is 5V across the board. I think the 12V variants (if they exist) would have to use the trick of stacking 3 LEDs per driver circuit making the strips not individually addressable. Also, these only seem to come from one source (there are other manufacturers reselling it but it seems that there's only one making it at this point). I've yet to see a 12V variant in all my dealings with manufacturers.

I'd guess the Chinese manufacturers are reluctant to give out datasheets because they're worried about other manufacturers ripping of their designs. Which is funny, because the specs at least look a lot like these NXP chips:

http://ics.nxp.com/products/led.drivers/

Specifically:

http://www.nxp.com/documents/data_sheet/PCA9626.pdf

(I may, however, be talking completely out of my arse here. I would welcome this being pointed out if it's discovered by someone who does indeed know what they're talking about.)

Edit: Dicking with google translate I found this, which I think is meant to be a whitepaper, which has a little more information than is on the above diagrams (but not much):

http://translate.googleusercontent.com/translate_c?rurl=translate.google.com&tl=en&twu=1&u=http://www.cntronics.com/public/art/artinfo/id/80009061&usg=ALkJrhhmkOplKxDAMNvsX4G0PuRsMoxSbQ

Yeah, I'm guessing the same thing too, but it's pointless as the design is already well documented. If I were trying to rip off the strip itself I probably already have what I need. I don't see the point in withholding programming documentation from me (I tried asking them if they want to sell LED strips or they're trying to sell cheap shitty controllers - because it sure sounds like they're trying to protect the latter at the expense of the former but the language barrier doesn't help.) I've been buying from them for a while and told them I'd probably be able to (re)sell a lot of this stuff to hobbyists as the price is right, but only if we had the specs. No go..

The IC is manufactured by a company called DBIC (DBIC D7001, D7002) and I had found their website at one point. Rather unsurprisingly, they're a Chinese manufacturer too. This is probably a knockoff of someone else's chip design. I submitted requests to them (fudged it a little and said I was interested in using their product to design my own led strip) but got no replies back. The strips are sold under a part number "S301" across many "manufacturers", so I'm pretty sure they're all coming from one source. My main manufacturer claims this is their design - they are a large manufacturer of lighting, not a reseller - but it's hard to validate that as they've sold me products (controllers mainly) that look just like the same damn controllers everyone else sells. I have noticed most of the ws2801 strips (which I buy from them) from other sellers carry their part number on them, so they're at least a pretty big source of them. They may indeed be the main source of these too.

I think we'll only make progress with this once someone with the know-how can reverse engineer the protocol. I didn't buy a controller, but I could, and I do have a scope.. but I have no experience reverse engineering stuff at this low a level. If anyone has pointers, I'd be willing to request a controller in my next order with them.

I've posted what I have received from my manufacturers about these strips at:

http://www.insomnia.org/S301.pdf

Nothing exciting there, though, mostly just marketing blurb. I do think these are only 12 bit color strips though (4 for each of r, g, b) as the documentation claims 4k colors per LED (this could be a controller limitation, too. I've received controllers where it's obvious someone used a regular 'int' to track the number of 'pixels' and thus they're useless for LED strip lengths > 8M).

I'm unfortunately stuck working this beautiful day for my day job, so I'm going to take a crack at trying to talk to this thing as if it were one of those PCA9626 chips today.. maybe I'll get somewhere if they used this chip as the inspiration for this design..

BTW - shameless plug for myself - I do sell the same strips Adafruit does at a better price and with better availability (since that's what started the thread) :). The same site with the PDF can take you to my store, if anyone is interested.

Just an FYI, I've still yet to have any luck getting these strips to do much of anything.

I do believe that the company that makes the ICs on these strips may indeed be the company manufacturing them, too. I came across this:

http://www.db-ic.com/dbic/EN/showservice.asp?id=61

db-ic.com is responsible for the D7001/D7002 chips as seen on these strips.

Still no datasheets or programming specifications, though.. :frowning:

With the help of some friends from the Amsterdam Hackerspace and the Meta group, I've hooked the controller for these strips up to a logic analyser and got some dumps. Bad news: it still doesn't make sense. Firstly, here are what a couple of the patterns look like looked like on a scope:

In both, the top is the clock line and the bottom is the data line. According to people there who know something about I2C this is not what an I2C clock signal ought to look like.

More interesting, here are a couple of dumps from the http://www.saleae.com/ a friend bought. Screen caps follow, but you can download the software from that link and play with the attached dumps yourself without owning the hardware.


It still doesn't make sense. For some of the patterns, after an initial burst of enthusiasm the controller seems to be sending nothing, despite the LEDs happily continuing their pattern. Maybe all the controller is doing is selecting one of a hundred or so patterns and telling the D7001 which one to display.

Links to the data files for the Salae: http://dl.dropbox.com/u/1432370/S301/R700-A%20LedController%20mode%2017.logicdata, http://dl.dropbox.com/u/1432370/S301/R700-A%20LedController%20mode%2018.logicdata

Does any of the above help anyone? Doesn't look like my original project is going to come off now :(.

ratkins:
It still doesn't make sense. For some of the patterns, after an initial burst of enthusiasm the controller seems to be sending nothing, despite the LEDs happily continuing their pattern. Maybe all the controller is doing is selecting one of a hundred or so patterns and telling the D7001 which one to display.

How many patterns are there that you can select from? Are there many or fairly few? If there are few, maybe you should just grab the waveforms and write a small library to basically play them back if that is all this product is capable of doing.

There are about 100 patterns, according to the prebuilt controller. Capturing the waveforms and playing them back is something we were going to try, but I had to leave town before Ian (from Dangerous Prototypes) came back with his Bus Pirate :-).

Building a completely custom controller and running custom patterns on these LEDs is kinda the point, if I can't do that I might as well use the built-in controller.

Any chance of getting some more samples of the controller output please? I know you said that the controller sends a burst of data then goes quiet but are the couple of examples you posted the entire output of one controller program select or just a subset?
EDIT: More questions,
If you listen to the DAT/CLK lines when the unit is doing a chase (assuming the controller does this) is the data continuous/repeated between controller and first chip and if not what about between nth & nth+1 chips?

It's a little tricky, my friends with the logic analysers and oscilloscopes are in Amsterdam and I'm now in Las Vegas (and not returning to Amsterdam until at least next year.) I'll check out SYN Shop (the Vegas hackerspace) and see if anyone there can help.

The first dump is the whole output; the second is a subset but it repeats like that the whole way. I know it would help if I could get video of the patterns synced to the logic analyser dumps and I'll try for that.

Ok, I was hoping for more examples because I am wondering if it's just plain old serial.
It does not look like one leg is a clock for data on the second leg. Maybe one wire sends the speed and the other the pattern as a 7 or 8 bit RS232 serial with one start & one stop bit?

I'd be surprised if that were the case, as upthread you can see the marketing pages which mention I2C and I also opened up the controller and found an I2C chip in there.

Doesn't explain the odd timing/waveforms, however when I was reading the datasheet for the PCA9626 chips they had a "go off and do this" mode for things like blinking/dimming and (perhaps, don't remember offhand) chasing.

Perhaps that's why the controller has a short burst of activity - it may just set the parameters and tell the D7001/D7002 chips to go off and do something. These strips may actually be more intelligent than the long chain of shift registers that the WS2801, LPD8806, and other strips are essentially made up of.

That was my thought too. I've had some contact with the LV hackerspace crew and there are people interested in helping, so we'll get to it post-Burning Man :slight_smile: