V5 2 Motor Drive Train starts with 1 motor sooner than the other

When trying to program the V5 Robot with a 2 motor drive train, one of the motors starts sooner than the other.
The devices used are Drivetrain 2-motor, Left motor in port 1, Right Motor in port 2, and a 3-wire gyro in port A.
The code is
Drive Forward for 48 inches

One of the motors sometimes starts sooner than the other side causing the robot to not go straight.

Is there a way to prevent one of the motors from starting sooner, and keep the programming simple?
Is there a way to adjust one of the motors using the Drivetrain in setting up the devices?
Is this an issue with the 4 inch wheels and the type of ground it is on (tile floor, plywood, foam tiles)?

Thank you

What programming language are you using? Text or blocks?
How fast are you moving the bot? If you start both motors at full speed it might cause the bot to jerk, so you might want to start slow and ramping up the speed, or just moving slower in general.
Is the problem consistent? Does the same motor always lag behind the other? In that case there may be a problem with the motor, or some friction in the wheel.


I would check for mechanical issues first by running the code on two separate motors not connected to the robot. Preferably two different motors. This will help determine if this is a mechanical problem with your drive or the motors themselves. If the problem persists, you can make your own functions for driving straight. I am sure that there are several examples of this for both vexcode blocks and vexcode text.

1 Like

As always with code issues, posting the code gets us to a correct answer faster.


this sounds like you have more friction in one side of your drive than the other which slows the acceleration of one side, creating that imbalance.
you should try to fix this mechanically as well as possible, but you can also have code that accounts for minor variances and keeps the robot driving straight.


The code is

drive forward for 48 inches

It is using vex code blocks.

I think the issue was with the friction of the wheels. When the robot was not on the ground the wheels started at the same time. We added in gears so the back wheels are not being pulled, but instead driven by the gears.

Is there a way to slow down the left or right side of the robot while still using the drive train blocks? For example, have left motor go at 30% and right motor at 35%?

Thank you for your advice so far!

before attempting to correct the issue with code, you should make it drive relatively straight with mechanical changes. make sure all your holes are lined up and square (vex holes are larger than screws, so they have some slop which can lead to misaligned holes and friction in axles.)

pictures of your drive could help if you need some friction reducing build tips.