Axis_error_encoder_failed

In [1]: dump_errors(odrv0)
axis0
axis: no error
motor: no error
fet_thermistor: no error
motor_thermistor: no error
encoder: no error
controller: no error
axis1
axis: no error
motor: no error
fet_thermistor: no error
motor_thermistor: no error
encoder: no error
controller: no error

In [2]: dump_errors(odrv0)
axis0
axis: Error(s):
AXIS_ERROR_ENCODER_FAILED
motor: no error
fet_thermistor: no error
motor_thermistor: no error
encoder: Error(s):
ENCODER_ERROR_ILLEGAL_HALL_STATE
controller: no error
axis1
axis: no error
motor: no error
fet_thermistor: no error
motor_thermistor: no error
encoder: no error
controller: no error

if i used the second motor one of them becomes the error. I cant use two hoverboard motors.?
can anybody help please?!

BY ROBBY

Hi Robby,

See this thread for a fix: Encoder error ERROR_ILLEGAL_HALL_STATE - #6 by madcowswe

For hall effect encoders, it helps to add filter capacitors to the encoder inputs.

Thanks A lot
I have order this one


Hope it is the right one
By robby

new error:

pi@raspberrypi:~ $ sudo odrivetool
ODrive control utility v0.5.1.post0
Connected to ODrive 204B378C5753 as odrv0
Website: https://odriverobotics.com/
Docs: https://docs.odriverobotics.com/
Forums: https://discourse.odriverobotics.com/
Discord: https://discord.gg/k3ZZ3mS
Github: https://github.com/madcowswe/ODrive/

Please connect your ODrive.
You can also type help() or quit().

In [1]: dump_errors(odrv0)
axis0
axis: no error
motor: no error
fet_thermistor: no error
motor_thermistor: no error
encoder: no error
controller: no error
axis1
axis: no error
motor: no error
fet_thermistor: no error
motor_thermistor: no error
encoder: no error
controller: no error

In [2]: odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL

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

In [4]: odrv0.axis0.controller.input_vel = 1

In [5]: dump_errors(odrv0)
axis0
axis: Error(s):
AXIS_ERROR_MOTOR_FAILED
motor: Error(s):
MOTOR_ERROR_PHASE_RESISTANCE_OUT_OF_RANGE
fet_thermistor: no error
motor_thermistor: no error
encoder: no error
controller: no error
axis1
axis: no error
motor: no error
fet_thermistor: no error
motor_thermistor: no error
encoder: no error
controller: no error

In [6]: odrv0.axis1.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE

In [7]: odrv0.axis1.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL

In [8]: odrv0.axis1.controller.input_vel = 1

In [9]: dump_errors(odrv0)
axis0
axis: Error(s):
AXIS_ERROR_MOTOR_FAILED
motor: Error(s):
MOTOR_ERROR_PHASE_RESISTANCE_OUT_OF_RANGE
fet_thermistor: no error
motor_thermistor: no error
encoder: no error
controller: no error
axis1
axis: Error(s):
AXIS_ERROR_INVALID_STATE
AXIS_ERROR_MOTOR_FAILED
motor: Error(s):
MOTOR_ERROR_PHASE_RESISTANCE_OUT_OF_RANGE
fet_thermistor: no error
motor_thermistor: no error
encoder: no error
controller: no error

In [10]: quit

pi@raspberrypi:~ sudo python3 oconfig.py 123 Looking for ODrive... Found ODrive. Erasing pre-exsisting configuration... Saving manual configuration and rebooting... Manual configuration saved. Make sure the motor is free to move, then press enter... Calibrating Odrive for hoverboard motor (you should hear a beep)... Error: Odrive reported an error of 1 while in the state AXIS_STATE_MOTOR_CALIBRATION. Printing out Odrive motor data for debug: error = 0x0001 (int) armed_state = 0 (int) is_calibrated = False (bool) current_meas_phB = -0.29879117012023926 (float) current_meas_phC = -0.04254560172557831 (float) DC_calib_phB = -0.26576003432273865 (float) DC_calib_phC = 0.163455069065094 (float) phase_current_rev_gain = 0.02500000037252903 (float) effective_current_lim = 10.0 (float) current_control: p_gain = 0.0 (float) i_gain = nan (float) v_current_control_integral_d = 0.0 (float) v_current_control_integral_q = 0.0 (float) Ibus = 0.0 (float) final_v_alpha = 0.0 (float) final_v_beta = 0.0 (float) Id_setpoint = 0.0 (float) Iq_setpoint = 0.0 (float) Iq_measured = 0.0 (float) Id_measured = 0.0 (float) I_measured_report_filter_k = 1.0 (float) max_allowed_current = 60.75 (float) overcurrent_trip_level = 67.5 (float) acim_rotor_flux = 0.0 (float) async_phase_vel = 0.0 (float) async_phase_offset = 0.0 (float) gate_driver: drv_fault = 0 (int) timing_log: general = 37907 (int) adc_cb_i = 2578 (int) adc_cb_dc = 12846 (int) meas_r = 7566 (int) meas_l = 9875 (int) enc_calib = 31161 (int) idx_search = 54958 (int) foc_voltage = 7538 (int) foc_current = 17471 (int) spi_start = 21905 (int) sample_now = 37177 (int) spi_end = 64920 (int) config: pre_calibrated = False (bool) pole_pairs = 7 (int) calibration_current = 10.0 (float) resistance_calib_max_voltage = 2.0 (float) phase_inductance = 0.0 (float) phase_resistance = 0.0 (float) torque_constant = 0.03999999910593033 (float) direction = 0 (int) motor_type = 0 (int) current_lim = 10.0 (float) current_lim_margin = 8.0 (float) torque_lim = inf (float) inverter_temp_limit_lower = 100.0 (float) inverter_temp_limit_upper = 120.0 (float) requested_current_range = 60.0 (float) current_control_bandwidth = 1000.0 (float) acim_slip_velocity = 14.706000328063965 (float) acim_gain_min_flux = 10.0 (float) acim_autoflux_min_Id = 10.0 (float) acim_autoflux_enable = False (bool) acim_autoflux_attack_gain = 10.0 (float) acim_autoflux_decay_gain = 1.0 (float) pi@raspberrypi:~



what can i do ? i cant config any motor. Also whit out the upgrade it is not possible to config a motor al you hear is a litel “click” but no beep.

“Phase resistance out of range” means you either have a bad motor, or a wiring problem. Sometimes it’s because you’re commanding axis0 and the motor is actually connected to axis1 (or vice-versa)

Thanks, but I am wondering, I just put the board with the capacitors between the pins. I didn’t change any wire ring. And if I put it out I have the same problem.
By robby

Hey, i try’d the motor on e FSESC 4.12 it worked whiteout any problems . Perhaps the board died?

It may just be a high resistance motor?
@Robbyatbln Try increasing motor.config.resistance_calib_max_voltage

The motor worked perfect before I upgraded with the resistor.

But now I can’t do anything on both channels.

It could have been just on the edge of working at the default calibration voltage.
See this thread where someone had a PHASE_RESISTANCE_OUT_OF_RANGE error and fixed it by increasing resistance_calib_max_voltage.

I have tested this yesterday.

Is it possible to check the board and perhaps repair it?

Have you tried removing the capacitor boards?

Yes, I made on a board witch I can plug out or between and now nothing works, with and without the same error