I recently tried to update my board (v3.5 24v) to the new firmware (v4.7 from 4.6). I tried to use the dfu tool and got an error. After this the board would not show up in the Zadig utility in run mode. I power cycled and switched to DFU mode on the board. It then showed up in zadig as STM32 BOOTLOADER. I then went into the anaconda prompt and this is what went down…
(base) C:\Users\Ian>odrivetool dfu
ODrive control utility v0.4.6
Waiting for ODrive…
Found ODrive 385B37813437 (v3.5-24V) with firmware [unknown version] in DFU mode
Checking online for newest firmware… found v0.4.7
Downloading firmware v0.4.7…
The configuration cannot be backed up because the device is already in DFU mode. The configuration may be lost after updating. Do you want to continue anyway? [Y/n]
Y
Erasing… done
Flashing… (sector 0/6)
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
C:\ProgramData\Anaconda3\Scripts\odrivetool in ()
_ 140 print_version()_
_ 141 import odrive.dfu_
–> 142 odrive.dfu.launch_dfu(args, logger, app_shutdown_token)
_ 143_
_ 144 elif args.command == ‘liveplotter’:_
C:\ProgramData\Anaconda3\lib\site-packages\odrive\dfu.py in launch_dfu(args, logger, cancellation_token)
_ 452 firmware = FirmwareFromFile(args.file) if args.file else None_
_ 453_
–> 454 update_device(device, firmware, logger, cancellation_token)
_ 455_
_ 456_
C:\ProgramData\Anaconda3\lib\site-packages\odrive\dfu.py in update_device(device, firmware, logger, cancellation_token)
_ 380 for i, (sector, data) in enumerate(touched_sectors):_
_ 381 print(“Flashing… (sector {}/{}) \r”.format(i, len(touched_sectors)), end=’’, flush=True)_
–> 382 dfudev.write_sector(sector, data)
_ 383 print(‘Flashing… done \r’, end=’’, flush=True)_
_ 384 finally:_
C:\ProgramData\Anaconda3\lib\site-packages\odrive\dfuse\DfuDevice.py in write_sector(self, sector, data)
_ 185 status = self.wait_while_state(DfuState.DFU_DOWNLOAD_BUSY)_
_ 186 if status[1] != DfuState.DFU_DOWNLOAD_IDLE:_
–> 187 raise RuntimeError(“An error occured. Device Status: {!r}”.format(status))
_ 188_
_ 189 def read_sector(self, sector):_
RuntimeError: An error occured. Device Status: (0, 2, 0, 0)
(base) C:\Users\Ian>
I then ran it again and got ValueError: The device has no langid
at this point I am very lost…