Adafruit_NeoPixel
Adafruit_NeoPixel copied to clipboard
ESP32-C3 "invalid interrupt priority"
-
Arduino board: ESP32-C3 based Boards (tested on an ESP32-C3 Devkit, but I'm willing to bet it affects the QT Py ESP32-C3)
-
Arduino IDE version: 2.2.1
-
ESP32 Library version 3.0.0-Alpha
-
List the steps to reproduce the problem below (if possible attach a sketch or copy the sketch code in too):
- Open Examples -> Adafruit Neopixel -> strandtest
- Change pin/number of LEDS if neccesary
- Upload sketch
Sketch running produces error similar to:
rmt: rmt_new_tx_channel(210): invalid interrupt priority
And either repeats in a loop, or resets and the same error occurs.
Yeah, RMT has been refactored in the 3.0.0 core and it's not backward compatible :(
It's not specific to the C3 - it's all ESP32 boards supported in the new core as it brings in changes in RMT from IDF 5.1 and beyond.
Using Arduino library manager to revert to Adafruit Neopixel version 1.1.0 corrected this issue for me.
Good to know! There's an upstream fix from Espressif coming for the ESP32 3.0.0 core that should rectify this without Adafruit needing to deal with it. Not sure when that's landing though.
FYI, v1.11.0 seems to work for me. Was 1.1.0 a typo?
Not a typo. When I tried, most recent Adafruit Neopixel version did not work. Old version did. Maybe fixed now? Haven’t retested.
No problem, I noticed it with 1.12.0 which I think is current; then tried v1.1.0 and it had other issues so I started again with 1.11.0 and it seems to work for me. I will keep watching as it would be nice to know when the current versions from Espresssif and Adafruit are on the same page again. Thanks.
I think the situation was something like
- arduino-esp32 v3 came out, using ESP-IDF v5.1
- Adafruit NeoPixel's use of the RMT libraries didn't work with ESP-IDF v5.1
- Adafruit patched it to work, but the fix runs out of stack with >70ish pixels (https://github.com/adafruit/Adafruit_NeoPixel/issues/375)
- MEANWHILE Espressif released newer libraries that fixed the original RMT issue
- so currently the latest Adafruit NeoPixel library does NOT work with arduino-esp32 v3, but earlier Adafruit library versions DO work on arduino-esp32 v3???
There's some guesswork in here...