ODrive Manual

Objective

This document serves as a guide to show how to configure a motor to work with an odrive and what the expected behavior of an odrive is.

All the topics discussed in this document can be found here: https://docs.odriverobotics.com/v/latest/index.html

 

Overview:

Odrive is a motor controller board UWRT purchased off the shelf to control the BLDC motor. Some typical applications of Odrive are controlling the arm system and, in the URC 2024 system, controlling the drivetrain system.

The Odrive can be viewed as three parts:

  • Hardware wiring connection

  • Software motor driver configuration and calibration

  • Motor Controller(control loop)

    • Odrive supports a list of options for communicating with it.

      • UWRT typically use two ways:

        • USB interface for configuring and testing

          • Python Library

          • OdriveTools.bat

        • CAN Interface for interacting with the rest of the system

Hardware Connection:

  • Connect the power supply. Please Note the correct polarity.

  • Connect the Brake resistor. (The reverse of the motor will regenerate a Negative voltage, which is bad for the power supply)

  • Connect the motor and the encoder

    • Motor connection order does not matter. If need to reverse the turning, swap any two of the three connector

    • Encoder connection

image-20240708-232806.png
AMT102 encoder pinout

Software Requirement:

  • Install Python and Odrive tool running command

    pip install --upgrade odrive
  • Execute “odrivetool.bat” on windows

  • once Odrive is connected to the Computer powershell will respond

    >>> Connected to ODrive v3.6 365738583030 (firmware v0.5.4) as odrv0
  • Power source Configure (Odrive V3.6) Note: <odrv#> need to be replace by the above assigned Odrive name

    #power supply settings <odrv#>.config.dc_bus_overvoltage_trip_level = 54 <odrv#>.config.dc_max_positive_current = 7 <odrv#>.config.dc_max_negative_current = -0.01 #battery setting <odrv#>.dc_bus_overvoltage_trip_level = 50.4 <odrv#>.dc_bus_undervoltage_trip_level = 30.9 <odrv#>.config.dc_max_positive_current = 7 <odrv#>.config.dc_max_negative_current = -0.2 #note: only need to choose one of the profile depending on the situation
  • Motor configure(Odrive D5065 270kV) Press tab can view the available option

  • Encoder configure (AMT102-v)

     

  • Every reboot needs to execute the following command for calibration

Typical Issue:

Debug:

When powering, the LED can be used to determine the state of the Odrive.

image-20240708-232045.png

 

Electrical:

  1. in-rush current

The in-rush current is the main issue and may sometimes damage some poorly designed boards. Consult with electrical leads if you have further questions related to it. https://neurochrome.com/pages/the-ultimate-guide-to-soft-start-design