Encoder with index/Z signal needs offset_calibration every time start up or not?

Hi,all
I have an encoder with index signal.I was told that I need to run “encoder offset calibration"only once,and after that just search for the index signal every boot. But I found that, I have to run “encoder offset calibration” every boot,too. If not,the motor will work only for the first time after odrivetool sent command. And after running"reboot”, errors showed like this:


I am confused and frustrated.

  1. What are the reasons of these errors?
    2.Does the encoder need startup_encoder_offset_calibration? If not, how can I avoid these errors? If yes, odrive may be not suitable for my project (it would be disappointing).
    I’d appreciate it if you could help me.

If you calibrate the offset once, and then set encoder.config.pre_calibrated=True and save config, you should not have to calibrate it again on boot.

  1. As Towen said, the process is:
encoder.config.use_index = True
axis.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
encoder.config.pre_calibrated = True
motor.config.pre_calibrated = True
odrv.save_configuration()

Then at boot, you run index search only and it will work.

  1. The error you’re showing (overspeed) is due to vel_limit being too low, or too low of a load on the motor for torque mode

Hi,Towen
Thank you for your reply.It’s good to confirm that I don’t need to run encoder_offset_calibretion every boot.

Hi Wetmelon,
Thank you for your reply. I configured my encoder as you said, and I mounted a gear reducer to increase the load on the motor. The motor works much better than before,though those errors still exist sometimes, but it will work normally after reboot now! I think I can solve the problem thoroughly. Thanks a lot!