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



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
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


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.