I am encountering a critical issue with the WS2812 (LED_WS2811) component on the ESP32-C6 in FC10. While basic GPIO functions (like blinking a standard LED) work perfectly, the WS2812 component causes a system crash during initialization.
Environment:
- Target: ESP32-C6
- Toolchain: Flowcode V10 / ESP-IDF v5.3
- Hardware: ESP32-C6 DevKit (WS2812 on GPIO 8)
My findings so far: I have investigated the generated C-code and the CAL files, and it seems there is a fundamental mismatch between the Flowcode CAL layer and the current ESP-IDF requirements for the C6:
Hardcoding the Pin: I attempted to bypass the "538" pin error by hardcoding config.gpio_num = 8; in ESP_CAL_RMT.c. This stopped the crash, but the LED does not light up and the program hangs.
Driver Mismatch: When I tried to add modern RMT configuration members like config.clk_src or config.flags.with_dma, the compiler (v5.3) returned errors stating that these members do not exist in the structure: error: 'rmt_config_t' has no member named 'clk_src'
Legacy vs. New Driver: The error logs mention rmt(legacy). It appears that for the ESP32-C6, the ESP-IDF requires the new RMT driver model, but the Flowcode CAL file (ESP_CAL_RMT.c) is still using the legacy structure which is incompatible or incorrectly mapped for the RISC-V based C6.
Strange Defines: I also noticed that the generated code for the WS2811 component contains STM32-style register defines (MODER, BSRR), which suggests a fallback to an incorrect architecture's macro definitions.
Conclusion: It seems the RMT/WS2812 CAL needs an update to be fully compatible with the ESP32-C6 and the newer ESP-IDF versions it relies on.
Has anyone else successfully used RMT-based components on the C6, or is there a patch available for the ESP_CAL_RMT.c file?
Note: I would like to mention that I was guided through these technical findings by Gemini (AI). This summary and the analysis of the compiler errors were also co-authored with AI to ensure all technical details were captured correctly. It’s been a great help in pinpointing what seems to be a CAL/IDF version mismatch.