Hi! I’m trying to use an ODrive S1 with an AEAT-8800-Q24 (in a REV throughbore encoder). I’m configuring through the GUI, and I’m not getting anything out of the encoder. When I look at the ODrive in the inspector, spi_encoder0
’s status
is BAD_CONFIG
.
The following is the python commands from the GUI:
odrv = odrv0
odrv.config.dc_bus_overvoltage_trip_level = 13
odrv.config.dc_max_positive_current = 10
odrv.config.dc_max_negative_current = -2
odrv.config.brake_resistor0.enable = True
odrv.config.brake_resistor0.resistance = 2
odrv.axis0.config.motor.motor_type = MotorType.HIGH_CURRENT
odrv.axis0.config.motor.torque_constant = 0.009018538713195202
odrv.axis0.config.motor.pole_pairs = 7
odrv.axis0.config.motor.current_soft_max = 10
odrv.axis0.config.motor.current_hard_max = 23
odrv.axis0.config.motor.calibration_current = 10
odrv.axis0.config.motor.resistance_calib_max_voltage = 2
odrv.axis0.config.calibration_lockin.current = 10
odrv.axis0.controller.config.input_mode = InputMode.PASSTHROUGH
odrv.axis0.controller.config.control_mode = ControlMode.VELOCITY_CONTROL
odrv.axis0.controller.config.vel_limit = 100
odrv.axis0.controller.config.vel_limit_tolerance = 1
odrv.axis0.config.torque_soft_min = -0.05
odrv.axis0.config.torque_soft_max = 0.05
odrv.can.config.protocol = Protocol.NONE
odrv.config.enable_uart_a = False
odrv.spi_encoder0.config.mode = SpiEncoderMode.AEAT
odrv.spi_encoder0.config.ncs_gpio = 12
odrv.axis0.config.load_encoder = EncoderId.SPI_ENCODER0
odrv.axis0.config.encoder_bandwidth = 100
odrv.hall_encoder0.config.enabled = True
odrv.axis0.config.commutation_encoder = EncoderId.HALL_ENCODER0
To configure the ODrive I pressed the buttons from top to bottom in order on the GUI. i.e. “Erase & Reboot”, “Apply”, “Save & Reboot”, “Run Calibration Sequence”, “Save & Reboot”
I’m using a NEO 550 motor and using the built in hall effect encoder also, the REV through bore is being use as a load encoder after a reduction.
I’m not sure what causes BAD_CONFIG
, and the documentation doesn’t say.