Do teams with 2 speed drive train gear boxes actually switch during matches?

We have had shifters on our bots consistently since 2016 and we shift a lot, but our thinking is very different from most teams. We had shifters in 2005, 2010, and 2012, but never utilized them. The 2 top speeds we aim for now, with our 4 or 6 neo drives is about 16 fps and 7 fps. Our goal with low gear is to be able to push a robot that is parked sideways across the field. Get the speed low enough so that we have enough torque to achieve that goal. And our goal with high gear is to be as fast as possible in our regular movements. In some games like 2019 you want that to be slower because there are so many short sprints that acceleration becomes super important, so something around 13 or 14 fps is probably best., in other games like 2017 you want that to be higher, because you are doing such a long run across the field, we went for something like 17fps and I honestly felt like it was still too low. You also have to keep robot weight in mind when you are deciding these things, if you have a light robot you will accelerate faster and can get away with a higher top speed high gear, but you need a lower top speed low gear, because its harder to push robots when your robot is lighter. We generally assume we are going to be right up on that weight limit.
We do not utilize low gear for any kind of acceleration, fine tuning, etc… only pushing. These robots accelerate so quickly that the gain from something like automatic shifting or drivers shifting on the fly to maximize acceleration would be so minimal, but the loss from driving around in low gear and getting your top speed capped is pretty significant. I highly doubt there is any frc driver who on their own is shifting from low to high to optimize acceleration without some sort of awful downside to it, doing something like that sounds incredibly difficult, the gain is so tiny, and the driver should probably be focused on something else.
Our control scheme is setup so that the default is high gear and you have to hold a button to be in low gear, this forces the driver to only use low in the rare situations when it is actually needed, pushing through a defender.
I found that in 2010 and 2012 our drivers would be in low gear all the time, they were so scared to go fast, which is why when we started using shifters again, I really pushed for the default to be high gear and our robots to go faster.
That’s our thinking on shifting anyway.

Up until 2020 we used 2 speed boxes. Our logic was gear high for speed and use low for defense and getting position on offense. We spent probably 95%+ in high, but the low speed was needed when used. If we did not have the low we would have geared a single speed slower. This year we went to a fairly fast single speed for weight and space. We used speed to avoid the defense and played mostly offense. The moral of the story. Design the robot to how you want to play the game and play to your strengths.


254 has always used shifters to gain pushing power (more torque at less current draw, as others have described), never have done live-shifting with code.

Here’s our logic:

  • We’re always going to have pneumatics on the robot, they are too good for making modifications late in the season and adding extra little DOFs for who knows what
  • In games with some sort of field obstacle, you can’t have tiny wheels so you’re already going to want a 2-stage gearbox anyway, so making the 2nd stage be Dogs is also lower overhead

Dog shifter only adds:

  • ~$200 of cost for solenoid, cylinders, gears, and WCP Output shaft
  • 1-1.5 lb for cylinders, tubing, gears, dog components, etc
  • 1" of increased gearbox width, using a pancake cylinder means the piston adds no or maybe 1/4" of extra width beyond width of Falcons
  • 1 Solenoid slot on Pneumatic Manifold

How much do we use the 2 speeds?

  • Recently we’ve been gearing low, like 14-16 ft/s free-speed because games have featured mostly half-field sprints instead of full field like in 2013, 2017, etc.
  • We stay in high gear >90% of the time, only shifting low if we know we need to push for longer than 2 seconds.

Examples of when we’ve shifted into low gear:

  • Newton 2016 qual 100, had to push a dead partner around the field and onto the batter
  • Playing defense in 2014 when we didn’t have the ball
  • In 2019 we stayed in low gear most of the time because we were always pushing opponent away from rocket

So overall, it costs very little when already doing a custom gearbox and all the reasons I described above, and it MAY provide benefit in one 2 or 3 matches all season. When we’re designing a robot to seed first at every event, having redundancies like that matters.

Do all teams need 2-speed? No, especially not now with the power of brushless.


What time?


Gonna pull out an old quote here.


This has been quite an interesting read!

Do you think that decision might possibly change if 254 ever decides to run three falcons on each side over presumably two?

With the added increase in torque, I believe that both current draw and pushing power would be at least somewhat improved upon, so do you think that might possibly change your mind, at least based on the logic you have already provided us with?

Having done some work in this space… Jared is very right. #2 is very hard to get correct, especially in very dynamic situations. If you know your drivers and system and environment well enough, you can guess it… But, at best, this just gets you back to the same performance you’d have if your operator was just trained well to operate the gears. Which begs the question… if you can train your operator well, or develop lots and lots of software… where do you want to be spending your time?

One thing we did do back in 2016 was an auto-downshift type algorithm to prevent excessive current draw from the motors. If measured current draw stayed above a threshold for too long, we’d shift to the lower gear, and briefly vibrate the driver’s controller to let them know they’d been kicked out of high gear. Operator could still hit the upshift button to get out of it if needed.

I could also see a “pushing match detector” which checks for whether the operator is desiring acceleration (joystick pushed forward), but actual wheelspeed is getting there, and downshift based on that.

Finally, you could do a “max torque to the ground” calculation to figure out the wheelspeed at which you need to shift between low and high gears. However, this by itself is rarely sufficient. You’ll need some debounces or hysterisis to prevent shift hunting when operating near that point. And, when you start to account for the non-zero time it takes transition gears… unless you’ve got a huge spread in ratios, it almost doesn’t make sense to use an “always start in low gear” strategy. The range of speeds where low gear would always happen is just too small to be worth doing the shift, unless you know you’ll be at low speed for an extended period of time. Which, again, is really only something driver would know.

