Go Down

Topic: Having trouble with WS2801 - Only first LED lights. (Read 22779 times) previous topic - next topic

stubblepoo

I am having the exact same problem.
I got the LED's cheap through ebay from china and I am thinking they might be busted.
You manage to fix the problem?

Zeustopher

As far as I could tell, my strands were defective. I worked with the company I bought them from and I sent them back and got a refund.

Since I was trying to get this project done for Christmas, I haven't had a chance to buy new strands since it isn't a 'top priority' any longer. I'll be picking up a few strands again in the coming months. So, sorry but I'm no help.

Paul__B


As far as I could tell, my strands were defective. I worked with the company I bought them from and I sent them back and got a refund.


I believe I have some rather bad news for you.

Your posting has provoked me into setting up a chain of these "pixels" that I purchased a few months back, which having wrangled the libraries - an educational experience in itself encountering some less than helpful instructions on the Adafruit pages confusing upper and lower case - I now have joyfully chasing and surging up (and down) my bookcase.  Well, bully for me, but clearly pleasing.  (OK, they have started to worry me - now turning them off!)

The point is - the behaviour you describe, of the first pixel turning on when you apply power, and changing colour when you touch the wiring, is entirely normal and in fact demonstrates that the pixels are in perfect order.

I have to conclude then that in your case, the control input lines were simply not connected to the Arduino.  They are high impedance (CMOS) inputs and will readily pick up random interference, even radio signals in some cases.

How this could have happened is then the question.  If you connect the data outputs instead to the Arduino, then the input wires at the other end would be sensitive to this interference.  (The data output wire is buffered, so holding it down does not affect the input.)  You apparently did try swapping end for end.

I have checked various cases of the pin behaviour on the Arduino.  With the Arduino off (no power), all ports are necessarily pulled down to ground and cannot float.  While they do float in reset, and with an alternate sketch that does not define the pins to which you have connected the pixels, I am unable to generate any interference to "spook" the pixels when they are turned on under these circumstances.

I have to conclude therefore that the behaviour you describe indicates no code fault, normally functional pixels,  but that the connections of the pixel chain control inputs (possibly including the ground) were simply not made however that may have happened.

(And I trust just in case, that you did try swapping the green and yellow wires as a test.)

matt79

I got my first arduino and 3 pcs WS2801 pixels last week.

I was following this guide however only the LED at the output side of the string glows white.
while running the colorswirl program posted on above link sometimes the led does flash between the colors but only if i start wiggling the cable at the LED side a bit.

I already changed the cables between the led strip and the arduino, and tried a other LED strip but it has the same issue.

When i connect the led strip to power only it also only glows 1 led.

Paul__B


I got my first Arduino and 3 pcs WS2801 pixels last week.


Looks like a reasonably reputable site.


I was following this guide however only the LED at the output side of the string glows white.


The output side?  The end opposite the connection to the Arduino?


while running the colorswirl program posted on above link sometimes the led does flash between the colours but only if i start wiggling the cable at the LED side a bit.


What do you mean by "LED side"?  This clearly suggests a faulty connection, or wrong connection.


I already changed the cables between the led strip and the Arduino, and tried another LED strip but it has the same issue.


And of course you have ensured that the Arduino ports you have connected match those specified in the code, and just in case, tried exchanging clock and data?


When I connect the led strip to power only it also only glows 1 led.


At the "input" end.  Normal - in fact correct - behaviour for an unconnected input.

If you have tried two or three strips, I would be virtually certain that either the connections you are using or the code are wrong.  (Ground rule of this forum.  :D)

SubFusion

I had the same problem, THE SOLUTION IS HERE:

You must send the entire RGB bytes Times LEDS at once, no time spacing between LEDS.

This will procedure will set a 5 m WS2801 strip at a specific color. By using SPI it might be hard to
time when to send next byte so i wrote this:

Good Luck.

Simon


void Send(BYTE R, BYTE G, BYTE B)
{
BYTE x;
BYTE y;
BYTE r1, g1, b1;


CLK = 0;
// LEDS on stip
for(y=0; y<32*5; y++)
{
//restore color
r1 = R;
g1 = G;
b1 = B;

// first RED
for (x=0; x<8; x++)
{
DAT = 0;
if (r1 & 128) DAT = 1;
r1 = r1 << 1;
CLK = 1;
Delay1TCY();
CLK = 0;
Delay1TCY();
}

// GREEN
for (x=0; x<8; x++)
{
DAT = 0;
if (g1 & 128) DAT = 1;
g1 = g1 << 1;
CLK = 1;
Delay1TCY();
CLK = 0;
Delay1TCY();
}

//Blue
for (x=0; x<8; x++)
{
DAT = 0;
if (b1 & 128) DAT = 1;
b1 = b1 << 1;
CLK = 1;
Delay1TCY();
CLK = 0;
Delay1TCY();
}
}

}

adrianjuaneli

You need to check out the volts of led bulbs. If it is not proper fix, The complete device will shows error. Led bulbs are good at working and available at affordable prices.
parabolic light reflector

Paul__B

Those latter replies are confusing the issue on this topic.

As previously explained, if only the LED at the opposite end to that connected to the Arduino lights, erratically, and flickers when you handle the wiring to that end, it is because that is the actual "input" end of the chain and you have connected your Arduino to the wrong end.

This happens because the WS devices are CMOS with a very high input impedance and respond to static and induced current from your hands.

frankG

I appreciate that my reply is perhaps a bit late for the posts made here but I had the same problem - the first LED in the string does something but the string does not work. I also did not buy into the solutions discussed, so  I did my own analysis and the answer is this:

The wiring  described  is just wrong! The correct wiring is RED - +5V ;  Yellow - GND ; Green - SDI ( pin 3 on Arduino Uno ) and Blue - SCK ( pin 2 on Arduino Uno). 

I know this because I dissected a pixel and looked closely at the circuit board. A quick rewire and all is well.
This may be too late for some but hopefully it will alleviate further pain and frustration. For those who had to give-up it may bring you some closure - from years of experience: never fully trust the data sheet.   

kleinejan

Thread almost died, I know. But yesterday I had the same problem. So after reading "the internets" and stranded here, stuff still did not work. So I figured, perhaps the Data and Clock are switched. After switching the wires. Not only the first pixel, or after some wiggling the second X. No everything worked :) If you ever have this problem, also try to switch the Data and Clock wires.

Paul__B

If you ever have this problem, also try to switch the Data and Clock wires.
Basically what I mentioned back in reply #17.

Go Up