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…