WS2803 versus WS2801

No. Both of them write the same amount. The WS2801 needs 24 bits total: with 3 channels, that's 8 bits per CHANNEL. The WS2803 needs 144 bits total: with 18 channels, that's 144/18 = 8 bits per CHANNEL.

I refer to color, color palette, which can generate these libraries.
the library WS2801 says 24bit full color "speed PWM drivers for 24 bit color per pixe". but the WS2803?

another question, I have connected to chit WS2803 with 3.3 volts. rgb led smd and 5050, without resistance, lights and all, but when I try main SW RGB LEDs blink while this is not a constant light.
I think that no resistance, that resistance should agregarles?

Here the datashiit of LEDs

http://www.ebay.com/itm/100-pcs-New-RGB-PLCC-6-5050-3-CHIPS-SMT-SMD-LED-Light-/170786097936?pt=LH_DefaultDomain_0&hash=item27c3a50b10

Omnimusha:
I refer to color, color palette, which can generate these libraries.
the library WS2801 says 24bit full color "speed PWM drivers for 24 bit color per pixe". but the WS2803?

Read the datasheet. Do your own calculations like I did above. They both provide 24 bits per pixel. 2801 only drives one RGB pixel (or group.) 2803 drives 6 RGB pixels (or groups): 6 x 24 = 144 bits, which is what the 2803 needs.

Omnimusha:
another question, I have connected to chit WS2803 with 3.3 volts. rgb led smd and 5050, without resistance, lights and all, but when I try main SW RGB LEDs blink while this is not a constant light.
I think that no resistance, that resistance should agregarles?

Again, read the datasheet. A resistor is required to set the proper current. You can't expect it to work properly if you don't follow the datasheet's instructions. If you want to go at it in your own way, that's great. It makes for fun experimenting. However, you have to expect things to behave very different than what's expected from them.

Omnimusha:
Here the datashiit of LEDs

http://www.ebay.com/itm/100-pcs-New-RGB-PLCC-6-5050-3-CHIPS-SMT-SMD-LED-Light-/170786097936?pt=LH_DefaultDomain_0&hash=item27c3a50b10

Those are the same ones I use and they work great, both with the 2801 as well as the 2803. The difference is, the 2803 requires 144 bits of data (8 bit per channel), whereas the 2801 only needs 24 (again, 8 bits per channel.)

ok, then.......

http://subefotos.com/ver/?a36a2513e7065f040792f69824e66389o.png

okay my calculations?

regards!!

Calculations for what exactly?

he edited his post.. that was NOT all there last night.. :slight_smile:

Still, I have no idea what he's calculating. That figure has to do with the supply to the IC, not what the LEDs need for current. The datasheet also specifically states what size resistor is needed for a 20mA current output. So I have no idea what he's trying to calculate here. But then, this is what happens when people don't bother to actually read the datasheet.

I thought I had been clear,
I need to calculate the resistance for LED, LED BY THE SPECIFICATIONS AND CHIT.

YOU KirAsh4, sorry if my ingnortacia bothers you, but if I inform
I read the datasheet. heurodito'm not in the field.
If you are uncomfortable with my questions, please disregard. I will not tolerate
their lack of repect.

As I said, the datasheet specifically tells you what size resistor you need for a 20mA output for driving LEDs. The LEDs you're using (or claim you're using) are 20mA per channel. I really have no clue what you're trying to calculate when the answer is stated very clearly in the datasheet, in other words, YOU DO NOT NEED TO BE CALCULATING ANYTHING, READ THE DATASHEET.

You probably want to remove those resistors. The ICs are supposed to control the current to the LED. If you had used shift registers (like the 74hc595), then you would want resistors (Im using similar LEDs, and I used 150 ohm on the red, and 100 ohm on the blue and green.
I was having problems, until I started testing my components individually, and I found that my LEDs were doing something different than I had expected.

Those resistors are not needed for your application.

I also told you a few posts back that every IC needs its own resistor. Your image still shows the reference resistor being shared.


Well, if you insist on putting resistors on your LEDs it might be fun to see what happens.

Like I mentioned in my previous post, I put 150 on the red, and 100 on the blue and green. This was for running them from 5volts. My LEDs did not list the forward voltage, so I had to solder up some resistors, measure the voltage drop, and calculate how much current. the goal was to find out what resistance I need from 5 volts to get 20ma current draw on each LED.

Im not an engineer, but my guess is that with the resistors on the LED like that will cause the WS2803 chip to send more current than it would otherwise, and may overload that chip. It will be interesting to see what happens.

What happens, when I connect the LED color without resistance, AFTER
A few minutes to observe that empesé started flashing LED.
RED LED consumes less volt OTHERS, SO LETS GO TO CHIT more volts.

What resistance should I put for these specs I described?

According to the datasheet on the 2803:
"The WS2803 ownes 18 output channels, each channel can
drive a constant current up to 30mA."

You can control the current at 20ma to the LED, you dont need to control the voltage.

Hi, if anyone could get the ws2803 to work beautifully with Vixen light sequencer using the generic serial plugin I'd love them to bits. The WS2803single library would be a good candidate I think? or FastSPI. Running 3x hex inverters > 18 N type mosfets increases the current capability considerably as well. Just need it to talk to Vixen and my setup will be good to go!

marklar:
The comments below are from initial testing only and are subject to change based on feedback.

Findings:
The 144 bit requirement means this chip needs to be fed in full 18 LED values. So if you have 52 LEDs, you have to say 54 LEDs in the setup and then just turn the last two off in your code if using the old library. I created a version of the single library that buffers the last part automatically allowing you to use 52 in your code.

Other notes:
The data does not go into the chips the say way. The order of the ports is normal 0 through 17 but the data is sent to each chip backwards. So if you have three chips, the first chip data should be chip 3 and the final chip data should be chip 1. An updated version of the library attached below - replacing the old one.

Updated Library:
Attached is the WS2803Single library:
Update 1) This version will buffer the difference if an increment of 18 LEDs is not used. Note that when you use numPixels() it will return the new LED count, not the value passed in. So if you start with 37 - it is buffered to 54 .. so numPixels() will return 54. In your code you can simply use the same value originally instantiated .. just do not rely on the numPixels method for this unless you want to include buffered LEDs not attached in your patterns.

Update 2) This library sends the data in the correct order (chips backwards - ports forward). This should make using the original library for WS2801 .. the singleWS2801 and this library work with no other change needed in the code outside the class and library names. Tested both SPI and bigbang methods.

I'm trying to get your code to work, but I get the following messages:

strandtest:28: error: 'WS2803Single' does not name a type
strandtest.ino: In function 'void setup()':
strandtest:31: error: 'strip' was not declared in this scope
strandtest.ino: In function 'void loop()':
strandtest:43: error: 'strip' was not declared in this scope
strandtest:45: error: 'strip' was not declared in this scope
strandtest:47: error: 'strip' was not declared in this scope
strandtest:54: error: 'strip' was not declared in this scope

good, so long as you start this project.

I have a problem and do not know how to fix it. the problem is the issue of
data storage.

for example, for an image of 24bits generarar, I have 3bytes separately for RGB. the image is 54 * 360Pixels. LedsRGB 54, which
R for a single channel, the data amount is 19440.

arduino which says that I have occupied 74% of the memory.

Would there be any way to store this data in a more efficient?
one could compress the image and then decompress when painting?

uint8_t R [] = {number of data = 19440}.
uint8_t G [] = {249,149,49,149,149,249,449, ............................ amount of data = 19440}
uint8_t B [] = {}