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.
@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.