No action from ODrive 3.6 56V

I have been troubleshooting this board for the last two days without any luck, at first I couldn’t update the firmware but I solved that by flashing it with an ST-Link with the latest release, that happened successfully as I can now run the
odrv0.config.gpio9_mode = GPIO_MODE_DIGITAL
command, which would not work before. Right now I am following the hoverboard tutorial to set up the hall sensors and the motor, but the final goal is to achieve torque control on my JD DCH-6829F Motor.
By flashing the board with the new firmware something made it so that the board is not recognized as genuine anymore, it appears now as dev0 instead of odrv0 (it would not before). I can run all the commands in the guide and my configuration looks like this (here trying sensorless mode)

DC_calib_phA: 3.7661430835723877 (float)
DC_calib_phB: -2.5047733783721924 (float)
DC_calib_phC: -1.261103630065918 (float)
I_bus: 0.0 (float)
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: 10.0 (float)
current_control_bandwidth: 1000.0 (float)
current_lim: 7.0 (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: 2 (uint8)
phase_inductance: 0.0 (float)
phase_resistance: 0.0 (float)
pole_pairs: 11 (int32)
pre_calibrated: True (bool)
requested_current_range: 60.0 (float)
resistance_calib_max_voltage: 2.0 (float)
torque_constant: 0.2290000021457672 (float)
torque_lim: inf (float)
current_control:
I_measured_report_filter_k: 1.0 (float)
Ialpha_measured: 0.0 (float)
Ibeta_measured: 0.0 (float)
Id_measured: 0.0 (float)
Id_setpoint: 0.0 (float)
Iq_measured: 0.0 (float)
Iq_setpoint: 0.0 (float)
Vd_setpoint: 0.0 (float)
Vq_setpoint: 0.0 (float)
final_v_alpha: 0.0 (float)
final_v_beta: 0.0 (float)
i_gain: nan (float)
p_gain: 0.0 (float)
phase: 0.0 (float)
phase_vel: 0.0 (float)
power: 0.0 (float)
v_current_control_integral_d: 0.0 (float)
v_current_control_integral_q: 0.0 (float)
current_meas_phA: -3.7689144611358643 (float)
current_meas_phB: 2.5054314136505127 (float)
current_meas_phC: 1.2639029026031494 (float)
effective_current_lim: 6.79896354675293 (float)
error: 0 (uint64)
fet_thermistor:
config: …
temperature: 23.458904266357422 (float)
is_armed: False (bool)
is_calibrated: True (bool)
last_error_time: 0.0 (float)
max_allowed_current: 60.75 (float)
max_dc_calib: 6.075000286102295 (float)
motor_thermistor:
config: …
temperature: 0.0 (float)
n_evt_current_measurement: 29406 (uint32)
n_evt_pwm_update: 29413 (uint32)
phase_current_rev_gain: 0.02500000037252903 (float)

In another post I read that the motor is not supposed to turn, although the guide says to make sure it can run freely, I checked voltages on the motor to make sure it is not the motor that is broken and the voltages are in fact all 0 even if I run the open loop or closed loop commands, the only way I can make it do a small twitch is by running the odrv0.axis0.requested_state = AXIS_STATE_ENCODER_HALL_POLARITY_CALIBRATION command, so I am missing some detail that makes the motor run? could it be that the odrive is just broken or is it common to get stuck at this point?

Thank you in advance to anyone who can help.

1 Like

Did you buy the board from odriverobotics.com? I didn’t realize it was possible to cause this with an STLink.

I’m missing something here. You did AXIS_STATE_FULL_CALIBRATION_SEQUENCE then checked dump_errors(odrv0)?

1 Like