Go Down

Topic: 100 ws2812b strips (each 60leds) with 1 mega? All strips show same pattern (Read 500 times) previous topic - next topic

mchangxe

Hi guys,


General context:
My project right now involves ~6000 LEDs and maybe more, in 100 strips of ws2812bs, divided up to 3 panels (so each panel has 2000 leds, ~33 strips). I do not need a matrix setup in that I just need all the led strips to have the same color and receive the same data.

The problem:
Currently, I have all of the data wire of these strips connected to a single pin on the Arduino Mega (not daisy connection, but parallel). The problem with this is that, the first panel of 2000 led works fine, but the second panel of 2000 leds flicker and show a weird glitched rainbow color.

My current idea of the situation:
I read that if multiple strips are connected to the same pin, mirroring each other, the data signal from the mega will slowly degrade across more and more strips, leading to strips not lighting up in the right color correctly. I am thinking this is currently what's happening with my setup, since the first panel of strips works but the second panel do not.

My Question:
I am not using any resistors on the data wires as suggested by the Adafruit website and I am currently not using any signal buffers to buff the signal coming out of mega. Before I change my whole setup to incorporate these things (and also learning how to make a signal buffer), I want to know if there's anything I can do with my current setup. I am using the FastLED library and all of my 100 strips of ws2812b are connected to 1 pin on the mega. I wonder if there's anyway to avoid this data degrade problem across multiple led strip.

What I want to try right now:
I want to have the second panel connected to a new pin, and control both pins with the FastLED library as the tutorial here (The mirroring strips section): https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples

Any ideas are greatly appreciated.

Thank you
Michael

Grumpy_Mike

Quote
I read that if multiple strips are connected to the same pin, mirroring each other, the data signal from the mega will slowly degrade across more and more strips, leading to strips not lighting up in the right color correctly.
No this is incorrect, The data signal is regenerated when passing through each LED so there will be no effect of the signal slowly degrading.

Quote
I am not using any resistors on the data wires as suggested by the Adafruit website
Why not? It is just a resistor. Try one resistor on each of your panels.

Quote
I am currently not using any signal buffers to buff the signal coming out of mega
No need to, unless the Mega is a long way from the panel. In this context a long way is in the order of about 3ft.

Quote
My project right now involves ~6000 LEDs and maybe more
The mega does not have enough memory to cope with more than about 2400 LEDs

Your problem is more likely to be the power supply and how you have wired it up.

CrossRoads

If the same color is sent to all LEDs, no memory is tied up.

Each strip needs power applied to both ends and possibly in the middle (depends how long they are).

To make a buffer, use some chips like 74AC244
https://www.digikey.com/product-detail/en/texas-instruments/CD74AC244E/296-32957-5-ND/1691809
with the inputs driven by the Mega and the outputs driving the WS2812B strips.
Put the 'AC244s close to the Mega and keep the wiring short & neat.
Then you can have multiple strips connected to each output, experiment with quantities and see where it stops working reliably.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

mchangxe

No this is incorrect, The data signal is regenerated when passing through each LED so there will be no effect of the signal slowly degrading.
Why not? It is just a resistor. Try one resistor on each of your panels.
No need to, unless the Mega is a long way from the panel. In this context a long way is in the order of about 3ft.
The mega does not have enough memory to cope with more than about 2400 LEDs

Your problem is more likely to be the power supply and how you have wired it up.
Hi Grumpymike, sorry if I made this part little confusing. All the strips are connected in parallel, both as in power and as in data. So Im sure the power is not a problem. And since all leds are connected to the same pin on the Arduino, (not daisy chain) this led me to believe that the constant "splitting" of data causes it to degrade.

I actually solved the degrading of data by following the fastLED mirroring strips. Now I have individual panels linked to different pins on the mega.

mchangxe

If the same color is sent to all LEDs, no memory is tied up.

Each strip needs power applied to both ends and possibly in the middle (depends how long they are).

To make a buffer, use some chips like 74AC244
https://www.digikey.com/product-detail/en/texas-instruments/CD74AC244E/296-32957-5-ND/1691809
with the inputs driven by the Mega and the outputs driving the WS2812B strips.
Put the 'AC244s close to the Mega and keep the wiring short & neat.
Then you can have multiple strips connected to each output, experiment with quantities and see where it stops working reliably.
thank you crossroads. Next time when I scale up the amount of strips and leds again I will for sure look to try this out. I solved the problem with connecting different panels of 2000 leds to different pins on the mega. I think the signal is still degrading in my solution, but at least its every 2000 leds sharing 1 pin other than 6000 leds sharing 1 pin.

Grumpy_Mike

Quote
All the strips are connected in parallel, both as in power and as in data. So Im sure the power is not a problem.
In no way do those two sentences belong together, you can not make that conclusion.

Quote
to believe that the constant "splitting" of data causes it to degrade.
What do you mean by constant, there should be only one point of split no matter how many strips you have.

Go Up