I have other problem, I have 2 test device with ESP32 1 with ESP32C3, 1. ESP32 work, but 1 esp32 crash all the time with:
Code: Select all
assert failed: prvReturnItemDefault ringbuf.c:623
Two devices same code but with difference real device, so old RMT may not stable.
And ESP32C3 crash when flash, it show error:
Code: Select all
CONFLICT! driver_ng is not allowed to be used with the legacy driver
So the old RMT driver could not be use for C3.
I try to migrate to new RMT driver base from your code, but it could not send the data.
The code send the data like this:
Code: Select all
rmt_transmit_config_t tx_config = {
.loop_count = 0,
};
// Use null encode to send raw symbols
rmt_copy_encoder_config_t config = {};
rmt_encoder_handle_t encoder = NULL;
rmt_new_copy_encoder(&config, &encoder);
// symbols generate like your code replace rmt_item16_t *rmt_data with native rmt_symbol_word_t* items
rmt_transmit(tx_channel, encoder, items, item_count, &tx_config);
But it can send only 8 bytes with accurate data, missing 20 bytes