I have to use a high-power motor.
So I prepared the product of the link below and it is being tested.
A12 (8318) Swiss Motor Brushless Outrunner … - AliExpress
And I set the AMT10E2-V encoder to 1280PPR and used it.
There are currently problems.
“MOTOR_ERROR_UNKNOWN_PHASE_ESTIMATE” occurs when rebooting after using “odrv0.axis0.config.startup_closed_loop_control = True”.
I’m looking for a solution to these two.
First of all, this is the log that I tested.
I first set the initial setting, saved the setting, and set the closed loop.
The same error occurred.
The closed loop was set immediately after the error was initialized and full calibration was performed.
=============================================================
Connected to ODrive 3677385D3030 as odrv0
In [1]: odrv0.erase_configuration()
Oh no odrv0 disappeared
Reconnected to ODrive 3677385D3030 as odrv0
In [2]: odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_HIGH_CURRENT
…: odrv0.axis0.motor.config.current_lim = 60
…: odrv0.axis0.motor.config.calibration_current = 10
…: odrv0.axis0.motor.config.resistance_calib_max_voltage = 5
…: odrv0.axis0.motor.config.requested_current_range = odrv0.axis0.motor.config.current_lim + odrv0.axis0.motor.con
…: fig.current_lim_margin
…: odrv0.axis0.motor.config.pole_pairs = 20
…: odrv0.axis0.motor.config.torque_constant = 8.27 / 120
…: odrv0.axis0.motor.config.current_control_bandwidth = 100
…: odrv0.axis0.encoder.config.mode = ENCODER_MODE_INCREMENTAL
…: odrv0.axis0.encoder.config.use_index=True
…: odrv0.axis0.encoder.config.cpr = 1280 * 4
…: odrv0.axis0.encoder.config.bandwidth = 1000
…: odrv0.axis0.encoder.config.calib_scan_distance = 50
…: odrv0.axis0.controller.config.vel_limit = 20
…: odrv0.axis0.controller.config.control_mode = CONTROL_MODE_VELOCITY_CONTROL
…: odrv0.config.enable_brake_resistor = True
…: odrv0.config.brake_resistance = 2.0
…: odrv0.config.dc_max_negative_current = -0.01
In [3]: odrv0.save_configuration()
Oh no odrv0 disappeared
Reconnected to ODrive 3677385D3030 as odrv0
In [4]: odrv0.reboot()
Oh no odrv0 disappeared
Reconnected to ODrive 3677385D3030 as odrv0
In [5]: odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
In [6]: odrv0.axis0.motor.config.pre_calibrated = True
…: odrv0.axis0.encoder.config.pre_calibrated = True
…:
In [7]: odrv0.save_configuration()
Oh no odrv0 disappeared
Reconnected to ODrive 3677385D3030 as odrv0
In [8]: dump_errors(odrv0)
system: no error
axis0
axis: no error
motor: no error
sensorless_estimator: no error
encoder: no error
controller: no error
axis1
axis: no error
motor: no error
sensorless_estimator: no error
encoder: no error
controller: no error
In [9]: odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
In [10]: dump_errors(odrv0)
system: no error
axis0
axis: no error
motor: Error(s):
MOTOR_ERROR_UNKNOWN_PHASE_ESTIMATE
sensorless_estimator: no error
encoder: no error
controller: no error
axis1
axis: no error
motor: no error
sensorless_estimator: no error
encoder: no error
controller: no error
In [11]:
In [12]: odrv0.clear_errors()
In [13]: odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
In [14]: odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
In [15]: dump_errors(odrv0)
system: no error
axis0
axis: no error
motor: no error
sensorless_estimator: no error
encoder: no error
controller: no error
axis1
axis: no error
motor: no error
sensorless_estimator: no error
encoder: no error
controller: no error
In [16]:
=============================================================