TL;DR 254 knows what they’re talking about.

Why wouldnt shifting be the driver’s job?

In general, it should be the driver’s job.

As a software team, you might be able to reduce cognitive load on the driver by automating some shifts in cases where a shift clearly needs to happen. However, fully eliminating this cognitive load while retaining performance is unlikely to be an achievable goal.

FWIW F1 cars automate some gear changing actions, but retain the control of gear command with the driver for what I assume would be identical reasons to FRC… also the rules prohibit full automation.

Thanks for the response! I was wondering what you meant by this? I don’t quite understand.

My hot take is that shifting is basically obsolete with the introduction of brushless motors. All of the conventional wisdom posted above was built on the backs of CIM drivetrains.

And quite honestly, you don’t even need six Falcons or NEOs in the drive - and I think people only go to six because that’s the number of miniCIMs they used, not because of anything empirical. Four brushless motors at a single speed will handle more than enough FRC use cases.


We (973) selected 6 NEO 2019 midway through the season because we could afford to do so, and at that time didn’t have enough data on it’s robustness… so it was a risk mitigation.

I advocated for 973 to go to 6 Falcon for 2020 for the same reason.

Now that we have two seasons worth of data, I’d agree with your point. For the teams really pushing the limits of performance, there is some upside to 6 over 4 if the cost and weight aren’t an issue just to reduce heat losses in wiring some.


If the field has obstacles, such as bumps or ramps, you’re likely going to have at least 4" diameter wheels, maybe even 6 or 8" wheels. Such large wheels have higher surface speeds and therefore need more gear reduction to slow down output shaft RPM to have a reasonable (13-19 ft/sec) driving speed.

You can get away with just a single stage of reduction for 4" wheels, but it will require a very large gear that is quite heavy and hurts robot’s ground clearance locally at the spot, which may be fine if obstacles can always be driven over totally straight so nothing can high-center in the middle of the robot. It can actually be just as light to have 2 stages of reduction because it lets you use smaller gears and make the gearbox plates much smaller too.

For larger wheels like 6" or greater, you pretty much need 2 stages of reduction, and now it become quite easy to put the shifting (Dog or Ball) on that 1st to 2nd reduction.

1 Like

(8-10):84 with 6" wheels was very viable with CIMs/Falcons/NEOs this year.


Agree for shifting to get faster sprints. Even if you’re crossing the whole field, the half a second you’ll save isn’t worth the added weight/complexity/driver training.

For defense though, I’ve come around to see the benefit of shifters for certain strategies. At the beginning of last season I agreed with you that there was never a need to shift nowadays. But my students showed me how in 2019 there were times when we would get caught on the other side of the rocket and not be able to get back to the loading zone because of a defender blocking us that we couldn’t push through. They anticipated a similar problem this year in and around the rendezvous zone, so in addition to our normal driving gear (~18 ft/s) we decided to include a “super-low” gear (~6 ft/s IIRC) that’s only used for playing through defense. We ended up using it once or twice each match to help get out of jams.

I find this comment weird. I agree with a lot of the comments saying shifting isn’t really needed anymore, but if you’re going to shift regularly, autoshifting seems like the best way to do it. Why spend your driver’s cognitive load on thinking about gears? The last time I spent much time thinking about this (2017), we didn’t find it too hard to get autoshifting working well.

We had a really high top gear (IIRC 21 fps free speed, with 6 miniCIMs). We autoshifted at the lowest speed where the high gear pulled an acceptable level of current, and put some hysteresis on it (+ a time lockout, IIRC). It honestly was pretty easy to tune to feel natural. Asking the driver to shift all the time would’ve been absurd, and they probably wouldn’t be up-/down-shifting at precisely the right times to maximise acceleration anyway.

So sure, if you’re going to shift 3 times a season, make it manual. But auto-shifting enabled us to have a really high top speed without burdening the driver (or killing our battery).

EDIT: One of my students and I talked through the details with another team at the time. They found it surprisingly non-difficult as well

Not to pull the classic “we’ve always done it this way”, but, well, we never had an issue shifting manually. The way we set up our robots usually limits the driver to driving (sticks and shifting) and releasing the game piece, occasionally pickup as well if the operator has too many buttons. It’s very rhythmic: pick up game piece in low gear for increased precision, shift to high while positioning to move to goal, move to scoring location, shift to low for better positioning and/or pushing power, release game piece, shift back to high, etc.

Most of those shifts are happening during turns or powerslides, so I’m not exactly sure how you could appropriately replicate that. Of course this is FRC, so you can never follow a set pattern. There’s also a lot of counter-defense movement that requires very precisely timed shifting you’d want manual anyway. I don’t think we ever really saw shifting as acceleration maximization for long distances. Long sprint means high gear, small movement means low gear. Autoshifting gains during a longer sprint seem rather negligible in most “normal” use cases.

Ninja edit: Not sure how much this is noted, but there’s a significant difference between having a button to toggle shift states and a dedicated shift high and shift low button.

ofc this is all null in the era where you can throw an additional 600w of motor on the dt for sub 3lbs and basically no space.


In an attempt to convince my team (but mostly just myself) to switch to a three Falcon SS setup, I ended up writing this whitepaper:

Considering the fact that it was written at 3 AM on a whim, in response to this very thread, actually, it’s not incredibly well done, in my own opinion, but it exists, I suppose.

Now that you’ve explained it it seems obvious. I’m not sure what I was confused about earlier. Thanks!

1 Like