i am running an odrive S1 with a M8325s motor and the onboard encoder. I have a microcontroller sending a canbus command correctly interpreted as a torque input. The system behaves as expected and exerts the requested torque, except that the effective_torque_setpoint stops following input_torque when input_torque is above 0.5 N.m. Any idea what could be limiting the torque? I have already verified every current limit i could find. The behavior is similar when commanded from the dashboard. i can set it to torque mode and set setpoint at 4 N.m but the current seems to be limited to about 4A and the effective torque setpoint does not go above 0.38 approx. However, when i switch to position or velocity it has no problem going up tu 15A.
In torque control mode, with torque mode velocity limit enabled, the ODrive uses vel_gain to derate the torque versus speed. With high torque motors, this can cause a torque limit even at standstill – see here for more information: Controller — ODrive Documentation 0.6.11 documentation
I’d recommend either tuning your vel_gain, or disabling enable_torque_mode_vel_limit – note that the latter can have safety considerations (as it removes the ODrive’s ability to limit the speed of your motor), so I’d strongly recommend just tuning your vel_gain.
Very interesting. Tuning my velocity gain effectively corrects the issue. I do want to keep the speed limit since this is a demo in which the user operates a lever on the motor to make it behave either as a damper or a spring in rotation. Many thanks.
Great to hear! Please let me know if there’s any other way I can help.