I’m flashing custom firmware to an odrive (v3.5 48v) over a USB cable from linux (attached raspberry pi zero). This works great, the only issue is that when I finish I’d like to exit DFU mode using the command line. I could use the dip switch, but I don’t have easy access to the odrive board, so a software solution makes the workflow way easier. Also power cycling the board will exit DFU mode, but I’ve got a bunch of other odrives attached to the same power source so it is disruptive to the development workflow to have to power cycle after each firmware for each odrive. I can get the boards into DFU mode via the odrivetool and the enter_dfu_mode() function, but obviously the boards won’t show up in the odrivetool once they are in dfu mode so no way to get out of it. I tried the detach flag for the dfu-util (-e) but it didn’t do the trick :
sudo dfu-util -a 0 -s 0x08000000 -e
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Opening DFU capable USB device…
Run-time device DFU version 011a
Claiming USB DFU Interface…
Setting Alternate Setting #0 …
Determining device status: state = dfuIDLE, status = 0
DFU mode device DFU version 011a
Device returned transfer size 2048
dfu-util: can’t detach
On windows the DfuSeDemo gui has a button for this, but I’m not sure how to do it in linux. Anyone have any ideas?