O-Drive v3.6 not recognised by USB in Run Mode

Hi,

I am having difficulties with a 24V O-Drive v3.6.

I had been using it for a few weeks without any problem when suddenly I could not connect anymore to odrivetool. Odrivetool stays stuck on “Please connect your ODrive.” The O-Drive isn’t recognised at all by windows either. I tried with different computers and USB cables to no avail.

From what I’ve read on the forums, it is somewhat common for the O-Drive to lose it’s firmware for some reason so I decided to try to reflash it. I flipped the DFU switch and flashed the odrive with the ‘odrivetool dfu’ command. This seemed to have worked: I received the following confirmations: ‘‘Erasing…done ; flashing…done ; verifying… done ; Fimware upload successful’’. However when I power cycled the board and put it back to run mode it still wasn’t recognised by odrive. What is weird is that it is always recognised in DFU mode by windows, but never in run mode.

I tried a few other options: connecting to odrivetool via linux on a raspberry-pi, also running sudo odrivetool dfu from linux, without success. I had read that odrivetool dfu was not 100% reliable so I tried the recommended method on the forums: STM32CubeProgrammer. I followed the procedure from here: odrivetool — ODrive Documentation 0.5.4 documentation. As with odrivetool dfu, this procedure seemed to have worked fine (see screenshot of success confirmation), but the device is still not recognised when on Run Mode.

So as of now:

  • I flashed the board using odrivetool dfu and STM32CubeProgrammer and both gave success messages
  • When on Run Mode, the device appears nowhere: neither in Windows Device Manager, Zadig, or odrivetool
  • I have tried connecting with different cables, on different computers, on Windows and Linux

I feel like I’ve tried every possible troubleshooting paths given on the odrive docs and forums. Any help would be greatly appreciated!

See if you can do a full erase with STM32 Cube Programmer. Alternatively, flash an older firmware with a different config structure (which will default the config), then flash the new one again.