How to fix ESP32 rmt: rmt_transmit(466): loop count is not supported
If you encounter
rmt: rmt_transmit(466): loop count is not supported
on the ESP32, this is because you have used a rmt_transmit_config_t
with explicitly set loop_count
.
rmt_transmit_config_t cfg = {
.loop_count = 1,
.flags = {
.eot_level = 0,
}
};
ESP_ERROR_CHECK(rmt_transmit(/* ... */, &cfg));
but your IC (e.g. ESP32-D0WD-V3) does not support hardware loop mode.
Fixing this is easy: Just comment out the .loop_count
line:
rmt_transmit_config_t cfg = {
//.loop_count = 1, // DISABLED as chip does not support it
.flags = {
.eot_level = 0,
}
};
ESP_ERROR_CHECK(rmt_transmit(/* ... */, &cfg));
Note that if you leave .loop_count
at its default, it will always act as if .loop_count = 1
.