VEXos 1.0.9 voltage control and velocity control issues

Recently my team has been having some motor torque issues with voltage vs. velocity control on firmware 1.0.9. After updating firmware, motors given 12000mV are seemingly far less powerful than motors that are running velocity control at 200rpm.
If it helps, we did also change to a different brain just prior to updating firmware in case a faulty brain could possibly cause this.

Additionally, I’m using PROS and no code changes were made besides changing firmware and comparing velocity control/voltage control on the same subsystems.

Has anyone else experienced this? Is it an issue with VEXos 1.0.9?


I dont want to be spreading rumors or anything, but If I have heard correctly VexOS 1.0.9 limits voltage, despite the motors being able to handle it completely fine.

I would like to see more of an official statement somewhere for this.

1 Like

This completely untrue. No change was made to motor limits in 1.0.9. All vexos firmware versions have limited maximum motor voltage to 12V.

I’m surprised you see any difference. We made some changes to the motor current cap in 1.0.9 but this only impacts performance when more than 8 motors are used, in other words, we made some changes to improve performance for VexU when they are using all 20 motors, the V5 is less likely to have issues under maximum load.
How are you measuring power on the motor ? What readings do you get for motor current and voltage ? (remember, the returned measured voltage will be reduced when the motor is stalled, this is the only way to reduce current, but this behavior has not changed throughout all revisions of vexos). Are you comparing 1.0.9 to 1.0.8 or some earlier version ?


Thanks for the response. Good to hear that you haven’t changed the voltage limit at all.

Did you try to report motor temperature?

Could your power loss be caused by the temperature triggers cutting the power?

So, I did some quick testing. I ran this on both of my robot’s rollers with voltage control and then velocity control. On voltage control when I held the roller and stopped the motor from being able to move it at all, the motor reported MAXIMUM (but usually around 1.5A when I held it) of 2A. When I held it with velocity control running, the motor took 2.5A instantly. Both times were tested with 12000mV voltage control and 200rpm velocity control, and note that I did test velocity control after voltage control so the motor isn’t stalled (there is no temperature level warning on the brain either). When I printed measured voltage, I got close to 12000 with voltage control and around 10000 with velocity control. Here are videos:

Velocity control:

Voltage control:

It’s quite the stark difference in current. Here is what my brain setup looks like:
I have 8 motors, 1 IMU, and 1 radio plugged in.


Well, I retested and find no issues.
the code I used was this.

      if( c.ButtonA.pressing() ) {
          m1.spin( fwd, 200, rpm );
          m2.spin( fwd, 12000, voltageUnits::mV );
        else {

with no load on the two motors I see these numbers.

The motor under pid control is running at around 10V, the voltage control motor is at almost 12V.

with motors stalled, I see this.

both are capped at 2.5A, voltage on both has dropped to essentially the same, that’s how current is capped.

Now we have no C++ api in VEXcode to read motor voltage, are you using PROS ?

The only time I see that motor current would be capped with 8 or less motors is when total battery current is > 16A for more than 2 seconds. I’ll repeat the test with 8 motors later, don’t have time right now.


I am using PROS. Is there a possibility that a bad brain could be the issue? Can you send me your VEXCode code so I can test what it does on my system?

Here. (9.1 KB)


@jpearman Have you had a chance to test on testbed with 8 motors?

I did, everything is working as expected, that is, motors are still being capped at 2.5A in both voltage and velocity controlled modes.


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