I would like to use torque limited position control with different torque limits for each direction. The torque limits are not fix but change dynamically based on user input. While prototyping over USB, I reached the expected behavior by updating the parameters config.torque_soft_min and config.torque_soft_max.
For the production version, I switched to CAN, which proved to be faster and more reliable than USB. How can I set config.torque_soft_min and config.torque_soft_max over CAN?
Totally doable – you can read/write any parameter over CAN (the same set you have over USB) using arbitrary parameter access. Every parameter has an endpoint ID, given in the flat_endpoints.json for your firmware version, and you can write torque_soft_min and torque_soft_max that way at runtime.