Bidirectional Dshot using RMT
Posted: Tue Feb 08, 2022 5:26 pm
Hey, I'm trying to implement the bidirectional dshot protocol on the ESP-32 using the RMT peripheral. Basically I need to send a 16 bit packet at 600 kbps, wait for a 16 bit response on the same pin, repeat this at several kHz, and do this on 4 pins concurrently. I'm using the DShotRMT library as a starting point, which has implemented the transmit side of the protocol. ESP-FC seems to have implemented the same thing.
So my question is, is rapidly switching RMT channels back and forth between transmit and receive feasible and the best way to do this? What's the overhead on that? Or should I assign two RMT channels per pin, one for transmit and one for receive?
So my question is, is rapidly switching RMT channels back and forth between transmit and receive feasible and the best way to do this? What's the overhead on that? Or should I assign two RMT channels per pin, one for transmit and one for receive?