Every time need calibration of ODrive when I reboot or restart the Odrive

After each reboot or restart of ODrive, I need to calibrate it every time. I used the following command for calibrating ODrive.

odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL

I’m using Hall sensors, so

odrv0.axis0.encoder.config.pre_calibrated=True

saved the configuration

odrv0.save_confuguration()

but still, I need to calibrate ODrive every time. Please help, ASAP.

1 Like

Did you also make the motor pre-calibrated?

Thank you for reply. Problem was solved,

odrv0.axis0.config.startup_closed_loop_control = True

1 Like

That just means you hadn’t set the state to closed loop, i.e. you hadn’t turned it on. Now it turns on by itself. Nothing to do with calibration. But glad you got it working. :slight_smile:

2 Likes

are you sure it works bro? I’ve checked my configuration it shows like this

I already set the “startup_closed_loop_control”: true, and if I set"startup_encoder_offset_calibration": false, motors won’t get into close loop.

@D-Latch You probably have a different encoder configuration.
If you want to use startup_closed_loop_control then you need to have either an absolute encoder (ideal) or you need to set up the index search. You also need to set pre_calibrated=True after the first calibration.