Motor doesn't spin when requested state is AXIS STATE ENCODER INDEX SEARCH

although there is no load on my motor. The motor is not spinning to search for the index when

odrv0.axis0.requested_state = AXIS_STATE_ENCODER_INDEX_SEARCH

how can i debug this?

odrv0.axis0.motor.config.resistance_calib_max_voltage = 10.0
odrv0.axis0.motor.config.calibration_current = 10.0

have you checked for errors? dump_errors(odrv0) ?

@towen the reason this is driving me crazy is because dump_errors(odrv0) doesn’t show any error.


When i go to closed loop position control and command a position, the motor is getting stuck then it either heats up along with the FETs or it throughs this error below


Is there any load on the motor while it is trying to do the index search?

Also, it is possible that there is a lot of noise which is causing the index to be ‘found’ immediately and therefore an incorrect commutation is applied (which would explain why you get no motion and lots of heat when you try to go to position control).
Are you using the ferrite rings? Do you have any filtering on the index pin e.g. 22nF capacitor to ground, etc?

indeed, it is a noise in the encoder, i am using CUI 102 (which has index signal). I added 47nF cap to ground on the index, added ferrite rings, all that helped. But it turned out later that the motor was causing the issue, once i replaced the motor with a new one and ran calibration again, the setup runs perfectly. what could have gone bad with the motor? Is there a quick way to spot an erroneous motor?

1 Like

It could be a short between one of the motor phases and the casing. You can check that with a multimeter / bench power supply.