Serial Lockup on Isolator Disconnect

Curious if anyone has thoughts here. We have the ISO7761(F) isolator to avoid ground looping and running into an issue that if the source microcontroller is disconnect from the isolator the ODrive serial hangs and must be restarted before serial communication can resume. This has been the best way we’ve been able to replicate this issue. In practice this is happening hap-hazardly during I2C communication interrupts as the microcontroller is communicating with other devices.

I’ve checked the lines and ODrive TX seems to be in the appropriate ready state for transmission while the microcontroller is disconnected and I’m assuming there’s a timeout on the odrive firmware.

This issue does not occur when the microcontroller is directly connected to the TX/RX on the ODrive, this only appears to happen when the isolator is introduced. We have the ISO7761(F) variant which keeps signals low if no line is present, as suggested in the original isolator threads around ground looping.

Have you all run into anything like this with V4?

Solved this issue, it turned out we were running a fork with an old version of the uart.cpp before this fix https://github.com/madcowswe/ODrive/commit/93287acd42172dbca91baf8946c1596b2bd703be

Operations seems much more stable when.

1 Like