ESP32 and WLED

P. Short

Super Moderator
Staff member
Recently I came across a one- or two-line comment in a forum somewhere or other mentioning that an ESP32 running WLED is capable of driving a number of ports at a time, perhaps as many as 10. Does anybody know the extent of this, what the caveats and limitations are, and (at a low level) how that is being accomplished?
 
DIG-OCTA from quinled runs WLED by default and supports 8 pixel ports. Dont know if they are HW or SW driven outputs. I suspect SW since they do not seem to have any HW assist code (as of 18 months ago).
 
WLED uses NeoPixelBus which added specific support to several processors:

ESP32/ESP32S2 I2S x8/x16 Parallel channel support

Using DMA to move data, then re-arranging the bits and send the appropriate signals through multiple pins. I don't understand it but I2S signaling is involved hence the I2S part of comment. Reading through the issue discussions, it looked like some people that worked on similar code for FastLed were involved. So, some people that are pretty good with micro controllers contributed their ideas and code. Each little piece is kind of easy to understand. It would take me many readings to understand it but not terribly difficult code nor is the software implementation they exposed hard to use. Their implementation doesn't look to be hugely different than the PIO implementation on the Raspberry Pico. Just that they don't have the PIO to do the work.

If you read through either WLED or the NeoPixelBus documentation, they point out the specific ESP32 they can currently do multiple output on. This is good resource for that information: https://kno.wled.ge/features/multi-strip/
 
Back
Top