Hello! I have been just learning how to use the ODrive, reading up on forums and have been running into this problem with calibrating my motor.
Here’s the motor I’m using - [D5065-270KV Brushless Motor DUAL SHAFT MOTOR
Here’s the encoder - CUI AMT10E2
After I run odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE, the motor not moving.
Here are the dump errors:
system: not found
axis0
axis: Error(s):
UNKNOWN ERROR: 0x00000100
motor: no error
sensorless_estimator: no error
encoder: Error(s):
ENCODER_ERROR_CPR_POLEPAIRS_MISMATCH
controller: no error
axis1
axis: no error
motor: no error
sensorless_estimator: no error
encoder: no error
controller: no error
After reading up on this I tried shadow count to make sure my encoder is working and I do get proper values for It. Any clue where to go from here. Thanks for all the help!
Does the motor move half a turn and stop, or does it not move at all?
If it moves in one direction and stops: Please obviously check that your encoder CPR and motor pole pairs are correct. Also check for any slippage of the encoder on the shaft - it should be firmly attached.
If it doesn’t move at all, the error would normally be ENCODER_NO_RESPONSE …
edit: see my reply to your other thread:
Please double check the shadow_count by moving the motor as close to 1 turn as you can, and see if the counts change by 8192 per turn, or 5120.
You can use the command start_liveplotter(lambda: [odrv0.axis0.encoder.shadow_count])
to throw the position onto a live graph.
Also, the counts may be 5120x4 i.e. 20480 cpr (PPR is not the same as CPR due to the way quadrature decoding works) therefore please also try setting cpr to 20480
I think the system: not found can be safely ignored on ODrive 3.6. ODrivetool is becoming increasingly focused towards the proprietary V4, which has a “system” property while the 3.6 does not.