Hooking up the FFboard with odrive via CAN (post-hooking up)

Hello there, new here. Just got myself an Odrive to use for a FF-wheel with an FFBoard that will be controlling the servo I am using (80ST-M4025). The FFBoard will control it via torque_control_mode and that where Im struggling.

I want my odrive setup to function every reboot without re-calibrate and jump into torque_control_mode and closed_loop_mode.

Ive made a list of the command I put in to get it there but not sure if It will give me the results I need and want, please have a look and tell me if im missing a command, one too much, wrong ones etc?.

odrv0.config.enable_brake_resistor = True
odrv0.axis1.motor.config.pole_pairs = 4
odrv0.axis1.motor.config.torque_constant = 1
odrv0.axis1.motor.config.motor_type = MOTOR_TYPE_HIGH_CURRENT
odrv0.axis1.motor.config.resistance_calib_max_voltage = 10
odrv0.axis1.motor.config.calibration_current = 2
odrv0.axis1.motor.config.requested_current_range = 12
odrv0.axis1.encoder.config.cpr = 40000
odrv0.axis1.controller.config.enable_overspeed_error = False
odrv0.axis1.controller.config.control_mode = CONTROL_MODE_TORQUE_CONTROL
odrv0.axis1.encoder.config.use_index = True
odrv0.axis1.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
odrv0.axis1.encoder.config.pre_calibrated = True
odrv0.axis1.motor.config.pre_calibrated = True
odrv0.axis1.config.startup_encoder_index_search = True
odrv0.axis1.config.startup_closed_loop_control = True
odrv0.can.config.baud_rate = 1000000
odrv0.save_configuration()
odrv0.reboot()

/Odd

In the end it turned out to be a CAN-issue between the openFFBoard and the Odrive due to an update of the “CAN-communication” of the odrive, and the dev of OpenFFBoard fixed the fw and now its working this far.

Now a new “issue”/question. Im getting the commands through for 14Nm Torque, but what I am feeling is faaar from 14Nm, I must be missing some torque_control_mode setting but in the default control-mode I was getting way more than now and I really had to fight the motor.

1 Like

By default, torque mode in the ODrive has a velocity limiter enabled: ODrive.Controller.Config | ODrive

You can disable this by using enable_torque_mode_vel_limit = 0, or adjust the sensitivity by changing the vel_gain