Logo

GUIDES

  • Getting Started
    • Wire up the ODrive
      • Hardware Requirements
      • Connections
      • Safety & Power Up
    • Status LED
    • Connecting to the ODrive
    • Next Steps
  • odrivetool Setup
    • Configure Power Supply
    • Motor Configuration
      • Setting the Limits
    • Encoder Configuration
      • Viewing Encoder Feedback
    • Position Control
    • Other Control Modes
    • What’s Next?
  • Firmware Update
    • Quick Summary
    • Specifications
    • Updating firmware from the command line
      • Other Options
      • Troubleshooting
    • Updating firmware over CAN
      • Limitations
    • Recovering from a failed update
    • Recovering from unbootable firmware
    • ODrive Updater
    • Firmware Channels
    • How to migrate from the legacy DFU system
  • Legacy Firmware Update
    • Other Options
    • Troubleshooting
    • Flashing with an STLink
  • Tuning the Controller
    • Other Parameters to Tweak
  • CAN Bus Guide
    • Hardware Setup
    • Setting up the Host
      • Enable CAN Hat
      • Enable CAN interface
    • Setting up the ODrive (via USB)
    • Setting up the ODrive (CAN only)
      • Bootstrapping CAN communication via CAN
      • Writing configuration
      • Running calibration
    • Verifying Communication
    • Code Examples
      • Intro: Read Heartbeat
      • Closed Loop Control
      • Arbitrary Parameter Access
    • Troubleshooting
  • Python Package
    • System Requirements
    • Installation
    • Basic Example
    • Async Usage
    • Discovery Use Cases
    • Interfaces
    • Connection Livecycle
    • Best Practices
    • Reference
      • odrive
      • odrive.utils
      • odrive.device_manager
    • Changelog
      • [0.6.11] - 2026-05-05
      • [0.6.10] - 2025-04-15
      • [0.6.9] - 2024-05-17
      • [0.6.8] - 2024-01-11
      • [0.6.7] - 2023-07-13
      • [0.6.5] - 2023-03-13
      • [0.6.3] - 2022-08-22
      • [0.6.1] - 2022-06-17
      • [0.6.0] - 2021-09-30
  • Arduino UART Guide
    • Overview
    • Connecting the Arduino to the ODrive
    • Configuring the ODrive
    • Setting Up ODrive for UART
    • Installing the ODriveArduino Library
    • Example Sketch
    • Troubleshooting
      • Arduino hangs at Waiting for ODrive...
      • Arduino hangs at Enabling closed loop control...
      • Motor makes “humming” noise while moving
    • Arduino Library Reference
  • Arduino CAN Guide
    • Overview
    • Connecting the Arduino to the ODrive
    • Configuring the ODrive
    • Installing the ODriveArduino Library
    • Example Sketch
    • Troubleshooting
      • Arduino hangs at Waiting for ODrive...
      • Arduino hangs at Enabling closed loop control...
    • Arduino Library Reference
  • ROS2 CAN Package
    • Setting Up the ODrive
    • Installing the ros_odrive Package
    • Inspection
  • Common Applications
    • RC PWM
  • Anticogging
    • Overview
    • Preparation
    • How to enable anticogging
    • Limitations
    • Known issues
  • S1 M8325S Kit Build Guide
    • What’s in the box
    • What you’ll need
    • Hardware Setup
      • Apply Thermal Pad
      • Attach to Heat Spreader
      • Attach Motor to Mounting Plate
      • Attach ODrive to Motor
      • Wiring
    • Software Setup
  • BotWheel Explorer
    • Overview
    • Hardware & Electrical Build
    • Electrical Schematic
    • ODrive Configuration
    • Raspberry Pi Setup
    • Running the example
    • Running the example on startup
    • Next Steps
    • Troubleshooting

