How do I control individual motors in a drivetrain?

I have a drivetrain and I want to limit its torque in vexcode v5 pro. However, there is no way for me to do so. Any ways to work around this?

Do you want to limit the torque of the motors or run a motor separate of the drivetrain? There is no way to drop toque without dropping motor power or using a ratio. As for a motor independent of the drive, define it using text and not vex’s user interface.

I want to limit the torque of the motors already in the drivetrain

what do you mean by “limit the torque”? torque is not a variable you can directly adjust through code. By changing the speed of the motors in code, you can vary the torque as an effect to some degree, but not without altering the speed as well.

You can decrease the motor power, but that will decrease the speed as well. You could also use a gear train to increase speed and decrease torque. You could also use 5.5w smart motors spas they have the same speed p, but half the torque. Really it depends on why you want lower torque.

I meant using the setMaxTorque function. I dont know exactly what it does other than that you can use it to decrease torque. Speed isnt an issue for me

1 Like

Torque is not independent of speed on DC motors –– speed is inversely proportional to torque. So, you can lower the stall torque of the motor (not sure why you’d want to do that) by decreasing the voltage output. Also, the v5 firmware interferes with what you’d expect the curve to look like.

v5 Motor Curve:
note, v5 motors are DC motors which is a little bit confusing

Typical DC Motor Curve


Sorry for the ping, but do you have any idea on how to limit the max torque in a drivetrain? I want to use a setMaxTorque style function but cant do so on the drivetrain. Speed is not a concern.

Thank you!

Can you specify the problem you’re trying to solve? Why do you want to limit the torque output of the motors? We can’t help you if you don’t provide more details…

Screen Shot 2021-04-09 at 10.40.12 PM
This was pulled directly from the function definition within vexcode. The function does what it says it’s doing. It won’t allow the motor to produce a torque higher than what you set based on the units you’re using, and I believe it’s defaulted to the max torque output already.

I’m trying to fix the issue with slop in the motors themselves by “priming” them, in other words, engaging the motors so that there is no delay in moving the bot. In other words, I want the motors to turn, but not with enough torque to move the bot

Sorry if it doesnt make much sense, it’s kind of hard for me to describe.

1 Like

What you might want to do instead is measure the torque load on the motor. If the load passes a certain threshold, then the system is engaged, otherwise it’s in the slop region (there is significantly less torque acting against the motor when it’s not fully engaged with the system). While the motor is in the slop region, then idle power should be applied to the motor in the direction that you want to move in.

A simpler solution is to prevent the motors from ever reaching 0 power output so they’re constantly fighting against slop when the system is stationary. But, I would say if slop is that big of an issue in your system, then you probably should consider a mechanical solution. Can you describe the system that you want to correct slop on (i.e. external gear ratios, motor cartridge, etc)?


I figured out a solution, which, funnily enough, is exactly what you described. I’m trying to deal with the inherent slop in the v5 motor itself, not any external gearing or cartridge stuff

Edit: sorry if I seemed rude a bit earlier, I just wanted an answer really quick lol


This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.