Digital Addressable LED-strips

About a year ago, I ordered a few WS2801-type addressable RGB LED strips, and have been very happy with them since. Today I was curious how much they cost nowadays, and if anything new was out in China. It appears that a lot has changed since the last time I looked. Back then there were a few different chips, but the WS2801 was the only one doing 8-bit PWM, now there’s even a chip doing 12-bit PWM! However, it also appears that the protocol that was used back then (basic two-wire SPI) has been replaced by single-wire protocols requiring precise timing.

Seeing as there’s just too much choice and the information is scattered all over the place, I figured I’d do a summary of all I could find. Unfortunately I haven’t been able to actually get engineering samples of any of these strips, but I’m hoping that I can still compile a summary using only the datasheets. So here goes in alphabetical order!

Disclaimer

At this point I’ve only ever touched a WS2801 strip, and all this information is just collected from diverse forums and datasheets when I could find them. I can not guarantee this information is correct, and you should not take my word for it!

DMX512

While technically it’s not a chip type, there are a lot of strips being marketed as DMX512. Basically this is just a generic  chip talking the DMX512 protocol. Summarized this means: UART, but converted to RS485 (need a transceiver chip), 512 channels or 170 pixels max, 256 levels (8-bit) per channel, 250kbaud.

D705

I haven’t actually seen anyone talking about these in the western world, but they seem to pop up at Alibaba.com a lot, and most of the controllers there seem to be able to drive them. From the datasheet I found, they seem to be 5-bit per channel using what appears to be a 1.2MHz PWM. Another peculiar thing: They come in two different types: The D705A is the cheap one marketed towards ads, and the D705G has gamma correction built in and should be used for videos that “request for higher display quality”.

Summarized:

  • SPI (two-wire)
  • 5-bit per pixel (15bpp)
  • 1 pixel per chip (3 channels)
  • 4.5v to 7.5v operating voltage
  • D705G has gamma-correction
  • Datasheet: english

Available at

HL1606

The HL1606 was probably one of the first highly available chips. It’s SPI driven, although the chip-select doesn’t quite function as it should, and as such shouldn’t be too difficult to drive with whatever microcontroller you’re driving it with. There is one major drawback though, it basically only supports on or off on each channel. Yes, it has built-in PWM, but that can only be used to automatically fade between the two on and off states of each channel. If you’re willing to sacrifice a lot of CPU power, you can manually PWM it but it won’t be pretty.

Summarized:

  • SPI (two-wire)
  • 1-bit per channel (3bpp)
  • 2 pixels per chip (6 channels)
  • 3v to 5.5v operating voltage
  • No gamma-correction
  • Datasheet: english

Available at:

LPD6803

The LPD6803 is similar to the D705. It’s also SPI driven, has 5-bit per channel, and has a choice of gamma correction. However, instead of different chips, this chip decides on using gamma-correction or not by pulling a pin low or high. Gamma-correction thus doesn’t depend on which chip used, but on the circuit of the LED-strip. Another thing to note is that these chips do not have an onboard oscillator, and the PWM runs off the SPI clock, so you’ll have to keep that running to actually use PWM.

Summarized:

  • SPI (two-wire)
  • 5-bit per channel (15bpp), but needs SPI clock to stay active
  • 3v to 5.5v operating voltage
  • Gamma-correction, but depends on LED-strip circuit
  • Datasheet: english

LPD8806

The LPD8806 is another chip with a high bit-per-channel, coming in just under the WS2801 with 7-bit per channel PWM. It’s also capable of driving two pixels instead of just one seeing as it has 6 channels. A bit of a downside is that there is no publicly available datasheet, so the entire chip is shrouded in mystery.

Summarized:

  • SPI (two-wire, reversed by adafruit)
  • 7-bit per channel (21bpp)
  • Unknown operating voltage
  • Unknown gamma-correction
  • Datasheet: unavailable

Available at:

TM1803

This appears to be the first chip that actually has an english webpage with information. It’s 3 channels (1 pixel) per chip, 8-bit per channel, PWM frequency of at least 400hz (probably 400 full-cycles per second), but there’s one downside. It’s the first in this list not to use SPI, it’s on one wire, and it’s quite strict on timing. Each bit takes exactly 2.04us, and is split into three pieces of 0.68us where the first is always high, last always low, and the middle the actual bit to be sent. In some LED strips with high-speed mode set, this is even slashed in half!

With the timing of 0,68us, you’d need something with a multiple of 1.47MHz to be able to drive it. A 11,76MHz clock would only be able to execute 8 clock cycles inbetween each signal-change. And you’d have to be damned sure no interrupts will be interfering with that timing.

