pic: Swerve Module, 2910 MK1

We finally finished machining all of the parts and put together one of our new swerve modules. We are really figuring out how to put our little Tormach PCNC 440 to work. The plan now is to complete the remaining 3 modules and build a small test chassis for them.

The weight of the module as shown is 7.2 pounds.

Below is a link to CAD screenshots of this design.

1 Like

In the pictures the versaplanetary is a 10:1. Along with the belt reduction this a 30:1 reduction for the “steering” of the module. It seems too fast and we can easily add a second stage to the versaplanetary. What ratios have people generally found work well?

First off, top quality machining, the chamfers on the wheel forks are a nice touch.

I’m curious as to why you put the belt on that side of that idler, rather than using it to get more wrap around the steering pulley and potentially a larger belt reduction.


This thing is hella dope. Keep us posted on further development of this.

1 Like

Hey Aren, Thanks for the comment. I really like your designs.

I considered having the idler go on the other side of the belt but it didn’t quite work out. Since the gear/pulley combo on the output of the versaplanetary is 3D printed I really wanted to use the 1/2" hex output to give the 3D printed part the best chance of not stripping out. This limited how small I could go with the gear that meshes the encoder gear. And since I wanted to keep the encoder 1:1 with the steering of the module the encoders gear would grow as well if I increased the belt reduction.

It really turned into a big balancing act of what COTS belts there are and also trying to keep the module compact and this is just sort of how it played out. The pulley on the versaplanetary output has a little over 90° of engagement on the belt.

Beautiful work! Bevel-beside-wheel swerves are my favorites. The machining is definitely a step up from most designs seen on CD.
I’ve seen steering ratios from 150-220rpm work well. Plugging that into JVN calc, that would be anywhere from 60:1 to 87:1. For your 3:1 pulley ratio, that means a 7:1 and a 3:1 stage in your Versaplanetary would work well.

Thanks for the input. We will start with 21:1 when trying to get our PID working.

Interestingly enough your stress problem kinda scales with your ratio and pulley size there anyway, smaller pulley = smaller lever arm for the stresses.
If you can put more reduction after the printed part in the torque path you will need less before it, so it will see less overall torque.

I’d dig into it a bit further, but getting more wrap around the pulley will also help to distribute the stress more evenly.


We found that 100:1 is the sweet spot using an RS550. It will be a bit different with the bag motor. Asid61 is probably hitting it on the head. IMO people tend to put too much motor on the azimuth which actually leads to making it harder to tune (go figure?). The RS550 is too much and we have to voltage limit it to get it to settle down (making it look like a smaller motor). The bag motor is a better choice. We prefer the RS550 because the bag motor smells really bad when it smokes:)

RS550 is also a bit lighter, which saves some weight over all the modules combined.

I can’t remember if you guys said in your tech paper, what did you limit the voltage to on the RS550? And I’m assuming the 100:1 was the overall ratio, not just the VP ratio? I think in your paper it just said somewhere between 64:1 and 100:1.

This year the azimuth was 70:1 (overall). Long story but we would go with 100:1 if we did it again with this robot. Voltage was clamped at 5V. Clamping the voltage solved an oscillation problem which caused the motors to overheat BUT introduced a scenario where if the wheel got in a situation where it turned hard, the motor couldn’t get it all the way to “0” error and the motor could, again, slowly overheat. If you can figure out how to not limit the voltage and still meet your requirements that would be way better. IMO, limiting voltage is a last resort thing.

Of course, every system is different, blah, blah, blah… you guys know the rest of this statement…

I assume you were running a PID controller on each motor and if so then you should have been able to settle it through tuning that way right? I always remember taking nearly a full afternoon to get our drive PIDs to settle with the robot in the air and the reactions being very tight with only 1 or 2 oscillations if the joystick was let go from full forward or full reverse. This tune resulted in the desired motion on the floor every time. We did, now that I think about it, add a small deadband to the control to eliminate the “humming” issue and just accepted the minor amount of error. I never PID tuned anything other than drive so please correct me if I am wrong on the ability to get these tuned in without additional power caps (regardless of how they are applied)

I’m completely in love with this. Great job, I hope it works well for you!

Is there a reason you used a separate encoder with a plastic gear, instead of the versaplanetary encoder?

I believe to get a 1:1 ratio off of the steering.

That’s correct. The 1:1 ratio in conjunction with an absolute encoder is nice because when the robot is powered on it knows the steering angle of the module without any homing and regardless of which way the wheel is pointing.

The absolute encoder gear is hanging out there. Consider using a small v groove pulleys and some 1/16 poly cord for a belt. Don’t see a encoder for velocity and distance. You will need this most likely. Looks like a 9mm belt. This is probably close to max load when shock loads are considered. I would recommend using high end Gates belts. Will the thin wheel module bearing survive the shock loads? Asking allot from it.

But does it ratchet?

On a more serious note this looks beautiful! Love the minimal side plates for the wheel/bevel gear!

Very nice looking concept!

What bearing are you using for the primary swerve rotation support? Looks like a Kaydon KA035XP0 or similar. I suggest retaining it with a clamp ring and a few more screws. A good collision may dislodge this.

I presume that the motor housing remains stationary, rather than swiveling with the wheel. If so, does your software compensate for resulting wheel turning that would occur during swivel?

Nothing like four $200 bearings](https://www.amazon.com/Kaydon-KA035XP0-Angular-Contact-Bearing/dp/B00DBNSMFI) to blow the budget :frowning:

Please disregard the previous post thank you