How to solve this error (motor make beep sound but not moving)

Hello, I’m using Odrive3.6 24v and D5065 270KV motor with ATM10 Encdoer.

After motor and encoder configuration setup, I wrote the command “odrv0.axis1.requested_state = AXIS_STATE_MOTOR_CALIBRATION”.
The motor move very little and make the beep sound, but not move.
Can I solve this problem?

This is motor config
In [40]: odrv0.axis1.motor.config
Out[40]:
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)
acim_slip_velocity: 14.706000328063965 (float)
calibration_current: 10.0 (float)
current_control_bandwidth: 1000.0 (float)
current_lim: 10.0 (float)
current_lim_margin: 8.0 (float)
direction: 0 (int32)
inverter_temp_limit_lower: 100.0 (float)
inverter_temp_limit_upper: 120.0 (float)
motor_type: 0 (int32)
phase_inductance: 1.5480663932976313e-05 (float)
phase_resistance: 0.09357212483882904 (float)
pole_pairs: 7 (int32)
pre_calibrated: False (bool)
requested_current_range: 60.0 (float)
resistance_calib_max_voltage: 2.0 (float)
torque_constant: 0.029999999329447746 (float)
torque_lim: inf (float)

Encoder Config
In [41]: odrv0.axis1.encoder.config
Out[41]:
abs_spi_cs_gpio_pin: 1 (uint16)
bandwidth: 1000.0 (float)
calib_range: 0.019999999552965164 (float)
calib_scan_distance: 50.26548385620117 (float)
calib_scan_omega: 12.566370964050293 (float)
cpr: 8192 (int32)
enable_phase_interpolation: True (bool)
find_idx_on_lockin_only: False (bool)
idx_search_unidirectional: False (bool)
ignore_illegal_hall_state: False (bool)
mode: 0 (int32)
offset: 0 (int32)
offset_float: 0.0 (float)
pre_calibrated: False (bool)
sincos_gpio_pin_cos: 4 (uint16)
sincos_gpio_pin_sin: 3 (uint16)
use_index: False (bool)
zero_count_on_find_idx: True (bool)

Dump_errors(odrv0) :
In [43]: dump_errors(odrv0)
system: not found
axis0
axis: Error(s):
UNKNOWN ERROR: 0x00000100
motor: no error
sensorless_estimator: no error
encoder: Error(s):
ENCODER_ERROR_ILLEGAL_HALL_STATE
controller: no error
axis1
axis: no error
motor: no error
sensorless_estimator: no error
encoder: no error
controller: no error

The test video : Odrive motor driver test - YouTube

Please, help me guys.

You may need capacitors (22nF) on the hall sensor inputs

EDIT: Wait, why are you using HALL encoder mode? That’s an Incremental encoder on the back of a motor that doesn’t have hall sensors. With the AMT10 encoder and the 5065 from the shop you can just do

odrv0.erase_configuration()
odrv0.axis1.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
odrv0.axis1.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL

Thank you, I solve the problem by your comments.

1 Like