Why is direct drive with 600rpm motors not optimal?

Want to see whether someone has done a direct 600 rpm drive before but then lowered it via programming to only 400 rpm (to avoid awkward gear ratios and still get the blazing speed of high rpm).

Currently see two downsides with it

1.) Torque

Personally dont think torque matters too much in this game therefore not a big downside.

2.) Overheating

Hopefully not too big of an issue but will have to be helped with through “motorspray”…

600rpm drive is nigh uncontrollable on a 12ft by 12ft field

And if you slow it down to 400rpm in software, then you’ve just lost 1/3 of your torque for no reason.


You should never intent to only run your motors at 2/3s power. It is much more effective to just have a gear/sprocket ratio. As stated by @sazrocks, they are hard to control, but one of my sister teams built a 600 rpm motor bot. It was still hard for them to control with practice. In addition, a 600 rpm drive won’t necessarily last for 2 minutes if you end up getting pushed around a lot.

1 Like

the reduced torque is a much bigger deal than you might think. Torque is directly proportional to acceleration, so sometimes a wheel with more torque and less max speed can be faster. If you do 600 i highly recommend gearing it down to 360. This should be acceptably fast, easy to control woth some practice, and wont stall for at least a few minutes, but you should probably use quick swap, since cold in a can wont cool it as much between matches.


600 rpm is actually viable on 2.75" wheels. its still blazingly fast, but with a very skilled driver it is manageable.

It does depend on the game though, since change up bots can be insanely light and the complete lack of defense during LRT means that 600 rpm on 2.75" does have enough torque when built right.

But for a game like tower takeover, that would never work. too much load on the robot, too much defense.

if you want to achieve something close to 400rpm, a much better option than slowing your motors in code would be to use gears or chain to bring down a 600rpm motor. With gears the closest you can get is 428rpm with a 5:7 ratio, or 360rpm with a 3:5 ratio. with chain you can get 400rpm exactly, with a 12 tooth to 18 tooth sprocket ratio (2:3) but chain isn’t exactly reliable for a drive so I’d recommend the 3:5 ratio with gears over 2:3 with chain.


I would actually recommend using chains over gears at least for drives. A well built chain drive has a lot less friction and also weighs significantly less. On top of this it gives you more flexibility on motors placement. Only downside is that if chains snap, you’re screwed, but this can be remedied by building parts of your chassis around the chain so they are mostly covered.

But for 100% reliability, gears are probably the way to go.

sure, chains have a ton of advantages over gears. They’re pretty much better than gears in all but 2 ways, slop, and reliability.

even if your chain is perfectly tensioned, there will still be a lot more slop in your wheels compared to gears. This is a significant concern for programming.

but reliability is the biggest issue for me. I simple am not going to have the most important part of my bot rely on vex chain to function. I’ve experienced murphy’s law over drive chain too many times to ever go back.


It’s perfectly optimal except for the fact that you would never hit over 300 rpm with the acceleration. That being said, 2.75" wheels will handle 600 fine as long as your robot is under 10 lbs.


I looked at the device stats/graphs on motors and it seemed like after you surpass 50% of the max speed the torque starts decreasing? so wouldn’t slowing it down (up to some extent) prevent the torque from decreasing more than the 1/3?

Gas gas gas gotta step on the gas


decreasing efficiency bad. don’t be bad

also, the point is you’re literally throwing power away by limiting it like that. power is a valuable resource since teams are limited to a total of 88w (8 v5 motors rated for 11w each). angular velocity is directly proportional to power ( P=τω, where τ is torque and ω is angular velocity), so cutting the max rpm through code like that is like rubbing sand all over your bearings and expecting them to spin smoothly (bad analogy for efficiency losses).



Ethan, you essentially mean by lowering the rpm in code you are losing both torque and angular velocity since they are both related to power and each other??

Yes, because there is less voltage going towards the motor to turn the axle, so it’s not only that it’s going slower, it quite literally has less electrical power spinning the axle, which is why it loses torque.

1 Like

I need to clarify and correct some of the statements made in this topic.

The V4 cortex and 393 motors only allowed direct voltage control unless some form of closed loop control was implemented in the users code. The comments regarding less torque being available when sending the motors a lower requested speed (really voltage) are correct.

The V5 motors work differently, they implement internal closed loop control unless you explicitly specify the use of voltage control. That means that when you command the motor to run at a lower speed, for example 300rpm if the blue gear cartridge is installed, the motor will always try and achieve that speed and will use as much of the available torque as necessary to do that. The motor is internally measuring velocity and varying the voltage as necessary.

It is true to say that more torque would be available at the wheels if appropriate gearing is used to allow it to run at maximum speed (ie. if you only ever want 400rpm available at the wheel axle from a 600rpm motor, then using gears external to the motor will allow more torque at the wheel axle).

Hope this makes sense.


It was already said before, but I would like to emphasize, that each motor has a limited thermal resource.

Let say you have two similar robots of nearly identical mass, with one geared directly from 600 rpm cartridge and another geared down from 600 to 400 rpm.

Then, if you want to run them at the same speed, you command direct drive to 400 rpm, and one geared down to 600 rpm at the motor => 400 rpm at the wheels.

Since gearing down speed also gears up torque, it should be obvious that motors of the directly driven robot will need to produce 1.5 times more torque, than the motors of the geared down robot, to achieve the same acceleration profile.

more torque => more current => more heat

Anyone taking high school physics will learn that torque that motor generates is directly proportional to the current flowing through the motor. And the amount of heat generated in motor windings is proportional to the current squared times the resistance of the windings.

The more torque the motor has to produce, the more internal heat it will be generating and the sooner firmware overheat protection will be triggered, limiting max current and torque of the motor.

If robot is light enough not to trigger firmware overheat protection, then you may be fine running direct drive at lower rpm. You will even save more weight by not having extra gears.

However, if you want to carry more weight, without the risk of overheating and stalling, then you will be better off gearing it down to reduce torque demand on the motors. There is no way those gears will add an extra 50% to the robot’s weight.


I can confirm it does not work.
We had no Idea what we were doing early season.

Pain, suffering even. Torment, if you will.


Damnation, if you feel so inclined…


Despair, if it must be so…


Concerning one comment made in this thread: chains having less frictional losses than gears.

  1. My gut says this is wrong, flat out.

  2. This would be a great experiment to run. I expect losses will vary depending on gears/sprockets used, ratios, chain length, chain tension, etc.