UART Communication Feature

The basics of the UART communication feature is now ready for testing. I also made an Arduino library that you can test with, but feel free to test with any platform.

Please check the details here:

1 Like

I’ll try to give this a shot with Python using pySerial. Assuming all goes well, that’s where I’ll likely be headed with my oDrive Python API.

The PR is now open for review. Help needed to complete the 3 review items listed. Thanks!

On V3.2 board it is possible to activate the UART or it is only possible on the V3.3 ?

Hi, Sorry the UART pins are not exposed on v3.2 and earlier.

Ok, I saw on the schematics that the GPIO connections are different between the 3.2 and 3.3.
So, if I connect two wires on the ARM as the 3.3 can it work?
It is only a hardware limitation or the firmware for the 3.2 have to be modified?

I would like to communicate with another STM32 and the USB is not my favorite option.


Here you can check the pin allocation on the ODrive: link.
On ODrive v3.3 pins 14 and 15 are mapped to UART4_TX and UART4_RX. On ODrive v3.2 these pins are VBUS_S and M1_TEMP. This is the sense for the DC bus voltage, and the M1 thermistor. So while you may be able to repurpose the M1 temperature sense, you cannot be without the bus voltage sense.

If you really would like to dig in to making this work, I would suggest instead that you share the SPI pins 51 and 52. You would need to add some code that switches them from SPI3 to UART4 after using the SPI to initialize the DRV gate driver.

Alternatively, I would be happy to give you a 20% discount on a new ODrive v3.4, if you would rather not have to worry about doing all these changes.


Thanks for these proposals, I have to think about all this options and it will depend on how much time I have…
SPI could be a very good possibility because is faster.