Closed BlueAndi closed 6 months ago
The timeout shouldn't be an error, or they should provide a routine you can call to check/poll the state.
But your suggestion sounds like a good work around.
https://github.com/Makuna/NeoPixelBus/tree/Esp32RmtSilentTimeout contains the changes to silence timeouts.
Give it try, if it works I will merge into master before the next release.
Thanks, will try and come back with feedback.
Successful tested, you can integrate the bugfix. Thanks for the fast and good support!!
The "NeoEsp32RmtMethod" is used to update the strip. After a Show(), the CanShow() is called periodically to determine when the strip update is finished.
CanShow() calls IsReadyToUpdate() method: https://github.com/Makuna/NeoPixelBus/blob/e40289f89c1fc869ca68b1622efbb49866f8b01e/src/internal/methods/NeoEsp32RmtMethod.h#L598-L601
The rmt_wait_tx_done() is called with a timeout of 0, which causes an error report in case the transfer is not finished yet. See
This pollute the log and causes that the system slows down.
Could we skip using the ESP_ERROR_CHECK_WITHOUT_ABORT() in especially this case?
One single error log looks like:
NeoPixelBus: v2.7.9 Platform: espressif32 v6.5.0 Framework: arduino Board: esp32-S3 DevKitC-1