IQ Motor Speed Control

My focus for the past 8 years is been with VRC but I was recently teaching elementary students the fundamentals of Vex IQ. We had each student build a push bot with two motors and then held a mini competition.

What I noticed was that the motors don’t seem to accelerate in a very linear progression. The light weight bots seemed to sit still until the controller sticks were at about 80%. This made driving pretty difficult as it was either stopped or full speed. I plan to test this more but I thought I would get your thoughts on my issue. Have you been able to gradually change speed with your IQ bots?

The IQ brains have the latest firmware, charged batteries, and are a very basic push bot with two motors.

Can you elaborate a bit more? Using the joysticks for arcade controls, the speed of the motor is determined by the throttle of the stick. What is the deadband value? Is the robot not moving at all until the joystick is at 80%?

Again, I need to test more. Hard to evaluate during a class. I tried driving one of the robots along with the kids and it was difficult.

What is the deadband value? Default / zero.
Is the robot not moving at all until the joystick is at 80%? Correct. It is difficult to get the robot rolling on the field until the stick is pushed pretty far. Ill see if I can shoot a video tonight.

Deadband is the minimum value before the motor responds. Typically this is to account for the fact that the joysticks may not perfect sit a zero, and setting a deadband value eliminates “creeping”. The value is normally set low to something like 10 or 15… it’s up to the team to set it depending on the behavior of the controller.

Would it be possible to post the code?

1 Like

No code. Just a controller and 2 motor chassis in the config.

Can you tell us about how the motors are attached to the wheels? Direct drive? Gearing? Wheel type? Floor composition?

Direct drive, IQ competition field. Nothing special.

Ok, you’ll need to do some more testing. I just grabbed a standard flexbot that has direct drive and it starts moving (abet slowly) at 25% of the stick.

1 Like

OK, it looks like you’re using the built-in driver program in the brain and not a custom coded teleop.

In that case, I believe port assignments may matter. Do you know which ports the motors are plugged into? Also, the built-in driver program uses a tank style control. Here’s the list of default port assignments.


Also make sure the controller is calibrated as well:


If, after joystick calibration, you still see that it takes control values way larger than 25% to move the bot, then I would bet it is static friction coming from either the drivebase or from the motor internal components.

It is easy to do visual inspection, wiggle driveshafts, and rotate wheels by hand. Then you could pull the motors from the chassis and try to rotate them manually to see if there is any difference between apparent force it takes to turn various old and new motors.

The next step would be to see at which control values each disconnected motor will start spinning and/or its rpm at the max power.

While IQ motors are not user serviceable, this way you could, at least, sort them into “good”, “satisfactory”, and “really bad” piles.

One season we had motors from the “really bad” pile serve their final duty by rotating a tray with team buttons at the competitions.


I have a code that could fix that issue, just pm me I will send it to you.

I am beginning to think that the issue is worn out motors. Still plan to test further.

Thanks everyone.

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