Motors won't run and UNKNOWN_PHASE_ESTIMATE after upgrade from 0.5.2 to 0.5.4

I backed up my config on 0.5.2 before the upgrade. Upgrade to 0.5.4 went fine without errors. I noticed most of my variables were incorrect after upgrade to I restored my last config.

Got these errors when restoring:

Waiting for ODrive...
Restoring configuration from my_config_7-2-2022.json...
Could not restore axis0.controller.config.enable_current_mode_vel_limit: property not found on device
Could not restore axis0.controller.config.anticogging.calib_anticogging: 'anonymous_interface_140514754912736' object has no attribute 'exchange'
Could not restore axis0.controller.config.anticogging.cogging_ratio: 'anonymous_interface_140514754907632' object has no attribute 'exchange'
Could not restore axis0.controller.config.anticogging.index: 'anonymous_interface_140514754914064' object has no attribute 'exchange'
Could not restore axis1.controller.config.enable_current_mode_vel_limit: property not found on device
Could not restore axis1.controller.config.anticogging.calib_anticogging: 'anonymous_interface_140514754912736' object has no attribute 'exchange'
Could not restore axis1.controller.config.anticogging.cogging_ratio: 'anonymous_interface_140514754907632' object has no attribute 'exchange'
Could not restore axis1.controller.config.anticogging.index: 'anonymous_interface_140514754914064' object has no attribute 'exchange'
Some of the configuration could not be restored.
17:44:28.480570487 [LEGACY_OBJ] protocol failed with 3 - propagating error to application
Configuration restored.

I tried to run the motors and no motion. Checked errors and have these:

In [2]: dump_errors(odrv0)
system: no error
axis0
  axis: no error
  motor: Error(s):
    MotorError.UNKNOWN_PHASE_ESTIMATE
  DRV fault: none
  sensorless_estimator: no error
  encoder: no error
  controller: no error
axis1
  axis: no error
  motor: Error(s):
    MotorError.UNKNOWN_PHASE_ESTIMATE
  DRV fault: none
  sensorless_estimator: no error
  encoder: no error
  controller: no error

How to resolve this UNKNOWN_PHASE_ESTIMATE?

Ok, didn’t remember but searching shows I got the exact same error last year after upgrading from 0.5.1. Thanks to @Lars for coming up with the solution:

For both axis, recalibrate:

    odrv0.axis0.encoder.config.pre_calibrated=False
	odrv0.axis0.motor.config.pre_calibrated=False
	odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
	odrv0.axis0.encoder.config.pre_calibrated=True
	odrv0.axis0.motor.config.pre_calibrated=True
	
	odrv0.axis1.encoder.config.pre_calibrated=False
	odrv0.axis1.motor.config.pre_calibrated=False
	odrv0.axis1.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
	odrv0.axis1.encoder.config.pre_calibrated=True
	odrv0.axis1.motor.config.pre_calibrated=True
4 Likes

This isn’t helping me, upon restart I get MOTOR_ERROR_UNKNOWN_PHASE_ESTIMATE
even if I just re calibrated and set the pre_calibrated settings both to true. It will run after calibration, but always gets that error on restart.

Before I thought it was because it needed an index, but I added one and even still it keeps giving me that error after working fine before reset. It’s very frustrating.

You have use_index set and you did the index search prior to going to CLOSED LOOP?