I was in need to reset an axes position to zero at the current location. So I’ve set the axis to idle state, and used encoder.set_linear_count(0) and controller.pos_setpoint=0. That seemed to work.
However, yesterday I burned out a motor. Looking for reasons, I came about the idea that encoder.set_linear_count() would not update the motor winding current controller offset, and thus leads to abitrary commutation, and smoke.
So reseting the position by set_linear_count would require to repeat the calibration sequence for now.
Is this plausible? If so, it should be mentioned by the docs I guess
What would be the programatically way to reset an axis position to zero?
set_linear_position(0)
and pos_setpoint = 0
should be all you need. Internally it’s using a circular count for the commutation so it shouldn’t be burning out motors.