I’m using odrivetool and firmware 0.5.2
While experimenting, I managed to erase pre-existing configuration accidentally. Thankfully I had done a backup pretty recently. However, when I restore, it mentions some parameters could not restore:
Restoring configuration from my_config.json...
Could not restore axis0.controller.config.anticogging.calib_anticogging: 'anonymous_interface_139794408369920' object has no attribute 'exchange'
Could not restore axis0.controller.config.anticogging.cogging_ratio: 'anonymous_interface_139794408364816' object has no attribute 'exchange'
Could not restore axis0.controller.config.anticogging.index: 'anonymous_interface_139794408372448' object has no attribute 'exchange'
Could not restore axis1.controller.config.anticogging.calib_anticogging: 'anonymous_interface_139794408369920' object has no attribute 'exchange'
Could not restore axis1.controller.config.anticogging.cogging_ratio: 'anonymous_interface_139794408364816' object has no attribute 'exchange'
Could not restore axis1.controller.config.anticogging.index: 'anonymous_interface_139794408372448' object has no attribute 'exchange'
Could not restore config.gpio3_pwm_mapping.endpoint: Expected value of type RemoteObject or None but got 'str'. An example for a RemoteObject is this expression: odrv0.axis0.controller._input_pos_property
Could not restore config.gpio4_pwm_mapping.endpoint: Expected value of type RemoteObject or None but got 'str'. An example for a RemoteObject is this expression: odrv0.axis0.controller._input_pos_property
Some of the configuration could not be restored.
Configuration restored.
Checking my current controller.config:
odrv0.axis0.controller.config
Out[3]:
anticogging:
anticogging_enabled: True (bool)
calib_anticogging: False (bool)
calib_pos_threshold: 1.0 (float)
calib_vel_threshold: 1.0 (float)
cogging_ratio: 1.0 (float)
index: 0 (uint32)
pre_calibrated: False (bool)
I do not know what my previous anticogging was set to, should have been defaults.
And my current gpio’s:
gpio3_pwm_mapping:
endpoint: None (object_ref)
max: 4.0 (float)
min: -4.0 (float)
gpio4_analog_mapping:
endpoint: None (object_ref)
max: 0.0 (float)
min: 0.0 (float)
gpio4_mode: 10 (uint8)
gpio4_pwm_mapping:
endpoint: None (object_ref)
max: 4.0 (float)
min: -4.0 (float)
The endpoints in my backup were mapped to odrv0.axis0.controller._input_vel_property
and
odrv0.axis1.controller._input_vel_property
It seems something else is messed up with my config now, because I get these errors:
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: Error(s):
MOTOR_ERROR_UNKNOWN_PHASE_ESTIMATE
sensorless_estimator: no error
encoder: no error
controller: no error
Are these caused just by wrong anticogging settings or something else?