I just received my Thing Plus ESP32-S3. When first powered, the RGB LED faded between colors.
I set the board and settings following the instructions on the “Arduino Examples” page. I doubled check the board types and made sure the changed settings matched. I left all other setting as is.
I tried the “RGB Example” and it compiled and downloaded without error.
The board did not work properly after the download. The RGB LED was a steady green.
I opened the Serial Monitor and got a rapidly repeating error message. It appears the this line in the error message shows the problem:
E (137) rmt(legacy): CONFLICT! driver_ng is not allowed to be used with the legacy driver
Can you help me fix this problem?
Thanks very much for your help.
The full serial output is below:
Rebooting…
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x18 (SPI_FAST_FLASH_BOOT)
Saved PC:0x40378071
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3818,len:0x109c
load:0x403c9700,len:0x4
load:0x403c9704,len:0xb50
load:0x403cc700,len:0x2fd0
entry 0x403c98ac
E (137) rmt(legacy): CONFLICT! driver_ng is not allowed to be used with the legacy driver
abort() was called at PC 0x4200920b on core 0
Backtrace: 0x40377a5e:0x3fceb200 0x4037c8dd:0x3fceb220 0x40382471:0x3fceb240 0x4200920b:0x3fceb2c0 0x4200cee6:0x3fceb2e0 0x40377d63:0x3fceb310 0x403cdb0a:0x3fceb340 0x403cdea1:0x3fceb380 0x403c9919:0x3fceb4b0 0x40045c01:0x3fceb570 0x40043ab6:0x3fceb6f0 0x40034c45:0x3fceb710
ELF file SHA256: 126c11852c22b594
E (166) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0
E (174) esp_core_dump_elf: Elf write init failed!
E (179) esp_core_dump_common: Core dump write failed with error=-1
The error you’re encountering is related to a conflict between different versions of the RMT (Remote Control) driver in the ESP32-S3. The message “CONFLICT! driver_ng is not allowed to be used with the legacy driver” suggests that there’s a mismatch between the driver versions being used.
To resolve this issue, you can try the following steps:
-
Update your ESP32 Arduino core:
Make sure you have the latest version of the ESP32 Arduino core installed. You can do this by:
- Opening the Arduino IDE
- Going to Tools > Board > Boards Manager
- Searching for “esp32”
- Updating to the latest version
-
Check your code for RMT usage:
If you’re using any RMT-related functions in your code, make sure you’re consistently using either the legacy or the new generation (ng) version, not both.
-
Modify the Arduino JSON files:
If the problem persists, you might need to modify some configuration files:
a. Locate the Arduino15 folder:
- On Windows: C:\Users[YOUR_USER_NAME]\AppData\Local\Arduino15
- On macOS: ~/Library/Arduino15
- On Linux: ~/.arduino15
b. Navigate to packages/esp32/hardware/esp32/[VERSION]/tools/sdk/esp32s3/include/driver/
c. Open the file “rmt_types_legacy.h” in a text editor.
d. Look for a line that says:
#define SOC_RMT_CHANNELS_PER_GROUP (4)
Change it to:
#define SOC_RMT_CHANNELS_PER_GROUP (1)
e. Save the file and try uploading your sketch again.
-
Use a different LED library:
If you’re using a specific LED library that might be causing this conflict, try using a different one or implement the LED control manually.
-
Check board settings:
Ensure that you have selected the correct board in the Arduino IDE:
- Tools > Board > ESP32 Arduino > ESP32S3 Dev Module
- Verify that other settings like
- USB Mode: Hardware CDC and JTAG
- USB CDC on Boot: Enabled
- Upload Mode: UART0 / Hardware CDC
- PSRAM: QSPI PSRAM
are all set
- Try a simple blink sketch:
If the problem persists, try uploading a simple blink sketch without using the RGB LED to see if the board is functioning correctly otherwise
This was not a program I wrote but the “RGB LED Example” sketch provided on the Sparkfun Thing Plus ESP32-S3 examples page at:
https://docs.sparkfun.com/SparkFun_Thing_Plus_ESP32-S3/arduino_example/#thing-plus-esp32-s3-github-repository
This sketch was written by:
By: Nathan Seidle
SparkFun Electronics
Date: January 13, 2024
I verified that my ESP32 board was the latest revision 3.0.4. I also made sure all the libraries were up to date including the FastLED library at revision 3.7.7.
I could not find the json file you mentioned at the path:
“C:\Users[YOUR_USER_NAME]\AppData\Local\Arduino15”
so I was unable to modify:
“#define SOC_RMT_CHANNELS_PER_GROUP (1)”
I did verify that the blink sketchran correctly but the LED did not blink since only the RGB LED was present. I added some print statements and verified the code was executing properly.
Could you check with Nathan and see if he has any suggestions to get his sketch to work.
I have some additional information.
The problem appears to be in the FastLED library. I get the same error with several of the example sketches supplied with this library.
I tried using the “Adafruit NeoPixel” version 1.12.3 library based on a Google suggestion and this library appears to work.
There appears to be several libraries that are variants of the FastLED library. I am using version 3.7.7 which is the latest Arduino update.
Could you tell me which version of the FastLED library Nathan used?