Error in calibration - Motor error 0x90 which does not exist in motor.hpp


#1

Hi,

I’m having a difficult time spinning a Maxon motor with Odrive. It’s at the very beginning, at the calibration stage. It gives me the odrv0.axis0.error of 0x40 and the odrv0.axis0.motor.error = 0x90. I searched the source code for the error codes and it refers me to motor.hpp for the motor errors. But, there is no 0x90 in the list.

I assume the issue is overcurrent at the calibration. The reason is, I see motor moving a bit and then drawing nearly 10A current without moving, until the calibration aborts and gives that error.

====================
In [278]: odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE

In [281]: hex(odrv0.axis0.motor.error)
Out[281]: ‘0x90’

In [282]: hex(odrv0.axis0.error)
Out[282]: ‘0x40’

and here is my config:

In [284]: odrv0.axis0.motor.config
Out[284]:
pre_calibrated = False (bool)
pole_pairs = 1 (int)
calibration_current = 10.0 (float)
resistance_calib_max_voltage = 50.0 (float)
phase_inductance = 0.0 (float)
phase_resistance = 0.0 (float)
direction = 1 (int)
motor_type = 0 (int)
current_lim = 20.0 (float)
requested_current_range = 70.0 (float)
current_control_bandwidth = 1000.0 (float)

BTW, the inductance of the motor is 0.08mH and its resistance is 0.39 per the manufacturer.

Thank you


#2

Error 0x90 is the composition of error 0x80 and 0x10.
Your primary error is ERROR_MODULATION_MAGNITUDE. This means you do not have enough bus voltage to push the requested calibration_current through the motor. Try lowering calibration_current, or increasing your bus voltage.