I’m using an ODrive S1 on FW 0.6.10 with a PMSM hub motor (15 pole pairs) and the onboard magnetic encoder.
My mechanical setup has the encoder geared relative to the motor: the encoder rotates about 5× faster than the motor (encoder_turns ≈ 5 × motor_turns). The encoder signal itself looks good — onboard_encoder0.raw moves smoothly and wraps correctly.
Motor calibration succeeds, but ENCODER_OFFSET_CALIBRATION always fails with POLE_PAIR_CPR_MISMATCH. The diagnostic value:
axis.observed_encoder_scale_factor ≈ 0.206
which matches the 1/5 ratio, so it seems the calibration logic is still seeing the mechanical gearing.
The GUI recommends i set my pole pairs to 3. But when i try that i get the same error.
I have tried a number of approaches but nothing seams to work.
Is this use case even supported?