-
-
Notifications
You must be signed in to change notification settings - Fork 20
Description
Integration Log
The branch with the this driver is located at
https://github.com/FastLED/FastLED/tree/esp32s3-i2s
How to test in FastLED
clone fastled, switch to the esp32s3-i2s branch and open up the repo in VSCode
git clone https://github.com/fastled/fastled
cd fastled
git checkout esp32s3-i2s
./install # Optional, but it provides VSCode with intellisense definitions
code . # launch vscodeVSCODE: Click the upload button (the esp32s3-i2s branch already set to i2s demo for esp32s3)
the example will now load
First Pass Results
First pass required a fix. This has been applied, see below.
FastLED compiles with IDF 5.4 so it might be newer than you are on.
Manually tested yet? No.
ESP32-S3 I2S Compilation Issues and Fixes
Issue Description
The ESP32-S3 Blink example compilation was failing with the following error:
src/third_party/yves/I2SClockLessLedDriver/src/I2SClockLessLedDriver.h:685:35: error: 'gdma_channel_alloc_config_t::<unnamed struct>' has no non-static data member named 'isr_cache_safe'
Root Cause
The newer ESP-IDF version (used by the platform) has removed the isr_cache_safe field from the gdma_channel_alloc_config_t structure. The third-party I2S driver code was still trying to initialize this deprecated field.
Fix Applied
File: src/third_party/yves/I2SClockLessLedDriver/src/I2SClockLessLedDriver.h
Line: 685
Before:
gdma_channel_alloc_config_t dma_chan_config = {
.sibling_chan = NULL,
.direction = GDMA_CHANNEL_DIRECTION_TX,
.flags = {
.reserve_sibling = 0,
.isr_cache_safe= true}};After:
gdma_channel_alloc_config_t dma_chan_config = {
.sibling_chan = NULL,
.direction = GDMA_CHANNEL_DIRECTION_TX,
.flags = {
.reserve_sibling = 0}};Result
After removing the unsupported isr_cache_safe field, the ESP32-S3 Blink example compiles successfully. The compilation completes with only deprecation warnings (expected with newer ESP-IDF versions) but no errors.
Additional Warnings (Non-blocking)
The following warnings remain but do not prevent compilation:
- Deprecated
driver/periph_ctrl.hheader usage MINmacro redefinition warning- Deprecated
gdma_new_channelfunction (should usegdma_new_ahb_channelorgdma_new_axi_channel) - Narrowing conversion warning in ISR handler
These warnings indicate areas for future improvement but do not block current functionality.