Odrive v3.6 not being recognized on Windows, Linux, R-Pi4 ANYTHING

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 available

c:\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!

What are you using to power the oDrive?
Is anything else connected to the drive?

I am using a GP-4303D lab power supply. I’ve set it to 12.1V, but I’ve also tried running the odrive at 24V
I also have the large resistor that came in the box attached to the AUX (?) port.
After failing to do this on several different systems: Windows, Linux, Raspberry Pi 4, we moved to UART and ASCII protocol which failed to elicit a response from the ODrive.
We also ran the example Arduino code, which runs, but the simplest command for reading vbus_voltage returns 0.0 and after attaching a motor and CUI AMT-102 encoder, it fails to provide position during the example 10 sec position sensing loop.

Did you get a fix?

We have a similar problem, can get STM Device in DFU mode to show, and also update firmware, but its almost like it gets stuck and (even by trying every on board switch position) can’t get it to come out of DFU mode, which then of course means the odrive can’t be found

I had an odrive that would show up in DFU mode but wouldn’t ever show up normally even after trying to flash and moving the DFU switch back. I eventually got it working again by reflashing with an ST-Link programmer.

Hi

If the code isn’t executing or its hanging then it won’t be detected properly. the bootloader is something that is loaded up much earlier before much of anything else is started. Could be the code you’re pushing on to the board is locking up somewhere. Are you compiling your own code or have you just pulled the latest from mater?

Cheers
Simon