Custom WS2801 circuit design

Hi all,

I'm quite interested in designing something similar to what was discussed here, except I need 2 RGB LED's per board and the size and free space of my particular PCB is constrained, so I'd like to minimise part quantities / save space. I have considered a 6-channel driver (LPD8806), however, there doesn't seem to be much support or a proper datasheet for this IC. So, I was wondering how it's possible to use one WS2801 to power multiple RGB LEDs as in [Adafruit's square pixels](36mm Square 12V Digital RGB LED Pixels (Strand of 20) [WS2801] : ID 683 : $64.95 : Adafruit Industries, Unique & fun DIY electronics and kits Details); I don't necessarily need to individually control each LED, so their design seems relevant, but I'll most likely be limited to a 5V source as opposed to their 12V.

Here's what I established through examining their board:

  • 1x zener, resistor and capacitor used to clamp the voltage between 3.3V and 6V for the IC
  • 3x feedback resistors to set the forward current
  • 12V supply voltage and LEDs with 6 leads each suggest they are in series with each colour tied together. So another 3 resistors(?)

That still leaves one capacitor and two resistors; how are the rest of the components arranged? If my above analysis is correct, I wouldn't be able to put my LEDs in series with only 5V. Is my only option to use 2 WS2801s per board, or 1 LPD8806?

I'd appreciate your feedback. Thanks! :slight_smile:

Savoy:
I'm quite interested in designing something similar to what was discussed here

That link goes nowhere in particular. Care to re-link it properly?

Savoy:
except I need 2 RGB LED's per board and the size and free space of my particular PCB is constrained, so I'd like to minimise part quantities / save space. I have considered a 6-channel driver (LPD8806), however, there doesn't seem to be much support or a proper datasheet for this IC. So, I was wondering how it's possible to use one WS2801 to power multiple RGB LEDs as in [Adafruit's square pixels](36mm Square 12V Digital RGB LED Pixels (Strand of 20) [WS2801] : ID 683 : $64.95 : Adafruit Industries, Unique & fun DIY electronics and kits Details); I don't necessarily need to individually control each LED, so their design seems relevant, but I'll most likely be limited to a 5V source as opposed to their 12V.

Right there you've killed it. With most 5050 RGB LEDs having voltage drops between 2 and 3.6V, you can't run more than one, plus the IC, on a 5V line. There's a reason why those square pixels are made for 12V: the LEDs need it. They're wired in series. If you wire them in parallel, then you need one IC per LED (or use a multi channel IC, such as the LPD8806 or WS2803.)

As for documentation, there's plenty. However, there also plenty of libraries written for them making the job of controlling them easier than making coffee in the morning.

KirAsh4:

Savoy:
I'm quite interested in designing something similar to what was discussed here

That link goes nowhere in particular. Care to re-link it properly?

Fixed.

KirAsh4:
Right there you've killed it. With most 5050 RGB LEDs having voltage drops between 2 and 3.6V, you can't run more than one, plus the IC, on a 5V line. There's a reason why those square pixels are made for 12V: the LEDs need it. They're wired in series. If you wire them in parallel, then you need one IC per LED (or use a multi channel IC, such as the LPD8806 or WS2803.)

Thanks for confirming my thoughts regarding their series connections.

KirAsh4:
As for documentation, there's plenty. However, there also plenty of libraries written for them making the job of controlling them easier than making coffee in the morning.

I agree, but there seems to be much more documentation for WS2801, so I'd be most comfortable using this chip over the LPD8806 :stuck_out_tongue:

Ok, I had a feeling you were talking about my design. Once you are able to get past your 5V limitation, the sky is the limit. The RGB LEDs that I use, which are SMD by the way, have the following specs:

               Min.   Typ.   Max.
Forward V:  R  1.8    --     2.6
IF=20mA     G  2.8    --     3.6
            B  2.8    --     3.6

So, even on minimum requirements, two of them in series will require 3.6V, 5.6V, and 5.6V respectively. You’re already over the amount of voltage that you’re providing. You’re better off using an LPD8806 which has 6 channels. At <5.5V, each channel will put out 18mA, which is plenty.

As for documentation, what exactly are you looking for? There are plenty of datasheet available online. As for code, just look at the myriad of libraries that are available. I work almost exclusively with FastSPI which has support for many LED ICs, including both the WS2801 as well as the LPD8806. The latter is faster.

KirAsh4:
Ok, I had a feeling you were talking about my design. Once you are able to get past your 5V limitation, the sky is the limit. The RGB LEDs that I use, which are SMD by the way, have the following specs:

               Min.   Typ.   Max.

Forward V:  R  1.8    –     2.6
IF=20mA     G  2.8    –     3.6
            B  2.8    –     3.6




So, even on minimum requirements, two of them in series will require 3.6V, 5.6V, and 5.6V respectively. You're already over the amount of voltage that you're providing. You're better off using an LPD8806 which has 6 channels. At <5.5V, each channel will put out 18mA, which is plenty.

Yes. So if you were to directly answer the question in my initial post, you’d say 2 WS2801/board or 1 LPD8806/board are my best options.

KirAsh4:
As for documentation, what exactly are you looking for? There are plenty of datasheet available online. As for code, just look at the myriad of libraries that are available. I work almost exclusively with FastSPI which has support for many LED ICs, including both the WS2801 as well as the LPD8806. The latter is faster.

In terms of documentation, I’m looking for a proper manufacturer’s datasheet, being able to use others’ designs as a reference (a quick search of “WS2801 breakout board” is much more popular than “LPD8806 breakout board”) and general support - the RGB LEDs are an optional, peripheral aspect of this particular project, so I’d like to be able to implement this quickly and easily. I will look into FastSPI as it seems to support both these chips, but I’m not sure I’ll be using the Arduino IDE for the final design so it may require modifications. In terms of the datasheet, it seems you’re much more resourceful than I am; I’d be grateful if you could link me to the manufacturer’s English datasheet for the LPD8806 with timing information.

Thanks for your help!

Savoy:
Yes. So if you were to directly answer the question in my initial post, you’d say 2 WS2801/board or 1 LPD8806/board are my best options.

If you are confined with only 5V, then yes. If you’re also confined by space, go with the LPD8806.

Savoy:
In terms of documentation, I’m looking for a proper manufacturer’s datasheet

You’ll only get that if you know how to read Chinese. Everything else is translated.

Savoy:
I will look into FastSPI as it seems to support both these chips, but I’m not sure I’ll be using the Arduino IDE for the final design so it may require modifications.

You’re not required to use the Arduino IDE. FastSPI2 is a complete rewrite (and is still in beta), designed to work out of whatever IDE you wish to use. As of right now, you may have to do some fiddling with the library, but it shouldn’t be too hard to get it to work outside of the Arduino IDE. For more specific questions/issues, consider joining the Google+ community.

Savoy:
In terms of the datasheet, it seems you’re much more resourceful than I am; I’d be grateful if you could link me to the manufacturer’s English datasheet for the LPD8806 with timing information.

This is the Google result for a search on ‘LPD8806 datasheet’. First link. It has all the timing parameters listed. Though as I mentioned before, if you look at the FastSPI(2) library, it’s all already done for you. All you have to do is call the various methods.

While part of the goal of the FastSPI_LED2 rewrite was to make it easier to port to non-arduino dev environments, it's not 100% of the way there, yet, not sure when I will be able to dig into it.