Apparently there’s a bit of leeway, so you could probably get away with a 20MHz frequency too, but it’s still pretty damned strict.

Summarized:

  • Single-wire, difficult to drive with a microcontroller.
  • 8-bit per channel (24bpp)
  • 5v operating voltage
  • No gamma-correction
  • Datasheet: english (webpage)

Available at:

TM1809

The TM1809 seems to be the big brother of the TM1803, having roughly the same specs yet allowing 9 channels per chip. The one-wire interface is similar, but the timing is slightly different, being 0.6us (600ns) per signal change and thus needing a microcontroller running at a (high) multiplier of 1.667Mhz (16,8MHz maybe?). Apart from that it’s roughly the same.

Summarized:

  • Single-wire, difficult to drive with a microcontroller.
  • 8-bit per channel (24bpp)
  • 3 pixels per chip
  • 5v operating voltage
  • No gamma-correction
  • Datasheet: english (webpage)

Available at:

TLS3001

The TLS3001 is another chip shrouded in mystery. I was only able to find a chinese datasheet at first, but luckily skip @ diyblinky.com has reverse engineered the protocol. It appears to have at least 12-bits/channel, making it a clear winner in that department. The protocol is single-wire serial, but it seems to feature an adjustable baud-rate. Basically this should mean that it’ll still be difficult with interrupts and the like, but you should be able to drive it regardless of the frequency of your microcontroller.

Summarized:

  • Single-wire, easier (not easy) to drive than other implementations
  • 12-bit per channel
  • 1 pixel per chip (3 channels)
  • operating voltage: 5v to 17v (?)
  • No gamma-correction (but do you really need that with 12 bits per channel)
  • Datasheet: englishchinese, and protocol reversed

Available at

WS2801

The WS2801 was apparently the best buy about a year ago, seeing as I’d actually bought three reels of that stuff back then. Looking at the other chips I only see it being surpassed by the TLS3001’s 12-bit-per-channel, but with a price. Either way, it’s a basic two-wire SPI protocol, 8-bit per channel, 3 channels/1 pixel per chip. There’s no gamma-correction, which means that the jump from 0/256 (off) to 1/256 duty cycle, or even 1256 to 2/256 duty cycle is pretty noticeable. But seeing as LPD6803, for example, gamma corrects a 5-bit value to 8-bit, I doubt anything lower than 8-bit/channel would be different even with gamma-correction.

Summarized:

  • SPI (two-wire), just raw data, latching is done by not sending anything for a specific time.
  • 8-bit per channel
  • 1 pixel per chip (3 channels)
  • operating voltage: 3.3v to 5.5v
  • No gamma-correction
  • Datasheet: english

Available at:

 Conclusion

If you don’t look at the price, the WS2801 still seems to be the winner in my eyes. It’s one of the easier to drive, yet features a full 8-bit PWM. If you need (or just fancy) the 12-bit PWM, the TLS3001 is the only way to go, but it’s risky seeing as the documentation is scarce.

Please let me know (comment on this post) if any of this information is incorrect, or if you’d like to add anything.

Also I’m in the process of trying to order some engineering samples of these, so there’s a chance this will all be updated in the near future.

Updates

  • 02-07-2012 16:15: Added the WS2801 section, somehow that one got lost. Let me know if I missed another.

6 thoughts on “Digital Addressable LED-strips”

  1. Hi Frans, i have just read this article, very good i think! And i hope you can continue to update, and i will do my best to help you. Of course, i still have some problems want to ask you.
    Thanks

  2. we are building a prototype with new LPD8806 led strip.

    This is the highest density intelligent/individually addressable LED lighting we can currently have made!

    Constructed on a flexible PCB and encased in an IP67 waterproof silicon jacket, this has 52 SMD5050 RGB LEDs per meter and 2 LEDs per LPD8806 IC. Each LED on this strip is controlled individually!

    we order from http://www.gree-leds.com

  3. Hi there,

    Im thinking of buying digital led strips, but i want the strips to be controlled by DMX 512. Can you tell me which strip is capabel for this? So, which IC is best for a DMX controller or is this not possible?

    Great piece btw, gives more insights on the different IC chips used. Maybe, if possible, u can add DMX compatibility…

    Thanx in advance!

  4. Fantastic list – thanks!
    I only use LPD6803S at the moment, these keep me amused and I have too many of them to change to something else 🙂
    Just noticed your link to the LPD6803 datasheet actually points to the HL1606 one.
    Keep up the good work. So good to meet other LED addicts…!
    Cheers,
    David.

Leave a Reply

Your email address will not be published. Required fields are marked *