I don’t know if they are anti-spark, but i’m using EC5 connectors. Plus i have a high-line switch downstream of the batteries, so battery connect-disconnect has no impact on the Odrive. I’m using 12S (44.4V) batteries on an Odrive3.6-56V, so i’m not close to the edge. I saw nothing on the site recommending any kind of inrush protection circuit. I DO have 5V and 3.3V on the board, and the normal LED. Nothing on the board is hot.
I get that you are a Linux fanboy. But my platform is Windows 10, and thats not going to change. The product page advertises ODrive as working “over USB from a PC” using Python.
After 24 hours cool-down and power cycling everything, i got an “STM32 BOOTLOADER” in Device Manager when DFU switch was set (nothing when in switch set to RUN). So i tried “odrivetool dfu”. It seemed to confirm my theory about a trashed firmware. But then it failed to update, without telling me anything useful. i don’t know what device status (0,2,0,0) means.
Found ODrive 205337925753 (v3.6-56V) with firmware [unknown version] in DFU mode
Checking online for newest firmware... found v0.5.3
Downloading firmware v0.5.3...
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/7)
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
c:\programs\Odrive\Python3.8.6\Scripts\odrivetool in <module>
141 print_version()
142 import odrive.dfu
--> 143 odrive.dfu.launch_dfu(args, logger, app_shutdown_token)
144
145 elif args.command == 'liveplotter':
c:\programs\Odrive\Python3.8.6\lib\site-packages\odrive\dfu.py in launch_dfu(args, logger, cancellation_token)
463 firmware = FirmwareFromFile(args.file) if args.file else None
464
--> 465 update_device(device, firmware, logger, cancellation_token)
466
467
c:\programs\Odrive\Python3.8.6\lib\site-packages\odrive\dfu.py in update_device(device, firmware, logger, cancellation_token)
391 for i, (sector, data) in enumerate(touched_sectors):
392 print("Flashing... (sector {}/{}) \r".format(i, len(touched_sectors)), end='', flush=True)
--> 393 dfudev.write_sector(sector, data)
394 print('Flashing... done \r', end='', flush=True)
395 finally:
c:\programs\Odrive\Python3.8.6\lib\site-packages\odrive\dfuse\DfuDevice.py in write_sector(self, sector, data)
199 status = self.wait_while_state(DfuState.DFU_DOWNLOAD_BUSY)
200 if status[1] != DfuState.DFU_DOWNLOAD_IDLE:
--> 201 raise RuntimeError("An error occured. Device Status: {!r}".format(status))
202
203 def read_sector(self, sector):
RuntimeError: An error occured. Device Status: (0, 2, 0, 0)
type or paste code here