You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have worked with WS2812B on ESP32.
Implementation I have seen make use of the RMT module on ESP32.
When controlling strip with many pixel, I have seen glitches. Perhaps similar with #139 or FastLED/FastLED#719
I have analyzed the wave form generation with Saleae Logic and I have concluded that timing cannot be guaranteed.
Event with half RMT block, the interrupt is not guaranteed to be processed.
My approach was to use DMA and the SPI controller. The DMA guarantees no glitches and free the CPU at the cost of memory usage.
The ESP32 does benefits form a decent amount of RAM.
Please update to latest NeoPixel library (currently 1.10.7). RMT has been used on all ESP32 variants for a while now, can confirm zero flicker w/300 pixels on ESP32, S2 and S3.
I have worked with WS2812B on ESP32.
Implementation I have seen make use of the RMT module on ESP32.
When controlling strip with many pixel, I have seen glitches. Perhaps similar with #139 or FastLED/FastLED#719
I have analyzed the wave form generation with Saleae Logic and I have concluded that timing cannot be guaranteed.
Event with half RMT block, the interrupt is not guaranteed to be processed.
My approach was to use DMA and the SPI controller. The DMA guarantees no glitches and free the CPU at the cost of memory usage.
The ESP32 does benefits form a decent amount of RAM.
I have been using this approach in another library : https://github.com/Kyklas/SmartLeds/blob/esp-idf_hass-light/src/SmartLeds.h#L442
Would Adafuit_NeoPixel consider integrating support for DMA SPI control of neopixel and alike LEDs ?
The text was updated successfully, but these errors were encountered: