Shift Registry Question

Hi guys I'm fairly new to eletronics and what not so I'm not too sure whats the best really...
I'm planning on making a pretty big LED wall but I'm not too sure what to use
I've seen a ton of video of people using the WS2801 but it's quite expensive the cheapest I've found is 50 for 20USD
I've also heard great things about the 74HC595 and it is quite cheaper 100 for 20 USD
so my question is Which one is better for a big LED wall?

the WS2801 can sink twice as much current, and it supports pwm meaning you can set the brightness of each LED if you wanted more than full on full off operation, but it appears to be in surface mount only so you will either have to make a board (not that hard) or cut some pads in half on a perforated board and solder wires, which is also not that hard, but fiddly.

(29 bucks for 100 aint bad)

or buy that little breakout board they have next to it on the page above

It might be good to know what you mean by “pretty big LED”.

The 74HC595 is a general-purpose logic device (not specifically for LEDs). It has 8 outputs (for 8 LEDs), but it doesn’t have built-in current limiting so you need a current-limiting resistor for each LED. (You can get “resistor packs” with 8 resistors in one “device”.

The WS2801 is a special-purpose LED driver chip. It has 3 outputs for 3 LEDs or for one RGB (multi-color) LED. It also has built-in current-limiting and built-in dimming features.

I can’t tell you not to consider cost… But, it’s usually better to look for the best or easiest solution rather than the cheapest solution, especially when you are building a one-off gizmo. If you are building & selling hundreds or thousands of an item it becomes really important to minimize cost.

Just to complicate things more for you… :smiley: [u]Maxim[/u] makes several constant-current LED drivers with up to 16 outputs. But, I think they are more costly than what you’re considering. I’m using 6 of Maxim’s 8-port LED drivers in my current project to drive 48 LEDs.

Wow thank you for that link I already bought 50 for 20 usd and it was free shipping but on my next buy (Which i probly will need more) I will buy some from these.
Another question

Do you guys know any places where I can find good schematics examples for the WS2801? I'm not too sure how I should go about wiring I don't want to mess anything up.
I've seen this example and it looks great but What resistors are they using and what other chips are on there?

Yeah I've seen some of maxims stuff its really nice but so expensive D:

The datasheet has all the info you need, though comprehending datasheets is something that just comes with time and meddling with stuff

This is a RGB driver, so what you have is one per LED (and in turn there are 3 LED's per package), if your using just one color LED well ... you have a chip that can drive 3 LED's, if thats the case ignore the whole RGB on the sheet.

Page 2 is what I call the death page, it shows you min and MAX ratings of the part, its best to stick near typical, and never exceed max ... in fact dont get within 10% of max.

If you scroll to page 5, you will see how to chain them

Page 8 shows you an example using the part to modulate a high voltage side, ie if you wanted to some rebels at 12 volts pushing 300ma, which one will leave you color blind for a second, hate to imagine a large wall of them...

Page 9 shows you an example if your LED's exceed the current ratings of the part (50ma per channel max)

12 shows you an example of clock vs data so you can program it .. if there is not a library already (and if there is not, theres plenty of help here)

and page 15 shows there is a though hole DIP package, but f if I know where to fine one heh

I think your biggest issue is going to be finding a power supply for a wall-o-LED's, and maybe speed depending on row * column * *colordepth (or grey scale) counts

Yeah I've seen some of maxims stuff its really nice but so expensive D:

OMG yea maxim is expensive, I recently went out to find MAX232 chips, they convert normal RS232 serial signals to inverted TTL serial signals that are micro happy, at digikey for the maxim part is 3.76$ EACH, the totally compatible, slightly better performing Texas Insturments clone .... 85 cents each

guess which one I chose

You could also look at WS2803, can drive 18 LEDs (or 6 RGB LEDs) each.

These guys are the only ones carrying them that I’ve seen.
I bought 25 (DIP) recently but haven’t done anything with them yet.

WS2803-preliminary-En.pdf (437 KB)

Thanks for the reply I was reading through the datasheet and as a newbie to electronics I have no clue what most of it ment but thank you for clearing some of it up, ill definite print this up and give it a good read.

Also @ Crossroads wow those chips are awesome I really wish I had seen those earlier they are great for the price...Ill try to use them on my next run quick question tho are they compatible with the WS2801 or would I have to use different systems for the chips?

Supposed to be compatible - Haven't read the datasheet in detail, I would imagine you just send out 6x more of the same type of data vs WS2801.

A big plus for hc595 is the output latch: it allows the display to be updated once, thus no flickering. Not to mention its wide availability. But you cannot (practically) manage grayscale for individual bits - you can manage the grayscale for all bits, however.

A big plus for ws280x is the ability to manage grayscale for individual bits. However, their output is transparent so the display gets updated as the data is piped in. Not to mention the gap time between each frame.

So if you need to drive individual leds differently (uneven leds for example), go with ws280x (the issue for large number of leds driven by ws280x is the long transfer time -> flickering). Otherwise, hc595 is a better choice.

Another option - use MAX7219, can drive 64 LEDs. All will have the same 31 level of intensity control. It does the multiplexing at 800 Hz, no flickering. Update with SPI transfers, nice & fast. 4 chips driving 256 LEDs, make them the high brightness kind, light up your room pretty nice!

Or writing a max7219-compatible spi (or i2c) slave of your own, from an avr.

To me, devices like ws280x are nasty, with its non-latched output and a lack of cs pin.

Non-latched? You send out a serial data stream, wait 500 or 600uS, it acts on it. How is that non-latched?

CLK pin keeps low more than 500uS will make the WS2801 internal status register reset, and at this moment, the gray scale data in the data shift registers will be latched.

thanks for all the replies guys and sorry about a late reply but all the parts just got here and I've tested out my circuit and it turns out I need more voltage.

I'm currently running 4 5050 LED's in series and it requires about 12 volts problem is the WS2801 only does 6 volts without a diode.

I have come up with two solutions...Include a diode and I was considering if this diode was the right one to use (If you guys could suggest any I would appreciate it)

Or would running 2 pairs of leds in parallel work better for my situation? (Diagram here:

Diagram in series (

if it were me in that situation I would run two pair in parallel, less parts, finer control of brightness to keep things even.

I think you need more than a diode - you need to have the WS2801 drive a transistor to sink current thru the LEDs.
See the figure 8 discussion on pages 9 & 10 of the datasheet.
WS2801 is still powered from 5V, the LED string with current limit resistor is powered from 12V.

@Osgeld:Okay thank you very much! :smiley:

I think you need more than a diode - you need to have the WS2801 drive a transistor to sink current thru the LEDs.
See the figure 8 discussion on pages 9 & 10 of the datasheet.
WS2801 is still powered from 5V, the LED string with current limit resistor is powered from 12V.

Ah okay does it need an independent transistor for each color?(RBG)
I've read through those several times I'm a bit too newbie to completely understand that.

Also is my diagram wired up correctly?

Yes, transistor for each color.
Use a resistor from arduino pin to base of transistor as well - driving the base is like driving an LED to Gnd with similar voltage drop, ~0.7V.
So (5V - 0.7)/20mA = ~220 ohm resistor

What diagram?

Oh alright thank you for your help I think ill just stick with the other solution since this would require 3 transistors.

The diagram to the other solution I was thinking of was this one

There are different versions of the ws2801 chip; some for 5v and some for 12v.

Daniel Garcia made a good library to use SPI EXTREMELY efficiently to drive most led strands (in the megahertz) the cost of some chip functionality because of how low level the code is.

LadyAda made a great library for SPI/and bitbang control of ws2801 - it's not nearly as efficient but it easily outputs hundreds of frames per second on a 64 rgb strand.