High performance motor control
View the Project on GitHub odriverobotics/ODrive
Help improve these docs: submit edits using the link in the top right.
If you need help, please search or ask the ODrive Community.
No description
ERROR_INVALID_STATE
— 0x00000001
An invalid state was requested.
You tried to run a state before you are allowed to. Typically you tried to run encoder calibration or closed loop control before the motor was calibrated, or you tried to run closed loop control before the encoder was calibrated.
ERROR_DC_BUS_UNDER_VOLTAGE
— 0x00000002
The DC voltage fell below the limit configured in config.dc_bus_undervoltage_trip_level.
Confirm that your power leads are connected securely. For initial testing a 12V PSU which can supply a couple of amps should be sufficient while the use of low current ‘wall wart’ plug packs may lead to inconsistent behaviour and is not recommended.
You can monitor your PSU voltage using liveplotter in odrivetool
by entering start_liveplotter(lambda: [odrv0.vbus_voltage])
. If
you see your votlage drop below config.dc_bus_undervoltage_trip_level
(default: ~ 8V) then you will trip this error. Even a relatively
small motor can draw multiple kW momentary and so unless you have
a very large PSU or are running of a battery you may encounter
this error when executing high speed movements with a high current
limit. To limit your PSU power draw you can limit your motor
current and/or velocity limit controller.config.vel_limit and
motor.config.current_lim.
ERROR_DC_BUS_OVER_VOLTAGE
— 0x00000004
The DC voltage exceeded the limit configured in config.dc_bus_overvoltage_trip_level.
Confirm that you have a brake resistor of the correct value connected securely and that config.brake_resistance is set to the value of your brake resistor.
You can monitor your PSU voltage using liveplotter in odrivetool
by entering start_liveplotter(lambda: [odrv0.vbus_voltage])
. If
during a move you see the voltage rise above your PSU’s nominal
set voltage then you have your brake resistance set too low. This
may happen if you are using long wires or small gauge wires to
connect your brake resistor to your odrive which will added extra
resistance. This extra resistance needs to be accounted for to
prevent this voltage spike. If you have checked all your
connections you can also try increasing your brake resistance by
~ 0.01 Ohm at a time to a maximum of 0.05 greater than your brake
resistor value.
ERROR_CURRENT_MEASUREMENT_TIMEOUT
— 0x00000008
No description
ERROR_BRAKE_RESISTOR_DISARMED
— 0x00000010
The brake resistor was unexpectedly disarmed.
ERROR_MOTOR_DISARMED
— 0x00000020
The motor was unexpectedly disarmed.
ERROR_MOTOR_FAILED
— 0x00000040
Check motor.error for more information.
ERROR_SENSORLESS_ESTIMATOR_FAILED
— 0x00000080
No description
ERROR_ENCODER_FAILED
— 0x00000100
Check encoder.error for more information.
ERROR_CONTROLLER_FAILED
— 0x00000200
No description
ERROR_POS_CTRL_DURING_SENSORLESS
— 0x00000400
Deprecated
No description
ERROR_WATCHDOG_TIMER_EXPIRED
— 0x00000800
No description
ERROR_MIN_ENDSTOP_PRESSED
— 0x00001000
No description
ERROR_MAX_ENDSTOP_PRESSED
— 0x00002000
No description
ERROR_ESTOP_REQUESTED
— 0x00004000
No description
ERROR_HOMING_WITHOUT_ENDSTOP
— 0x00020000
the min endstop was not enabled during homing
Check fet_thermistor.error and motor_thermistor.error for more information.