HARDWARE

  • Supported Motors/Encoders
    • Hardware Compatibility
      • Motors
      • Encoders
  • ODrive Pro Datasheet
    • Electromechanical Specifications
      • Electrical
      • Physical
      • Connectors
      • Environmental
    • CAD
    • Pinout
      • Power Pads
      • Logic Pins
      • GPIO Properties
      • Notes
  • ODrive S1 Datasheet
    • Electromechanical Specifications
      • Electrical
      • Connectors
      • Environmental
    • CAD
    • Pinout
      • Power Pads
      • Logic Pins
      • GPIO Properties
      • Notes
  • ODrive Micro Datasheet
    • Electromechanical Specifications
      • Electrical
      • Physical
      • Connectors
      • Environmental
    • CAD
    • Pinout
      • Power Pads
      • Logic Pins
      • GPIO Properties
      • Notes
      • CAN Termination and Power
  • ODrive OA1 Datasheet
    • Electromechanical Specifications
      • CAD
      • Electrical
      • Mechanical
      • Environmental
    • LED Colors
    • Pinout
    • Connectors
    • Magnet Mounting
    • Communications Protocol
  • ODrive Regen Clamp Datasheet
    • Electromechanical Specifications
      • CAD
      • Electrical
      • Physical
      • Connectors
    • Pinout
      • Power Pads
    • Usage & Wiring
    • Status LEDs
    • Overtemperature Protection
    • Brake Resistor Selection
      • Example
  • ODrive USB-CAN Adapter Datasheet
    • Electromechanical Specifications
      • CAD
      • Electrical
      • Mechanical
      • Environmental
      • Interface
    • Pinout
    • Connectors
    • Wiring and Isolation
    • Power
    • Usage & Compatibility
    • Unbinding from SocketCAN on Linux
  • ODrive Comparison Table
    • Electrical Specifications
    • Feedback Interfaces
    • Control Interfaces
    • Features
    • Mechanical Specifications
  • ODrive Motors
    • Motor Characteristics
      • M8325s 100KV
      • D6374 150KV
      • D5065 270KV
      • D5312s 330KV
      • NEMA 34 Servomotor w/ 16384 CPR Absolute Encoder
      • ODrive Botwheel
    • Torque-Speed Curves

