Ok, so we have been troubleshooting this for days now.
We have two odrive-v3.6’s
Installed odrive and Zadig on 3 different Windows PC’s
Installed odrive on 2 different linux PC’s
Installed odrive on a Raspberry Pi 4
odrivetool --verbose keeps going into detecting USB loop but never detects an odrive
Pushing the odrive into DFU mode as per instructions from Discord makes the device discoverable but there is little we can do after that
For Linux and Raspberry-Pi, dmesg and lsusb show that a device was detected, but keep throwing erros that look like this:
[ 874.254255] usb 1-1.1: new full-speed USB device number 6 using xhci_hcd [ 889.454516] usb 1-1.1: device descriptor read/64, error -110
Installed dfu-util with this line:
sudo apt install dfu-util
but couldn’t go farther to build the firmware etc. using the following command and erros
sudo dfu-util -a 0 -s 0x08000000 -D build/ODriveFirmware.bin
dfu-util 0.9
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/
dfu-util: Could not open file build/ODriveFirmware.bin for reading: No such file or directory
Gave up on USB mode on any device
Tried using UART through the GPIO 1 and 2 pins directly connected to RPi-4 UART on GPIO 14/15
Used this link (won’t let me post it) to set up the serial communication, and use the ASCII interface
Sending the command r vbus_voltage
was apparently impossible for minicom because it wouldn’t let me type beyond r
So, I moved to UART-to-PC using the UART on a Sparkfun BusPirate
BusPirate UART mode kept reading
-f 0x00
as a value returned in reponse to the r vbus_voltage command
Anyway, I finally tried a completely new PC, and once again did the drill, install python, install pip, install odrive, all is successful.
I didn’t run odrivetool, that was admittedly silly of me
But I followed this thread (won’t let me post link) on discourse and the last entry suggested:
[Jan 26]
Hello,I wanted to add my experience for reference.
I was not able to communicate with the Odrive at first. If I switched to DFU mode, the Odrive would appear and I could talk to it (I think - I may have had to use Zadig). However the odrive dfu tool would give me various errors - I do not believe any firmware was installed.
I then tried to use the DfuSe tool per [these instructions 9] (won’t let me post link) to install the firmware. However, the tool could not see the odrive, so I had to uninstall the driver (while checking the delete files box). Windows would not automatically install a correct driver, so I used the driver from the DfuSe install per these instructions 12. Once I had this driver installed, I was able to flash the firmware then follow the normal procedure (switching back to run mode, then using Zadig to change the driver for Interface 2).
So I went ahead and installed the DfuSe and also installed the STM bootloader drivers.
I was finally able to get the odrive to be detected in Windows Device Manager as an “STM Device in DFU mode”
But when I ran odrivetool dfu, it yelled at me again
I ran odrivetool alone and lo and behold, it yelled the same things at me, which are:
Exception in thread Thread-1:
Traceback (most recent call last):
File “c:\users\in-vivo\appdata\local\programs\python\python37\lib\threading.py”, line 926, in _bootstrap_inner
self.run()
File “c:\users\in-vivo\appdata\local\programs\python\python37\lib\threading.py”, line 870, in run
self._target(*self._args, **self._kwargs)
File “c:\users\in-vivo\appdata\local\programs\python\python37\lib\site-packages\fibre\usbbulk_transport.py”, line 191, in discover_channels
devices = usb.core.find(find_all=True, custom_match=device_matcher)
File “c:\users\in-vivo\appdata\local\programs\python\python37\lib\site-packages\usb\core.py”, line 1263, in find
raise NoBackendError(‘No backend available’)
usb.core.NoBackendError: No backend availablec:\users\in-vivo\appdata\local\programs\python\python37\lib\site-packages\fibre\shell.py:104: RuntimeWarning: coroutine ‘InteractiveShell.run_code’ was never awaited
console.runcode(‘import sys’)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
c:\users\in-vivo\appdata\local\programs\python\python37\lib\site-packages\fibre\shell.py:105: RuntimeWarning: coroutine ‘InteractiveShell.run_code’ was never awaited
console.runcode(‘superexcepthook = sys.excepthook’)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
c:\users\in-vivo\appdata\local\programs\python\python37\lib\site-packages\fibre\shell.py:106: RuntimeWarning: coroutine ‘InteractiveShell.run_code’ was never awaited
console.runcode(‘def newexcepthook(ex_class,ex,trace):\n’
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
c:\users\in-vivo\appdata\local\programs\python\python37\lib\site-packages\fibre\shell.py:105: RuntimeWarning: coroutine ‘InteractiveShell.run_code’ was never awaited
console.runcode(‘superexcepthook = sys.excepthook’)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
c:\users\in-vivo\appdata\local\programs\python\python37\lib\site-packages\fibre\shell.py:106: RuntimeWarning: coroutine ‘InteractiveShell.run_code’ was never awaited
console.runcode(‘def newexcepthook(ex_class,ex,trace):\n’
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
c:\users\in-vivo\appdata\local\programs\python\python37\lib\site-packages\fibre\shell.py:109: RuntimeWarning: coroutine ‘InteractiveShell.run_code’ was never awaited
console.runcode(‘sys.excepthook=newexcepthook’)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Please connect your ODrive.
You can also type help() or quit().In [1]:
I have given up! Please help!