I’m attempting to use odrive v3.6 with an uncommon BLDC motor that has relatively high resistance. During motor calibration I keep tripping the PHASE_INDUCTANCE_OUT_OF_RANGE error. I’ve been able to solve the PHASE_RESISTANCE_OUT_OF_RANGE error but cannot solve the inductance error. Reading through the docs and forums I’ve attempted modifying the motor.config.resistance_calib_max_voltage
and motor.config.calibration_current
but no values have produced a successful calibration.
Digging into the source code I found this check in the inductance validation:
// TODO arbitrary values set for now
if (!(config_.phase_inductance >= 2e-6f && config_.phase_inductance <= 4000e-6f)) {
error_ |= ERROR_PHASE_INDUCTANCE_OUT_OF_RANGE;
success = false;
}
Seems like no matter what values I use for the motor calibration this error will always trip. My next step would be to modify the arbitrary comparison values and re-flash the firmware. Any other suggestions here?
Below is a dump of ```motor.config
I_bus_hard_max: inf (float)
I_bus_hard_min: -inf (float)
I_leak_max: 0.10000000149011612 (float)
R_wL_FF_enable: False (bool)
acim_autoflux_attack_gain: 10.0 (float)
acim_autoflux_decay_gain: 1.0 (float)
acim_autoflux_enable: False (bool)
acim_autoflux_min_Id: 10.0 (float)
acim_gain_min_flux: 10.0 (float)
bEMF_FF_enable: False (bool)
calibration_current: 5.0 (float)
current_control_bandwidth: 100.0 (float)
current_lim: 8.800000190734863 (float)
current_lim_margin: 8.0 (float)
dc_calib_tau: 0.20000000298023224 (float)
inverter_temp_limit_lower: 100.0 (float)
inverter_temp_limit_upper: 120.0 (float)
motor_type: 0 (uint8)
phase_inductance: 0.010478250682353973 (float)
phase_resistance: 1.4928452968597412 (float)
pole_pairs: 5 (int32)
pre_calibrated: False (bool)
requested_current_range: 12.0 (float)
resistance_calib_max_voltage: 9.0 (float)
torque_constant: 1.0 (float)
torque_lim: inf (float)