MANUAL

  • ODrive Overview
    • System Status LED
    • Per-Axis Commands
      • State Machine
      • Startup Procedure
      • Control Mode
    • System Monitoring Commands
      • Encoder Position and Velocity
      • Motor Current and Torque Estimation
    • General System Commands
      • Saving the Configuration
      • Diagnostics
    • User Storage
  • Hardware Configuration
    • Power System
      • Trip Levels
      • Active Power Limit
      • Regenerated Power
      • Brake Resistors (S1 Only)
      • Voltage Feedback (S1 Only)
    • Temperature Regulation
      • Thermistors
      • Fans (ODrive Pro Only)
    • Encoders
      • Overview
      • Onboard Encoder
      • Incremental Encoders
      • RS-485 Encoders
      • Hall Effect Encoders
      • SPI Encoders
      • Sensorless
    • Gearbox Configuration
      • Single-Encoder
      • Dual-Encoder
      • Gains
    • Calibration Backup
    • Harmonic Compensation
  • Controller
    • Structure
      • Position Control loop
      • Velocity Control Loop
      • Current Control Loop
    • Control Modes
      • Filtered Position Control
      • Trajectory Control
      • Circular Position Control
      • Velocity Control
      • Ramped Velocity Control
      • Torque Control
    • Position Reference Frame
      • Startup-Relative Reference Frame
      • Homed Reference Frame
      • Custom User Reference Frame
      • Absolute Encoder Reference Frame
      • Absolute Encoder Reference Frame (circular)
      • Index-based Reference Frame
    • Spinout Detection
  • Application Interfaces
    • USB
    • UART Interface
      • Connection
      • Configuration
    • ASCII Protocol
      • Sending Commands
      • Command Format
      • Command Reference
      • Parameter Reading/Writing
      • System Commands
    • ODrive Communication Protocol
      • Packet Format
      • Stream Format
      • CRC Algorithms
    • CAN Protocol
      • Overview
      • Cyclic Messages
      • Watchdog
      • Baudrate & Autobaud
      • CAN-FD
      • Broadcast
      • Discovery & Addressing
      • Bus-off handling
      • DBC Files
      • Interoperability with CANopen
      • Messages
    • Analog Input
      • Overview
      • Endpoint Mapping
      • Velocity Control Example
    • PWM Input
      • Overview
      • Configuration
      • Position Control Example
    • Step/Direction
      • Pinout
      • How to Configure
    • Error/Enable
      • Error Output
      • Enable Input
    • Endstops/Homing
      • Endstop Configuration
      • Example
      • Homing
      • E-Stop
  • ODrive API Reference
    • ODrive
      • ODrive.test_function()
      • ODrive.get_adc_voltage()
      • ODrive.save_configuration()
      • ODrive.erase_configuration()
      • ODrive.reboot()
      • ODrive.enter_dfu_mode()
      • ODrive.enter_dfu_mode2()
      • ODrive.disable_bootloader()
      • ODrive.identify_once()
      • ODrive.get_interrupt_status()
      • ODrive.get_dma_status()
      • ODrive.get_gpio_states()
      • ODrive.set_gpio()
      • ODrive.get_drv_fault()
      • ODrive.clear_errors()
      • ODrive.get_raw_8()
      • ODrive.get_raw()
      • ODrive.get_raw_32()
      • ODrive.get_raw_256()
      • ODrive.vbus_voltage
      • ODrive.ibus
      • ODrive.ibus_report_filter_k
      • ODrive.control_loop_hz
      • ODrive.serial_number
      • ODrive.hw_version_major
      • ODrive.hw_version_minor
      • ODrive.hw_version_variant
      • ODrive.hw_version_revision
      • ODrive.fw_version_major
      • ODrive.fw_version_minor
      • ODrive.fw_version_revision
      • ODrive.commit_hash
      • ODrive.fw_version_unreleased
      • ODrive.bootloader_version
      • ODrive.n_evt_sampling
      • ODrive.n_evt_control_loop
      • ODrive.task_timers_armed
      • ODrive.task_times
      • ODrive.system_stats
      • ODrive.user_config_loaded
      • ODrive.misconfigured
      • ODrive.oscilloscope
      • ODrive.debug
      • ODrive.can
      • ODrive.test_property
      • ODrive.identify
      • ODrive.reboot_required
      • ODrive.issues
      • ODrive.auth
      • ODrive.TaskTimes
      • ODrive.SystemStats
      • ODrive.Issues
      • ODrive.Auth
      • ODrive.HistogramLogger
      • ODrive.CircularLog
      • ODrive.Config
      • ODrive.Can
      • ODrive.Endpoint
      • ODrive.Axis
      • ODrive.BuiltinMotorAxis
      • ODrive.ExternalMotorAxis
      • ODrive.AnticoggingConfig
      • ODrive.HarmonicCompensation
      • ODrive.BrakeResistor
      • ODrive.BrakeResistorConfig
      • ODrive.Motor
      • ODrive.BuiltinMotor
      • ODrive.ExternalMotor
      • ODrive.Mapper
      • ODrive.OnboardEncoder
      • ODrive.Rs485Encoder
      • ODrive.IncrementalEncoder
      • ODrive.HallEncoder
      • ODrive.SpiEncoder
      • ODrive.EncoderEstimator
      • ODrive.Interpolator
      • ODrive.OnboardThermalCurrentLimiter
      • ODrive.BuiltinThermalCurrentLimiter
      • ODrive.OffboardThermistorCurrentLimiter
      • ODrive.AlphaBetaFrameController
      • ODrive.FieldOrientedController
      • ODrive.Oscilloscope
      • ODrive.Debug
      • ODrive.AcimEstimator
      • ODrive.Controller
      • ODrive.SensorlessEstimator
      • ODrive.TrapezoidalTrajectory
      • ODrive.SwitchInput
      • ODrive.MechanicalBrake
      • ODrive.TaskTimer
      • ODrive.InverterConfig
      • ODrive.GpioMode
      • ODrive.StreamProtocolType
      • ODrive.EncoderFieldStatus
      • ODrive.FieldStrengthMonitoring
      • ODrive.ComponentStatus
      • ODrive.Error
      • ODrive.ProcedureResult
      • ODrive.EncoderId
      • ODrive.SpiEncoderMode
      • ODrive.IncrementalEncoderFilter
      • ODrive.Rs485EncoderMode
      • ODrive.MotorType
      • ODrive.ThermistorMode

