CubeMars R160 does not rotate

I have an Odrive v3.6 connected to a CubeMars R160 (KV120) motor.
The encoder is AMT 103 set to 2048 PPR (8192 CPR).
Motor has 14 pole-pairs.

The initial configuration of axis 1 was relatively straightforward, except for a ENCODER_ERROR_CPR_POLEPAIRS_MISMATCH error which was worked-around with a increase in the encoder.config.calib_range setting.

Full calibration was successful as was the encoder index search. The motor moved smoothly during the index search as well as during AXIS_STATE_STARTUP_SEQUENCE.

However, I’m unable to get the motor to rotate - not in CONTROL_MODE_VELOCITY_CONTROL, nor in CONTROL_MODE_POSITION_CONTROL. In both of these modes, there is a significant rise in current, but no movement. I have tried different settings of controller.input_vel and controller.input_pos in their respective control modes, but no movement.

Can you offer some advice here ?

I finally discovered the problem here.
The motor was connected to a harmonic drive. It seems that the slightly ‘springy’ response from the harmonic drive was affecting the encoder/phase calibration. When the motor was decoupled from the HD, and the calibration steps repeated, the motor started as expected.
For my application, it will not be feasible to decouple the harmonic drive each time a calibration needs to be performed. Perhaps it might be possible to rotate the motor to the encoder index position then manually set the phase offsets relative to the index…

Hey Will,

You need the encoder directly connected to the motor - it won’t work even on the output of a low-backlash harmonic drive, you’ll get unstable (and possibly unusable) performance. However, ODrive Pro and S1 have dual encoder support, so you could have an encoder directly on the motor for commutation, and an encoder on the gearbox output for the load positioning.