Phase resistance out of range after changing phase wire lengths

I am trying to run a Maxon BLDC Motor. I did a preliminary test with fairly short wire leads and I can get it to run, but in the actual application the wires are about 2m long and I am getting the error PHASE_RESISTANCE_OUT_OF_RANGE when running the motor calibration. I am using a calibration current of 6A and a calibration voltage of 6V. Is there anything i’m missing? Shown below is my output from the motor information:

In [16]: odrv0.axis1.motor
Out[16]:
error = 0x0001 (int)
armed_state = 0 (int)
is_calibrated = True (bool)
current_meas_phB = 0.01199275255203247 (float)
current_meas_phC = 0.039005160331726074 (float)
DC_calib_phB = -0.9182701110839844 (float)
DC_calib_phC = -0.7032621502876282 (float)
phase_current_rev_gain = 0.012500000186264515 (float)
effective_current_lim = 10.0 (float)
current_control:
p_gain = 0.01942319981753826 (float)
i_gain = 18.89300537109375 (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 = 30.375 (float)
overcurrent_trip_level = 33.75 (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 = 3803 (int)
adc_cb_i = 3982 (int)
adc_cb_dc = 14758 (int)
meas_r = 10906 (int)
enc_calib = 58867 (int)
idx_search = 43682 (int)
foc_voltage = 10878 (int)
foc_current = 34998 (int)
spi_start = 32476 (int)
sample_now = 61632 (int)
spi_end = 25031 (int)
config:
pre_calibrated = True (bool)
pole_pairs = 11 (int)
calibration_current = 6.0 (float)
resistance_calib_max_voltage = 6.0 (float)
phase_inductance = 0.00019423199410084635 (float)
phase_resistance = 0.18893004953861237 (float)
torque_constant = 13.600000381469727 (float)
direction = 1 (int)
motor_type = 0 (int)
current_lim = 20.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 = 25.0 (float)
current_control_bandwidth = 100.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)

Thanks, I’ll give these a try. How effective would these be if they are further away from the ODrive terminals (6 inches down line)? The controller is currently in a very small enclosure and I fear the rings may not fit directly at the terminals.

Less. Somewhat but less.

Also, have you measured the resistance of the wires with a multimeter? It’s possible you just have a bad solder joint…

1 Like

That seemed to be the issue. Thanks for the help

2 Likes