Axis_error_motor_failed - FIXED

Hi! I’m having problems doing the calibration for a hub wheel motor (RBE-102024-003):

The steps I’m doing are as follows:

odrv0.axis0.motor.config.motor_type =MOTOR_TYPE_HIGH_CURRENT
odrv0.axis0.motor.config.torque_constant = 8.27 / 16
odrv0.axis0.motor.config.resistance_calib_max_voltage = 4
odrv0.axis0.motor.config.requested_current_range = 25
odrv0.axis0.motor.config.current_control_bandwidth = 100
odrv0.axis0.encoder.config.bandwidth = 100
odrv0.axis0.controller.config.pos_gain = 1
odrv0.axis0.controller.config.vel_gain = 0.02 * odrv0.axis0.motor.config.torque_constant * odrv0.axis0.encoder.config.cpr
odrv0.axis0.controller.config.vel_integrator_gain = 0.1 * odrv0.axis0.motor.config.torque_constant * odrv0.axis0.encoder.config.cpr
odrv0.axis0.controller.config.vel_limit = 10
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_VELOCITY_CONTROL
odrv0.axis0.requested_state = AXIS_STATE_MOTOR_CALIBRATION

Then the motor moves a tiny tiny bit and then it stops… I proceed to dump the errors: dump_errors(odrv0, True) and I got the next:

  axis: Error(s):
  motor: Error(s):
  fet_thermistor: no error
  motor_thermistor: no error
  encoder: no error
  controller: no error
  axis: no error
  motor: no error
  fet_thermistor: no error
  motor_thermistor: no error
  encoder: no error
  controller: no error

What can I do?


What motor are you using?

You may need to increase motor.config.resistance_calib_max_voltage to 5 or more (if it is a high-resistance motor)

If the motor’s resistance is more than resistance_calib_max_voltage / calibration_current then it will fail to calibrate.

This is my motor: 24v 6.5 Inch Wheel Hub Motor Rbe-102024-003 With Encoder For Robot - Buy Electric Hub Motor,Bldc Motor,Hub Motor Price Product on

I tried to find all the data of this motor from a datasheet and found the next:

  • 30 magnetic poles
  • encoder AEDR-8300, 800±2 encoder lines (3200 cpr)
  • I couldn’t find the motor torque constant, but I’m using 8.24 / 16

I increased resistance_calib_max_voltage = 5 and tried again and still did not worked…

I’m using a power source 30v-10a (LW-K30100)

I read that cables sometimes are the problem… as I have several motors, I used one directly using their pins (as it came from the factory) and I did another test cutting the cable pins and connecting it directly… still no luck


I increased resistance_calib_max_voltage = 10 then the calibration worked!! thanks Towen!

1 Like

Hi @alduxvm ,

Can you tell me how you have calculated the encoder AEDR-8300 CPR value? Or where did you find this value?

I am looking at the AEDR-8300/8400/8500/8700: Achieving Low CPR Options through a Spiral Codewheel Design Guide but I am not sure which encoder AEDR-8300 model is mounted to this motor and I am using the next formula pointed there,

I cannot reach your CPR value. Can you help me?




I bought the same wheels. Increasing resistance_calib_max_voltage to 10 solved my problem at the
AXIS_STATE_MOTOR_CALIBRATION step too. Thanks a lot.

However, I am still getting an error “ENCODER_ERROR_ILLEGAL_HALL_STATE” for the last calibration step: “AXIS_STATE_ENCODER_OFFSET_CALIBRATION”.

I read about possible noise or hardware issues. Did you came across the same issue as well?

NOTE: I have not wired the NTC (20k) cable and I am using a power supply with 26v 5A.



I fixed it. I extended my cables with longer wires but it seems that it was causing noise.

1 Like

@alduxvm Hi, when connecting the wires for Encoder A (white) and Encoder B (grey) I get an ENCODER_ERROR_NO_RESPONSE error when running odrv0.axis1.requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION . Hall Mode works but I wanna use INCREMENTAL_MODE. Did it work for you?