ws2811 led strip malfunction

Hi!

I am having a problem with a ws2811 led strip that is addressable every 3 leds.

The first pixel (the first 3 leds) work correctly. The rest of the pixels appear to be full white. it always happens that the first pixel works correctly, and all the following pixels fail, and if you cut this first pixel and connect the arduino to the second pixel, which will be now the new first pixel, the same happens; this new first pixel works correctly, and the rest of the led strip works.

As I found another ws2811 led strip that works ok, what I did was to use one pixel from the led strip that works correctly as the first pixel, and the rest of the les strip from the led strip that doesnt work correctly. The result: PROBLEM SOLVED.

My conclusion is then that there is a function that the first pixel of a led strips perform, and the rest do not.
My question is then: What is this function?

You will need to post details (links) to the strips your talking about. Pictures or drawings of how you have it wired up and also post your code (In </> code tags).

thank you very much for your interest!

this is the led strip:

http://www.ebay.com/itm/321708799235?_trksid=p2057872.m2749.l2649&var=510611086337&ssPageName=STRK%3AMEBIDX%3AIT

the wiring is as it should, and the code is irrelevant since it is not a project related concern. It is a general question on how an addresable led strip works.

The first chip (pixel) should be no different to any other the others. The problem is probably due to either a faulty strip/wiring, code timing, voltage or a combination of all three.

I know that physically the first pixel is no different than the other. But I believe that there must be something different in it way of working.

there is no problem with wiring, coding, voltage. If there would be a problem with any of this, there would be no led strip thaT works correctly in a system where any of this fails. As exposed, the system fails only with this specific led strip.

The first chip passes the data on to the next and so on. Therefore if your signal is not getting past the first pixel there is something wrong with your setup. Have you put a 510R resistor in seriese with the data pin. Have you a capacitor across the external supply to the strip? Are all the grounds connected together?

The GND is connected correctly

The resistor is there

I have no capacitor to try out

I beg to insist: if there would be something wrong with the set up, why does this setup fail only with this led strip, and not with other?

Also, as exposed at the beggining of the thread, when I replace the first pixel from the led strip that doesnt work correctly, with a pixel from another led strip that does work, the whole thing works now correctly.

Each LED creates its own output timing. The output of the first LED is not necessarily a copy of the input signal. Maybe you have a 400/800Hz strip/code mixture problem. Or are you using your own driver for the serial stream?

camilozk: ... and the code is irrelevant since it is not a project related concern. ...

And there is your problem in a nutshell!

Missing the forest for the trees. :grinning:

I told you, that strip is not passing on data to the next led in the strip. There is something wrong. In electronics you oftan have conditions “on the edge” where less that optimal conditions can result in the circuit not working with components on the extreme of the tolerance range.
You are doing something wrong, it is just that on your working system the tolerances are on the good side to allow you to “get away with it” for the time being.

In the absence of any solid information about what you are doing it is hard to say what you are doing wrong, but I would start with the capacitor. Physics is oblivious to your position of a capacitor.

I am sorry I am upseting you guys :smiley: I am dealing with this problem for 3 days now and I really think that is the led strip and not the code, because the code is tested with other led strips, as well as the setup.

I understand what you say mike, and I will have to try the capacitor as soon as I can get one.

In the meantime:

led strip: http://www.ebay.com/itm/321708799235?_trksid=p2057872.m2749.l2649&var=510611086337&ssPageName=STRK%3AMEBIDX%3AIT

code: is based on http://mrossphoto.com/wordpress32/neopixel-ws2812-dlw/ The project here is actually based on ws2812b, and I am using ws2811, but since it is a “neopixel library” project, you change the strip on code.

my code is attached

ws2811_cube_80px_1set.ino (13.8 KB)

camilozk: I am sorry I am upsetting you guys.

Nah, it is almost always the other way around.

camilozk: I am dealing with this problem for 3 days now and I really think that is the led strip and not the code, because the code is tested with other led strips, as well as the set-up.

And that is precisely why I suspect the code, because we know the code (timing) is so critical. The difference between chip tolerances is to my mind, most likely in the timing (and the idle logic state).

As I am commanded to be off to bed now, I am not in a position to examine it, but note other dissertations on the code which suggest that each WS2811 or WS2812 chip actually re-times the code it repeats. While this may seem to be a "good thing", it can in fact cause the first chip to accept the data, but permit the data it repeats to cause a chip reset on those following.

I am looking forward for your further examination of the code @Paul__B

There is something that I didnt mentioned because I "was" so sure that the led strip was the problem:

1- the problem is not a fix problem. It varies with time and with the manipulation of the strip

https://www.youtube.com/watch?v=UdMADISNm1E https://www.youtube.com/watch?v=HetsrfQmBxk https://www.youtube.com/watch?v=QJzbGQL4kvM (where this isolated coloured flashes on different pixels are a malfunction)

Is it possible that at the led strip specifications;

Adafruit_NeoPixel strip = Adafruit_NeoPixel(80, 23, NEO_GRB + NEO_KHZ400);

changing NEO_KHZ400 for NEO_KHZ800 solves the issue?

camilozk: Is it possible that at the led strip specifications;

Adafruit_NeoPixel strip = Adafruit_NeoPixel(80, 23, NEO_GRB + NEO_KHZ400);

changing NEO_KHZ400 for NEO_KHZ800 solves the issue?

Are you saying changing to NEO_KHZ800 has fixed your problem?

no, but I also havent seen it fail again since I changed it...

This is a 12V strip correct? the LEDs are connected in series in groups of 3, then those groups of 3 are connected in parallel, so you can only remove 3 at a time.

griffin175: This is a 12V strip correct? the LEDs are connected in series in groups of 3, then those groups of 3 are connected in parallel, so you can only remove 3 at a time.

|500x500 The LEDs are in series groups of 3, each group is controlled by one WS2811 chip. The 12V to the chip is decoupled by the resistor and capacitor.

So i bought a WS2811 strip, the title on ebay suggested 5V individual adressable leds, but i have received one with 3 leds in series like the picture above.

My problem is that only my red LEDs is working :\
I have tried both the fastled and NeoPixel library with the same results.
I have only tried with 5V since that is what the ebay item said, but the led strip is marked with 12V.

Is this strip supposed to be powered with 5v or 12v?

http://www.ebay.com/itm/111880048229?_trksid=p2057872.m2749.l2649&var=410848208764&ssPageName=STRK%3AMEBIDX%3AIT

Is this strip supposed to be powered with 5v or 12v?

12V, look at the PCB at the cut points. It says 12V on the web site, did the ones you get say 12V as well.

With this system all three LEDs within the cut lines will show all the same colour and will just look like one LED to the software libiary.