The Yves ESP32_S3 I2S driver is a driver that uses the I2S peripheral on the ESP32-S3 to drive leds.
Originally from: https://github.com/hpwit/I2SClockLessLedDriveresp32s3
This is an advanced driver. It has certain ramifications.
- You probably aren't going to be able to use this in ArduinoIDE, because ArduinoIDE does not allow you to put in the necessary build flags. You will need to use PlatformIO to build this.
- These flags enable PSRAM.
- Once flashed, the ESP32-S3 might NOT want to be reprogrammed again. To get around this hold the reset button and release when the flash tool is looking for an an upload port.
- Put a delay in the setup function. This is to make it easier to flash the device.
- Serial output will mess up the DMA controller. I'm not sure why this is happening but just be aware of it. If your device suddenly stops works, remove the printfs and see if that fixes the problem.
- You MUST use all the available PINS specified in this demo. Anything less than that will cause FastLED to crash.
- Certain leds will turn white in debug mode. Probably has something to do with timing.
Is RGBW supported? Yes.
Is Overclocking supported? No.
What about the new WS2812-5VB leds? Kinda. We put in a hack to add the extra wait time of 300 uS.
What are the advantages of using the FastLED bindings over the raw driver?
- FastLED api is more user friendly since you don't have to combine all your leds into one rectangular block.
- FastLED api allows you to have different sized strips which will be upscaled to the largest strip internally.
What are the advantages of using the raw driver over the FastLED bindings?
- The raw driver uses less memory because it doesn't have a frame buffer copy.
Definition at line 59 of file Esp32S3I2SDemo.ino.