USER INTERFACES

  • odrivetool
    • System Requirements
    • Installation
    • Start odrivetool
    • Using odrivetool via CAN
      • Which baudrate to select?
    • Commands and Objects
    • Multiple ODrives
    • Liveplotter
      • Example
    • High Rate Capture
      • Example
      • Things to know
    • Firmware Update
    • Configuration Backup
    • Changelog
  • Web GUI
    • Troubleshooting
      • Frequent Issues
      • Gather more info
    • USB-CAN Adapter on Linux
    • Data collection and analytics

TROUBLESHOOTING

  • Error Codes
    • AttributeError
  • USB Connectivity Issues
    • Uninstall Zadig Drivers (Windows Only)
  • Encoder Noise
  • Miscellaneous
  • Disable Browser Notifications

ARTICLES

  • Component Selection
    • Power Supply
      • Voltage
      • Power
      • Other Considerations
    • Motor
      • Kv-number / Torque Constant
      • Current
      • Other considerations
  • Ground Loops
    • The Problem
    • Solutions
      • Reduce Power Wire
      • Isolation
      • Current Limiting
  • Magnetic Encoders
    • Overview
    • Quick Reference:
    • Primer
      • What are we working with?
      • Basic Theory
    • Design Consideration
      • Magnet Choice
      • Magnet Mounting
      • Materials
      • Alignment
    • Installation
      • Harmonic Compensation
    • Validation
      • S1/Pro/Micro
      • OA1
    • Mounting Examples and Pitfalls
    • Resources
  • Motor Calibration Parameters
    • Quick Summary
    • What does calibration do?
      • Resistance Calibration
      • Inductance Calibration
    • Picking Values
    • Troubleshooting
      • Resistance Calibration
      • Inductance Calibration
    • Calibration lock-in / Lock-in spin current

CHANGELOG

  • CHANGELOG
    • [0.6.12-1] - 2026-07-29
      • Fixed
    • [0.6.12] - 2026-05-05
      • Added
      • Fixed
      • Changed
      • API migration notes
    • [0.6.11-1] - 2025-06-05
      • Fixed
    • [0.6.11] - 2025-04-14
      • Added
      • Fixed
      • Changed
    • [0.6.10] - 2024-08-27
      • Added
      • Fixed
      • Changed
      • API migration notes
      • Known Issues
    • [0.6.9-1] - 2024-02-08
      • Fixed
    • [0.6.9] - 2024-01-31
      • Added
      • Fixed
      • Changed
      • API migration notes
      • Known Issues
    • [0.6.8] - 2023-09-12
      • Added
      • Fixed
      • Changed
      • API migration notes
    • [0.6.7] - 2023-07-13
      • Added
      • Fixed
      • Changed
    • [0.6.6] - 2023-04-12
      • Added
      • Fixed
      • Changed
      • API migration notes
    • [0.6.5] - 2023-01-25
      • Added
      • Fixed
      • Changed
      • API migration notes
    • [0.6.4-1] - 2022-12-12
      • Fixed
    • [0.6.4] - 2022-10-31
      • Fixed
      • Changed
    • [0.6.3] - 2022-08-19
      • Added
      • Fixed
      • Changed
      • API Migration Guide
    • [0.6.2] - 2022-08-09
      • Added
      • Fixed
      • Changed
      • API Migration Guide
      • Known Issues
    • [0.6.1] - 2022-06-03
      • Fixed
      • Added
      • Changed
      • API Migration Guide
    • [0.6.0] - 2022-02-21
      • Fixed
      • Added
      • Changed
      • API Migration Notes
    • [0.5.4] and older
ODrive Documentation
  • Application Interfaces

Application Interfaces

  • USB
  • UART Interface
  • ASCII Protocol
  • ODrive Communication Protocol
  • CAN Protocol
  • Analog Input
  • PWM Input
  • Step/Direction
  • Error/Enable
  • Endstops/Homing
Previous Next

© Copyright 2026, ODrive Robotics.

Built with Sphinx using a theme provided by Read the Docs.