First Attempt at Swerve

The first attempt at designing a swerve drive, so feel free to let me know of anything I messed up… there are probably a few things.

The gearing is
14 to 24
22 to 22 (the 1:1 gearing was the keep the motor in the center)
15 to 60
A gear ratio of 6.86:1
Speed of roughly 12.39

The Versa is a 36:1 ratio with a 24 to 80 tooth pulley. The final ratio is 120:1 on the neo 550, turning at 91.6rpm


Nice first module. Lot to learn from the process :sunglasses:

There are a couple small things that don’t really matter (fall under the category of “I would do it such a way” or “community wisdom is ‘such and such’”) so I won’t dwell on any of that unless you want a stupid amount of minute and half useless feedback.

I am tracing the loads normal to the floor through the wheel, axle, and forks to the inner race of the bearing. I can see the bearing is retained from the bottom with 8 (I am guessing 8-32s). Where is this loading transferring after this (how does the bearing transfer the loads to the bottom plate)? i.e. what prevents all the whole wheel, fork, and lower gearing from being shoved up into the top plate? I can’t tell with the provided screenshots.


This is the topview of the bearing, I assume you mean we need to have a plate or something to push the other direction or someway to keep it from coming up.

Any advice also on making it lighter? Using 1/8 plate? or other options?

I haven’t really seen much swerve up close in a while, and this is the first time even researching it so I expect many things to be off.

You could use the UltraPlanetary gearbox with the Neo550 you have to save some weight and size.

I would also add a web of material on your main plate between the area of the VP and pulley and the main module.

Re: Skye’s point above: Most teams deal with this by either having screw heads also on the top side, similar to the WCP module, or by having a counterbore in the plate that the bearing sits in so that the load transfers from the bearing into the main module plate. This requires a bit more machining capability, but if you have a router to cut your plates already, as long as you have decent z-axis control you should be fine to do this. We use an Omio router to do ours and have not had issues with this method.

Overall, I and many others could probably give more advice if you have a CAD model you could give to allow us to dive a little deeper into your design. I also suggest searching around here on CD to look at what some other teams have done, and how swerve design has evolved over time. Looking at a lot of posts that Aren Hill, Bomb Squad, Kevin from 2451, and others will show a lot on how designs have been iterated over time to be improved.

For current methods that represent many of the optimized modules out there today, the Swerve Drive Specialties and West Coast Products modules are both good COTS examples, while modules from 1690, 2471, 2767, and (shameless plug) my own are some good examples of custom designed modules.

Swerve is fun and its one of the more interesting design products that can help give you a project to sharpen your CAD and design skills, while being something that is productive and be actually usable down the road.


Onshape Link
It may be a bit brought in some parts of the part studios, there was a lot of backtracking, confusion, subtle cursing, and such.

As for the extraplanetary I haven’t played with them or really looked into them so it slipped my mind.

1 Like

Make sure you have a way to sense the absolute position of the module. Since you have a reduction between the VP encoder and the module, the VP encoder won’t tell you the true position. You would need a zero sensor, start the module in a consistent place, or add an absolute encoder.

1 Like

Yeah, you need a plate or some shoulder feature for the axial load on that bearing to push up against in order to transfer the loads to the frame without putting stress on the powertrain shafts.

You can use your existing bearing retention screws on the bottom for this task (just make a clearance hole in your larger (existing) plate.

Here is what it would probably look like in cross section (blue is on the crossectional plane, black is behind it) the end result is a part that looks like a ring with a bolt circle in it. (Edit - The mark-up I did here is slightly off, but the concept is fine, just go to the next image)

…and a (bad) orthographic view, you could easily tie into the red standoffs (dashed line)

1 Like


So after the feedback given by @dydx @Nick_Coussens and @Skyehawk, the design went back to the drawing board for an overhaul.
First, it was switched from belt and pulley to a spur gear system to rotate, so our versa can get closer.
Added bolts to the top and bottom of the contact bearing to hold it better.
The gearing is now a 10:1, 7:1 in the versa, and a 1.66667:1 through the spur gears. (80:48) for a 116.67:1 ratio and a speed of 94.28 rpm.
The encoder is now using a rev through bore encoder.
Redesigned the top and bottom plate, while changing around the layout to make it a much smaller footprint and weight.

Our estimated weight is 5.75 pounds. The footprint is roughly 6.25 by 7.25

1 Like

Changing the type of encoder doesn’t solve the problem, you still have a relative reduction between the steer encoder and the module.

It looks like you could save a lot of vertical space on the module.

For reducing height the only idea right now that I had to save a little bit of height would be using a bolt into the hex instead of an eclip for the bevel gear. the gap is so when the pulley rotates it doesn’t have the hex shaft hit the neo, and I usually don’t like cutting the neo shafts down.

You can move the 22:22 gearset below the bearing, which saves you quite a bit of space.

1 Like

Are you saying put the 22 gears between the bevel and the bottom of the big gear, and then the neo can come much lower?

Also for the encoder couldn’t you just account for the extra 1.667:1 reduction with coding?

I don’t know much about programming.

You’re going to need a second bearing on that vertical bevel gear shaft, preferably below the gear, otherwise you’ll get skipping teeth.

The gear teeth mesh at a 20 degree “contact angle”, which means that for every 1 unit of force pushing the wheel around, ~1/3 units of force will be pushing the gears apart from each other. You needed a good stiff pair of bearings to hold them together.

Yes, but I’m not 100% sure, that might be too much cantilever for the bevel pinion.

You can account for the ratio, but only if you know the module’s position on startup. To make it a lot simpler, an absolute encoder is far preferred.

Why not have the drive motor in the center of the wheel module, and cut out a stage of reduction? Right now the two 22t gears are doing nothing for the reduction, just acting as idlers, so you can cut them out.


I had a design initially with that and there was a reason I changed it, I think it was because it offset the wheel a good portion. Also all the other modules I looked at had motors offset.

Here is a great design you can reference that doesn’t have the motor offset:

1 Like

The only real reason for offsetting the motor IMO is to give yourself more gearing options. If you are okay with your options with only one spur gear reduction, you can eliminate the extra shaft and gear weight by not offsetting the motor.


This update was just removing the extra gear and shaft that wasn’t needed. (thanks everyone for the tip)
Adding a bearing to the bevel gear shaft.
And lowering the top plate to be a smaller profile. About 1/4th a pound was lost.

Also @Nick_Coussens I was looking at your swerve design from April, and am really confused on how that absolute encoder works. Would it be I would mount it to the neo before the first gear?

1 Like

Take a look at 3737 Dino-Swerve. We do not use an absolute encoder. Instead we have a hall effect sensor and magnet that is used to zero the wheel once at the start of a match. We then rely successfully on the encoder in the NEO motor. Reduces cost and complexity.