Chain or Gear Drive?

Hey guys. I saw a discussion in another thread about chain efficiency, and I’ve had my own experiences with drive systems, but I want to ask: chain or gear drive? What have you had the most success with? What do you prefer? Any benefits or drawbacks you’ve found?

I personally prefer Chain Drive over Gear Drive, simply because of the freedom of placement of the motor and the wheel
Of course, this’ll depend on the quality of the chain (the smaller Vex Chains weren’t as good as I had expected when used only on one side of the wheel)
For some applications, I would use Tank Treads, especially with the new HS Sprocket & Chain Update allowing a wider range of ratios
Gears are better than sprockets when you want to work with finer ratio adjustments, since gears will have more teeth per unit length of circumference compared to sprockets, since sprockets need to have a minimum spacing between the teeth for the chain to fit in

So, in summary, you should use Sprockets for motors that have been geared already to a decent torque:speed

One reason I ask is because my gear drive system has some complications to where it is perfectly aligned/clean/symmetrical yet swerves to the left a decent amount (I’ve checked that weight is balanced too). I used gear drive, yet I’m willing to change it to chain if it’ll 1. Fix the problem, 2. Be an improvement overall, and 3. Hold up to drive stresses in competition (shocks, sudden loads once balls are picked up and I need more oomf in the wheels to push the bot, sudden shifts in direction, etc.). I do not have the high-strength kit, and with only a few weeks to competition and a tight budget I only have the thin chains and gears as an option (to double up chains/gears/use the tank tread kit would mean disassembling me entire robot base, and I prefer a solution where I don’t have to redo anything major). I’m also open to other ideas beyond gear, chain, etc. (hence the “other” option). Not to forget that also this thread is meant as a debate for the community, not just a fix for my problems (my problems are just context and a reason to ask).

I’m assuming that your drive train is a simple tank-steer system, and not holonomic. These are the primary reasons we’ve found robots don’t track straight:

  1. Friction on one side of the drive train. Make sure the wheels spin freely when the motor is not engaged. A bearing block that is skewed or smashed so that the axle binds is a common cause of increased friction, as are frame rails that are not perfectly aligned.

  2. The motor has a damaged gear head. If some of the gears inside the motor are partially broken the motor will not produce full RPM. Even if it still spins it might not be working at full power.

Good luck.

Also take a look at the trim on your remote - we sometimes find remotes with +100 on some of the channels…

What is the gear ratio on your robot ? it causes alot of problems with motors that are slightly less powerfull on one side while using using tank drive

I personally like chain drives, because they tend to look cooler and give the builder more freedom in how the drive base is configured. My team wasn’t a big fan of the non-high strength chain for a drive, though, because it tended to break.

It was 60:36, so 5:3. I chose it cause it was a good medium for speed and torque (not to mention that a 40:24 chain system is the same ratio, so thats why I considered chain as an option).

Right now my robot’s drive system only has limited room due to my minimalist design. However, I can easily attach a large and two mediums with space to spare, so it’s not like I’m constrained with space. It’s just a matter of not exceeding that space, and shooting for reliability (aka no swerving), strength (aka no breaking), and an ideal ratio.

I don’t exactly get what you mean by +100 trim, but my controller trim is set so it’s at rest in the proper place and all ports are equal. Not to mention this swerve is worst in autonomous, so the controller is not the issue. Thanks for the thought though.

Well, the drive wheels aren’t holonomic in design, are both parallel and facing forward, and are being run tank-steer style (though as said before, autonomous has the problem as bad, if not worse). I’ve checked the alignment on axles and bearings along with free spinning with low friction, but I shall check again. If that doesn’t work, I’ll have to open up the motor and see if anything is broken.

Thanks everyone for all your help! However, any more tips or comments on the chain vs. gear debate is welcome!

The only time that my team’s robots swerved was because of broken motors or axles that got pulled out of the motor. I would check each motor individually.

This year my team’s robot uses high strength chain for the drive base, but we are getting more uneven friction than with gears due to the amount of sprockets in my chain assembly.

