Trying to control 450 WS2813 LEDS

I'm trying to control 15 meters of WS2813 strips, for a total of 450 LEDS.

A friend of mine has created a board to give power to the leds. It seems working fine, the power is correct. The strips are powered every 2mt, they share the ground with the board (an ESP8266) and the DATA (I've used only one of the two data lines available on the WS2813 strips).

The problem is that the LEDS don't work as expected. If I choose a solid color, I can see multicolored spikes on every strips.

They are somehow controlled in the right way, I mean if I use an animation I can clearly see that the LEDS animation is correct, but the colors are randomly wrong. Mainly there are some colored spike on the LEDS affected by the animation.

Also I've seen that if I decrease the number of LEDS till 70, only the first 70 leds are correctly powered and used (even with the unwanted spikes), If I set the numbers of LED to 71, than almost 180 LEDS are powered.

It's totally a mess.

I can't post the whole program here, since is too complex, but I've tried this one on GitHub to test the LED strips, and the behavior is exactly the same, so I think it must be something not strictly related to my implementation.

Any suggestion?!

An esp8266 isn’t a good candidate to write out large numbers of less like you are doing because the OS of the WiFi chip takes over control of the device every so often and interrupts the write out of the led data in order to make sure it it still connected to the network. The more leds you are writing out the longer it takes to write them out and thus the more often the led write out will be interrupted resulting in data corruption that causes leds to glitch..

What I did is used a teensy and an esp8266. The teensy contains all the programs, and the esp8266 sends information to the teensy via serial.

I actually have modified that websever example to run on a teensy and esp8266. I’ll upload it when I get back the house.

Hi guys,
thank you for mentioning the problem of ESP8266 controlling the LED-strip simultaneously with communication.
Since this is not explicitly pointed out, I believe many people try to use even the ESP-01 for this purpose, with little success.

Well, if Teensy could at least close match the price of ESP, then I would anxiously wait until you "get back the house".

What I did was I used the ESP-32 two cores and run the WiFi-server as a normal sketch (core 1) and the LED sequence control in an own task in core 0. That way I do not move the problem from WiFi interrupts to serial interrupts (which are also a pain, if you try to use working time-sensitive Arduino UNO programs in ESP8266). The big advantage is, that the two cores can use the same memory, so there is no need to communicate with each other using interrupts.

The price of the ESP-32 is higher than ESP8266 but still much more reasonable than Teensy.

Still, please, give me a hint, if you solve the timing problem in ESP8266 (or even ESP-01).
I was even trying the use NeoPixelBus by Makuna using DMA or UART for the show method with not much success. It is very difficult to diagnose the communication to long LEDstripes (big LEDmatrixes) even with an osciloscope.