Error Codes

AttributeError

If you get output like AttributeError: 'RemoteObject' object has no attribute '<missing-attribute>', you have a version mismatch between odrivetool and the firmware on your ODrive. To get the newest version of odrivetool, you can run pip install odrive --upgrade. To get the newest ODrive firmware, run odrivetool dfu. See the Firmware Update page for more details.

USB Connectivity Issues

  • Could not claim interface ... make sure all other instances of the GUI and/or odrivetool are closed and try again. Only one process can use the ODrive at any time

  • Try turning it off and on again (the ODrive, the script, the PC)

  • Make sure you’re using the latest firmware and python tools release

  • Linux: Type lsusb to list all USB devices. Verify that your ODrive is listed.

  • Linux: Make sure you set up your udev rules correctly.

  • Windows: Right-click on the start menu and open “Device Manager”. Verify that your ODrive is listed.

  • Windows: For users migrating from ODrive v3.x, it may be necessary to remove any/all drivers installed with Zadig utility. Detailed instructions can be found below.

  • Ensure that no other ODrive program is running

  • Run odrivetool with the –verbose option.

  • Run PYUSB_DEBUG=debug odrivetool to get even more log output.

  • If you’re a developer you can use Wireshark to capture USB traffic.

  • Try a different USB cable

  • Try routing your USB cable so that it is far away from the motor and PSU cables to reduce EMI

Uninstall Zadig Drivers (Windows Only)

Important

These instructions do not apply to users who are new to ODrive or have never modified their drivers with Zadig.

  • open PowerShell as Administrator and enter the following:

    # Uninstall all ODrive devices (root device, CDC interface and Native Interface)
    foreach ($dev in (Get-PnpDevice | Where-Object { $_.DeviceID -like "USB\VID_1209&PID_0D32*" })) {
    &"pnputil" /remove-device $dev.InstanceId;
    }
    
    Remove-Item -Path HKLM:\SYSTEM\CurrentControlSet\Control\usbflags\12090D32* -Force -Verbose
    
  • Alternatively, you can remove the Zadig drivers manually with DriverStoreExplorer. Once installed, run the application and delete everything labeled ODrive.

Encoder Noise

Noise is found in all circuits, life is just about figuring out if it is preventing your system from working. Lots of users have no problems with noise interfering with their ODrive operation, others will tell you “I’ve been using the same encoder as you with no problems”. Power to ‘em, that may be true, but it doesn’t mean it will work for you. If you are concerned about noise, there are several possible sources:

  • Importantly, encoder wires may be too close to motor wires, avoid overlap as much as possible

  • Long wires between encoder and ODrive

  • Use of ribbon cable

The following might mitigate noise problems. Use shielded cable, or use twisted pairs, where one side of each twisted pair is tied to ground and the other side is tied to your signal. If you are using SPI, use a 20-50 ohm resistor in series on CLK, which is more susceptible noise.

Miscellaneous

  • List of other issues that may not produce an error code

Disable Browser Notifications

When connecting an ODrive to your computer with USB you should see a popup notification from your primary/default browser, if you have multiple browsers installed you may see a notification for each. Here is a suggested procedure to disable these popups.

As an example, we will be disabling notifications from Microsoft Edge, but this procedure should work for all Chromium based browsers:
  1. Open Microsoft Edge

  2. Go to: edge://flags/#enable-webusb-device-detection (replace edge with the browser i.e. chrome)

  3. Select Disabled in the dropdown for Automatic detection of WebUSB-compatible devices

  4. Restart or close the browser

Note

This will only disable the notifications, it will not impact the functionality of the GUI.

If you ever want to re-enable these notifications, follow the procedure above and set Automatic detection of WebUSB-compatible devices back to Default or Enabled.