When I get back to school I’m going to open the motors and see if the internals are all working properly and aren’t broken. Also, I am using C-channels, but I’m not entirely sure what you mean. My bearings and axles are mid-C-channel, so the flange shouldn’t cause problems.

Is this 2-wheel or 4-wheel drive?

If it is 2-wheel, try adding the chain to drive the other 2 wheels - using 4-wheel drive over 2 wheel drive should massively improve the swerve.

And, if the chain breaks, the robot will still be driveable.

Its three-wheeled design with the back wheel as just a phantom/turning wheel and the front two wheels drive the robot. It has worked fine as of now beyond the swerving, and I’d like to keep that design if possible due to its maneuverability, simplicity, etc. (And yes, I have checked to make sure the phantom wheel is centered, not moving when going forward, etc.)

There is (almost) always a trade off in everything we do. With robots, if you make it easier for them to turn when you want to turn, then it also makes them turn more easily when you want to go straight.

There’s a few things you can do to help with this problem… the software and sensor approach would have you put an encoder on each drive wheel and then… when you want to go straight… adjust the speed of the faster wheel down to that of the slower wheel. An easier solution… but not VEX competition legal… is to put a gyro (similar to the accellerometer, but measuring rotation instead of accelleration) onto your robot, and adjust wheel speeds to account for turning. We’ve used this on our last couple FRC 'bots. Works great (and makes the robot quite “bump resistant”), but tuning the software can be a pain.

A simpler, mechanical approach is that used by many FLL teams. They use a tube to connect their two drive axles together. The tube slides nice an snugly over the drive axle, and… due to friction… transmits some torque from the faster wheel to the slower wheel. When you want to go straight and the motors are “pretty close” to being at a similar speed, this transfer of torque is enough to keep the robot going straight. When you want to turn, however, the motors have enough power to overcome the friction and will drive one wheel forward and one in reverse.

I’m not quite sure of the best way to implement something like that in VEX, however… we’re a bit tube deprived… but if you can build a simple and reliable system to do do something similar, it should solve the problem… and perhaps put you in the running for a design award. Remember to document your process of solving this problem so you can discuss it with the judges!


An awesome (and complicated) mechanical solution to your problem is a dual differential drive. Google it for some awesome examples in Lego, then maybe lay out your own. Due to the way it works, you will always get perfectly parallel forward and backward motion. The down side is that it is mechanically complicated, you might need to gear up/down the motors (or add more) to get the strength or speed you want.

I built one just to do it and gave it 4 motors. It was pretty slow (I didn’t gear up/down the motors at all), but it tracked perfectly straight and it was mesmerizing to watch. The differential gears also skipped under load which kind of sucked :frowning:

Did I mention it was mesmerizing to watch?

i try to use direct drive whenever possible. i usually make big heavy bots so direct drive on 4" wheels works pretty well even though it is still kinda slow but if i can’t direct drive i like chain just a little bit better due to the fact that you can position the motor wherever it fits in well.

Just like to say, as far as chains go, especially with the high strength, it is very difficult to get a satisfactory tightness in comparison to the distance the sprockets are apart. for example, i set 2 6tooth sprockets 4 spaces away(linear) from each other and i would’ve had to use a very loose chain length or an extremely tight one that bent my shafts, due to the size of each link which limits accuracy in length, obviously. replaced with gears, easy fix.
So, I still think gears are better for general purposes.

I found this to be a problem with the chain and the tank treads too. What you can do to fix this is give the chain some slack, maybe 1/4". Then, screw in a derlin spacer above the tracks and put the tracks over the spacer. It should provide sufficient tightness. Sorry if I sound confusing…it’s hard to explain.

What you’ve done is install a tensioner. This is pretty common in chain applications. Here’s a picture of a spacer being used as a tensioner on the right lifting belt (to your left in the photo):

Yep, EXACTLY what I meant. Works great, and I imagine there isn’t very much friction.

if you use a standoff to mount the spacer to you can then use a long bolt and it will only thread so far into the standoff so the spacer will be able to spin.