I have configured all things properly according to the datasheet, and the hardware connection is also correct, but still i am getting an error of NO Response. I also attached the datasheet of motor and encoder.
odrv = odrv0
odrv.config.dc_bus_overvoltage_trip_level = 48
odrv.config.dc_bus_undervoltage_trip_level = 10.5
odrv.config.dc_max_positive_current = 30
odrv.config.dc_max_negative_current = -0.01
odrv.config.brake_resistor0.enable = False
odrv.axis0.config.motor.motor_type = MotorType.HIGH_CURRENT
odrv.axis0.config.motor.pole_pairs = 7
odrv.axis0.config.motor.torque_constant = 0.04135
odrv.axis0.config.motor.current_soft_max = 30
odrv.axis0.config.motor.current_hard_max = 49
odrv.axis0.config.motor.calibration_current = 10
odrv.axis0.config.motor.resistance_calib_max_voltage = 2
odrv.axis0.config.calibration_lockin.current = 20
odrv.axis0.motor.motor_thermistor.config.enabled = False
odrv.axis0.controller.config.control_mode = ControlMode.POSITION_CONTROL
odrv.axis0.controller.config.input_mode = InputMode.PASSTHROUGH
odrv.axis0.controller.config.vel_limit = 1000
odrv.axis0.controller.config.vel_limit_tolerance = 1.2
odrv.axis0.config.torque_soft_min = -math.inf
odrv.axis0.config.torque_soft_max = math.inf
odrv.can.config.protocol = Protocol.NONE
odrv.axis0.config.enable_watchdog = False
odrv.axis0.config.load_encoder = EncoderId.RS485_ENCODER0
odrv.axis0.config.commutation_encoder = EncoderId.RS485_ENCODER0
odrv.rs485_encoder_group0.config.mode = Rs485EncoderMode.AMT21_EVENT_DRIVEN
odrv.config.enable_uart_a = False
Anyone have a solution?
Hi! What encoder are you using?
Where did you buy the AMT212? From our shop, or from an external vendor like Digikey?
Hi was there any resolution to this? I am getting the same issue and I got my encoder from the Odrive shop
Hi! I believe we resolved this in DMs.
Can you show the configuration in the GUI (final tab in the configuration flow → copy the “python commands (advanced users)” ?
Also, in the inspector tab, what is rs485_encoder_group0.raw and rs485_encoder_group0.status?

odrv = odrv0
odrv.config.dc_bus_overvoltage_trip_level = 48
odrv.config.dc_bus_undervoltage_trip_level = 10.5
odrv.config.dc_max_positive_current = math.inf
odrv.config.dc_max_negative_current = -math.inf
odrv.config.brake_resistor0.enable = False
odrv.axis0.config.motor.motor_type = MotorType.PMSM_CURRENT_CONTROL
odrv.axis0.config.motor.pole_pairs = 7
odrv.axis0.config.motor.torque_constant = 0.05513333333333333
odrv.axis0.config.motor.current_soft_max = 70
odrv.axis0.config.motor.current_hard_max = 90
odrv.axis0.config.motor.calibration_current = 15
odrv.axis0.config.motor.resistance_calib_max_voltage = 2
odrv.axis0.config.calibration_lockin.current = 10
odrv.axis0.motor.motor_thermistor.config.enabled = False
odrv.axis0.controller.config.control_mode = ControlMode.VELOCITY_CONTROL
odrv.axis0.controller.config.input_mode = InputMode.VEL_RAMP
odrv.axis0.controller.config.vel_limit = 10
odrv.axis0.controller.config.vel_limit_tolerance = 1.2
odrv.axis0.config.torque_soft_min = -math.inf
odrv.axis0.config.torque_soft_max = math.inf
odrv.axis0.trap_traj.config.accel_limit = 10
odrv.axis0.controller.config.vel_ramp_rate = 10
odrv.can.config.protocol = Protocol.SIMPLE
odrv.can.config.baud_rate = 500000
odrv.axis0.config.can.node_id = 63
odrv.axis0.config.can.heartbeat_msg_rate_ms = 100
odrv.axis0.config.can.encoder_msg_rate_ms = 10
odrv.axis0.config.can.iq_msg_rate_ms = 0
odrv.axis0.config.can.torques_msg_rate_ms = 0
odrv.axis0.config.can.error_msg_rate_ms = 0
odrv.axis0.config.can.temperature_msg_rate_ms = 1000
odrv.axis0.config.can.bus_voltage_msg_rate_ms = 1000
odrv.axis0.config.enable_watchdog = False
odrv.axis0.config.load_encoder = EncoderId.RS485_ENCODER0
odrv.axis0.config.commutation_encoder = EncoderId.RS485_ENCODER0
odrv.rs485_encoder_group0.config.mode = Rs485EncoderMode.CUI_AMT21_EVENT_DRIVEN
odrv.config.enable_uart_a = False
Now when I tried again, I get procedure result as pole pair mismatch. So not sure what is happening. The motor moves in one direction during calibration and then stops.
It looks like the encoder is functioning properly. Assuming the motor is truly 7 pole pairs (as you have set), the pole pair mismatch error is likely either (1) due to load on the motor and insufficient calibration current, or (2) due to poor encoder mounting. For that first issue, you can increase the calibration lock-in current on the motor configuration tab, to maybe 30A. You’re welcome to also send some pictures of the encoder mounting, I’d be happy to take a look.
I increased the lockin current, and now it gives ‘No Response’ as procedure result. I tried different values between 10Amps and 30 Amps, it does the same. I am also adding photo of encoder setup. Its CUI-AMT212B-V-OD.
Hi Solomon,
Were you able to see what could have gone wrong?
What color shaft sleeve are you using in the encoder? You should be using the blue shaft sleeve (for 8mm shaft), but I don’t see it there.
If you didn’t use that, then the encoder won’t be coupled to the shaft, so the encoder won’t move when the shaft moves. If the rs485_encoder_group0.raw is showing valid data in the GUI but you’re still getting the NO_RESPONSE error, this is likely your cause. It would also explain the POLE_PAIRS_CPR_MISMATCH error – that can also be caused by marginal encoder assembly.
I have the blue one inside if you are referring to the one in this image
@solomondg do you think I can check something else?
Akshat
Hi! Apologies for the delay in my response.
Sometimes the connectors on those encoders can be damaged by impact, and the PCB can crack. Can you verify that in the GUI rs485_encoder_group0.raw consistently outputs a number 0-1 and tracks the encoder movement, as you move the motor shaft / wiggle the encoder cable/connector/etc?