I just tried to update my ODrive from firmware 0.4.12 to 0.5.1 on my Arch Linux laptop and now it appears bricked. It went something like this:
I connected to the ODrive with ODrive tool and was able to validate basic functionality
odrivetool dfu and got the following as a reponse:
ODrive control utility v0.5.1.post0 Waiting for ODrive... Downloading json data from ODrive... (this might take a while) Found ODrive 336931563536 (v3.6-24V) with firmware v0.4.12-dev Checking online for newest firmware... found v0.5.1 Downloading firmware v0.5.1... Saving configuration to /tmp/odrive-config-336931563536.json... Configuration saved. Putting device 336931563536 into DFU mode... Erasing... done Flashing... (sector 0/6) Traceback (most recent call last): File "/usr/bin/odrivetool", line 143, in <module> odrive.dfu.launch_dfu(args, logger, app_shutdown_token) File "/usr/lib/python3.9/site-packages/odrive/dfu.py", line 465, in launch_dfu update_device(device, firmware, logger, cancellation_token) File "/usr/lib/python3.9/site-packages/odrive/dfu.py", line 393, in update_device dfudev.write_sector(sector, data) File "/usr/lib/python3.9/site-packages/odrive/dfuse/DfuDevice.py", line 192, in write_sector transfer_size = fractions.gcd(sector['len'], MAX_TRANSFER_SIZE) AttributeError: module 'fractions' has no attribute 'gcd'
Obviously the DFU was not successful. I attempted to retry, but the board never connected. I tried power cycling, flipping the DFU switch, connecting GPIO 6 to gnd but despite this, the board never appears over usb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 27c6:5395 Shenzhen Goodix Technology Co.,Ltd. Fingerprint Reader Bus 001 Device 010: ID 8087:0029 Intel Corp. AX200 Bluetooth Bus 001 Device 005: ID 0c45:6723 Microdia Integrated_Webcam_HD Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
I’m thinking that since the failure occurred after the erase stage and that no matter what I do I can’t seem to get the board to connect, the bootloader got blown away and now my ODrive is bricked.
Does anybody have any suggestions about how I might jog my ODrive back to life other then using a JTAG debugger to manually write a good firmware image?