How to auto gear shift

We look into automating the gear shifting in our drivetrain this year. If it’s relevant, we’re building a WCD with two Falcon 500s on each side.
We have never done anything like that so we have a few questions:

  1. How do you determine to shift the gears? Does it have something to do with the current velocity/acceleration/joystick input?
  2. Is auto gear shifting reliable? Does it need some/a lot of tuning, making it not very consistent?
  3. Is it worth it? Teams who attempted auto gear shifting in the past, do you recommend it?

Thanks a lot!


Auto shifting effectively is hard. Inevitably, you’ll find it shifting when you don’t want it to. To start, do a little math. Find the point at which you should shift.

Then you need to put conditions on the shifting. You want hysteresis. That is, you may want to shift at a certain point while accelerating, but you don’t want to shift at the same point while while decelerating. You may want to allow shifting while turning, or you may not. You may want to disable shifting when turning in place, or you may not.

The biggest issue is that shifting doesn’t know how far you intend on driving. So if it’s quicker just to stay in low gear or high gear because you’re only traveling a short distance, the robot doesn’t know that. So you get some un-needed shifting. These are all things to consider.

You can also worry about amperage draw - perhaps you’d rather shift later, but your amperage goes to high so you need to shift at a different point. Etc.


Common misconception. A totally naive implementation (fixed upshift speed and a somewhat-lower downshift speed) works reasonably well, and only a few tweaks (instantly downshift if you’re trying to stop, prevent yourself from shifting while turning) are particularly helpful beyond that.

Best way to find the optimal shift point is to run the robot at max voltage in both high gear and low gear, and plot acceleration versus velocity for each on the same plot. Both plots should be linear, and the speed at which they cross is your ideal shift point.

1 Like

I don’t agree with this. Perhaps optimally auto shifting is hard, but auto-shifting is not.

We have implemented auto-shifting in very naive forms successfully for a few years now. We even just sort of choose arbitrarily things like:
Up-shift when our velocity is within 90% of our peak velocity in low gear
Down-shift when our velocity is below 80% of our peak low gear velocity

An implementation that simple will likely get you auto-shifting pretty effectively. There may be edge cases where this simple decision tree will give you sub-optimal performance, which you can tune for your own needs if desired. However, a naive, and simple case as the general decision can be quite effective…even if that simple case is sub-optimal in certain scenarios.

I’ve always wondered if you could make a planetary that would shift automatically with a fly-ball governor.

Completely mechanical, when the balls are swinging around at input shaft rpm, so fast it’s scary, they’d apply force to a fork that would move a shift dog (or ball ) to the next gear.

Theoretically, you could use this one system for more than one shift. When it gets too fast in second, it would push it to third.

If the left transmission shifts first and the right hasn’t yet, the added speed on the left would force the right with more rpm yet, forcing the second trans to shift.

Has anyone done this?

Cadillac and Lincoln back in the 40s had a similar system

I do know that a lot of mopeds and ATVs use a fly-weight system to control their CVTs (weights control the spacing of the input pulley; the output pulley is sprung and auto-adjusts per belt tension)

I also know 1640 has been running CVT swerve for some time… what I don’t know is if it’s electronically “shifted” or purely mechanical like above. I’m sure such a setup could be adapted to a WCD (put the CVT in the first stage to reduce belt torque)… but to what effectiveness, who’s to say.

The snowmobiles that i’ve worked on use weights as well. As far as i can tell, 1640’s swerve uses a servo to adjust the compression on the belt, thereby shifting the CVT position. It’s a pretty genius indirect adjustment system.

1 Like

Some details on it for those curious

1 Like

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