← index #10609PR #16293
Likely Duplicate · medium · value 8.219
QUERY · ISSUE

Delete / Unallocate RMT Driver on ESP32

openby onlyparthumanopened 2023-01-28updated 2025-12-09
enhancement

The current RMT functionality in Micropython for the ESP32 appears to have no method to uninstall an RMT driver. This makes it challenging to re-configure RMT on the fly or reuse those resources. Calls to del() of an RMT object to not appear to uninstall the driver either. Recommend creating a RMT.del() function to implement the Espressif rmt_del_channel() function to free the resources

CANDIDATE · PULL REQUEST

Update esp32.RMT module to the new API

mergedby elvis-epxopened 2024-11-24updated 2025-11-28
port-esp32

Summary

The current esp32.RMT module uses a legacy API from ESP-IDF 4.x. The ESP-IDF 5.x offers a new API, which is overall better, and easier to implement the RX side in the future. This PR updates the module and the documentation, preserving the current MicroPython RMT API as much as possible.

The bitstream RMT implementation was updated as well, since ESP-IDF does not allow an image to reference legacy and new APIs at the same time (it resets right after boot with an error message, even if neither module is imported).

Testing

Tested on ESP32, ESP32-S3, ESP32-C3 and ESP32-C6. (Commenters may have tested on other variants.) We have tested all aspects of the RMT API and all seem to work fine.

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied