jspiva / LedPixelController

ESP8266 unicast E1.31 to WS2811/WS2812 WiFi controller, output up to 1360 pixels (8 ports/universes, 170 pixels per port, 4080 channels)
GNU General Public License v3.0
18 stars 7 forks source link

shift register for parallel data extend #2

Closed ScobbyDoo closed 3 years ago

ScobbyDoo commented 3 years ago

first of all ,great implementation of multiplexing :)

as you worked with multiplexer, what you think about to attach 2 UART,1 i2s , 1 DMA with shift register 74hc595 esp8266 have good enough ram & processing speed.

with high speed serial data line feed to shift register, we can drive almost 16 output line (each line can handle upto 300 led ~for batter refresh rate) using only 3 gpio.

https://github.com/Makuna/NeoPixelBus/issues/211

what you think?

jspiva commented 3 years ago

I like where you are going here, and thought about using the second UART as well. The main reason I didn't at first was that I was still working through testing and was using it for debugging purposes.

Now that I've had the code running for a couple of seasons, and have attempted to run more than 1000 pixels on a single esp-8266, I have decided it's not really worth it... With a 50ms refresh.. At 800 or so pixels, the wifi network starts showing a large number of retries getting the packets to the esp. At 1000 or so pixels the esp can't catch up, it become unable to refresh the pixels in time resulting in jumps and skips. I believe the esp's processor is just too busy receiving data and refreshing pixels, causing other requests to fail requiring retries.

I'm currently experimenting with the esp32, with it's faster dual processors, and RMT functionality I'm thinking it's worth spending time on instead of the 8266.

As for this project, I think I'm going to let it stay as is, I believe its good, I just think it has reached the limits of the 8266.