Custom (mostly) 3D printed Swerve

I was inspired by the constant stream of swerve designs here on CD to come up with one of my own. I set my goals as having a design that could be produced primarily on a Markforge with Onyx and have size and weight similar to, or better than COTS swerve drives. Here is what I came up with:

Tech Specs:
Size – 5.5” x 5.5” x 9”
Weight- 4.31 lbs (as pictured with a Falcon 500 and 2-stage REV UP with a NEO 550)
Drive Speed- 19.49 fps free speed (3.5” Dia Wheel)
Module Rotation Speed- 300 RPM free speed

This module is designed around an internal 72t ring gear that rides on a 4” OD Thin Section Bearing. The bearing is held into a printed housing from the bottom with 6 screws. The clamshell style cover also carries both motors and the rotation encoder. The encoder also spins by meshing with ring gear. The wheel fork is printed such that the long bolts that connect it to the ring gear serve to compress and reinforce the print and prevent layer failure. The 3.5” diameter wheel is also printed with holes for heatset inserts that allow the bevel gear to bolt on as well as the nitrile tread. Overall this module uses a lot of heatset inserts to help provide sturdy mounting points. The top half and the bottom half of the module can easily be removed and serviced with just a few screws.

I haven’t looked too deeply into the cost of the module, but I estimate it would be in $200 range without motors.

Thank you to all the people who have designed modules before this one as they all served to inspire this one!


My initial thoughts: the ring gear is really cool, and the packaging is solid. The nylon case strikes me as a little sus though - I can totally see that cracking, especially with the relatively thin support for the bearing. I think this design would be a lot more robust if there were an aluminum plate on the bottom of the case to retain the rotation bearing and to mount to the frame. Also, I think that the SRX encoder should probably be 1:1 with the pivot - maybe a clever addition to the ring gear can give you somewhere to fix the magnet? 19 fps seems a touch fast - would switching to a smaller pinion on the Falcon be enough to take that down a bit?

Lastly, it seems like it’s totally free to add an extra bearing at the top to help take up moment loads (and reduce the load on the case).

Sorry for the million jabs - this is a really interesting and new approach, so I think it opens up a lof of opportunities for creativity.

I have one more crazy idea: This swerve used a boss on the outside of the pivot to activate a limit switch. Since the primary issue of not having a 1:1 gearing on the encoder is that you have multiple possible states for one encoder reading, one could use bosses and limit switches to set which state the encoder is in. This is probably a really bad idea, but it would certainly be cool.

1 Like

Thanks for the feedback! That’s a good point about having a non 1:1 ratio on the encoder gear providing non-absolute position data. I’ll have to ponder that one and come up with a solution.

I think swapping down to a 11 or 10 tooth pinion on the falcon should resolve the issues around the speed. I agree 19 is a touch high, although maybe not depending on the exact game.

I agree it’s free to add another bearing up there to help with the moment loads and will definitely do that to take some of the loads off the large diameter bearing and also help support moment load transfer from the fork.

Looking at the section view, I think I want to make the forks come down a little bit lower to add some more material beneath the axle bolt.

As for reinforcing the casing with an aluminum plate, I think a well printed onyx part could do well to survive. Maybe I can beef up the print with some more material in the thinner areas but I want to see if we can get away without that plate on a test module.

Looks great!

I might suggest you leave a bit more meat around the wheel axle. If you reduce the size of the fillets there, it will be easier to tighten up the axle bolt to tie the two halves of the fork together structurally.

The ring gear makes for a really compact steering axis. I recommend that you increase the pitch of the gears as much as you can within the space you have. Plastic gear teeth aren’t very strong (although the internal teeth means that the load will be shared over at least 2 or 3 teeth), but you can compensate by making them bigger (just make sure you leave a rim at least as thick as the tooth height). You can use the KHK catalog to get a spec for the bending strength of nylon gear teeth up to 3mm module (~9DP):

I’m curious what the cost would be to print all those parts. You should submit your files to the Thrifty Bot or 3D hubs and get a quote.


It’s about $80 in MF filament according to Eiger, probably could optimize that by testing different infill’s to find the optimal settings.

1 Like

I took another stab at revising the design and came up with something that should solve a lot of the issues that people brought up above, while also shrinking the size, weight and cost of the module.

Revised Module Specs:

  • Weight: 4.03lbs with motors and hardware
  • Volume: 4.5" x 4.5" x 8.825"
  • Drive Speed: 14.89 fps free (3.5" wheel)
  • Module Rotation Speed: 300 RPM free
  • Print Time: 71 h per module (estimated via Eiger)
  • Print Cost: $100.59 (estimated via Eiger)
  • Module Cost: $259 (Sourcing all misc components from MCM, should be MUCH cheaper if you spend some time digging for better pricing on bearings and screws. I will update this later when I have some time to dig around for better pricing)

Firstly I redesigned the whole module to center around the TTB 3.5" OD x 3.0" ID X Contact Bearing rather than the 4" OD version.

I also changed the pinion on the Falcon 500 to an 11t for a much more manageable free speed of 14.89 fps as well as redesigning the wheel and fork to be more robust and also work with the COTS TTB Bevel Gearset. Additionally I reinforced the lip that retains the X Contact Bearing in the main housing.

The final major tweak was the steering encoder set up. The encoder still reads from a gear that meshes with the Steering Ring gear, but through a re-reduction, the gear carrying the magnet now spins at exactly the same RPM as the Steering Ring.

Module to frame interface- currently I am experimenting with a combination of bolting to the frame laterally on two sides of the module as well as bolting to the frame from the underside of the module. This still need a bit more work as of now.

You can see the lateral mounting points in the image above.

This is mostly just a fun personal project, maybe one that I will build out just to see what happens. Really interested to see what people have to say, and perhaps some of these concepts can be carried over to other designs. Thanks to everyone who helped inspire this module with their prior designs!


I’m glad you made the bearing holder tougher, but I’ll keep complaining about the lack of an aluminum base plate until the cows come home. The re-reduction on the SRX is very good, but I worry that the teeth may be so fine that it’s hard to print - you could perhaps use a profile-shifted gear to get away with coarser gear teeth on the pinion (at the cost of increased backlash, which can be solved in other ways). It also seems like the SRX mount would be tough to print as-is - maybe raise the rest of the bosses up to the same plane so you don’t have any overhangs? If you want to cut out print time, you could remove most of the material by using a COTS spacer and just printing the encoder support plate.

My last and biggest concern is the mounting scheme. I haven’t done the analysis, but my gut tells be that the casing would crack under the kind of loads that would be transferred through it - see my continuing complaints about not having an aluminum base plate.

In all, I think it’s very cool and has some great ideas, and will be excited to see what you come up with in future designs.


I think I’m going to slightly cheat on this one and investigate using the belly pan of the robot to support the modules from underneath and act as a aluminum base plate.

Agreed on the somewhat unnecessarily complicated design of the SRX mount, but I decided since it does not see much load, just to print it as is and see what happens. I am continually impressed by the Markforged’s support generation and print quality.

Also agree on the gear teeth, but again, just going to send it and see what happens for now. As we speak I am printing 3/4’s of the parts over the weekend and will post some pictures come Monday.

All in all this is proving to be a solid brain/design exercise during this weird season to occupy the time I’m not busy with work and my MBA.


Just a data point - I’ve done down to 32dp gears without issue on my prusa. I’d assume the markforge can hit at least that.


Default 0.4 mm nozzle on the Prusa?


1 Like

Can confirm that you can print 32DP gears on a Markforged. Will not make a blanket comment on load ratings for said gears or appropriate use cases, as that is much more of a case by case basis.


I want to say this comment is at least slightly in jest, but for what it’s worth Bomb Squad’s latest swerve appears to be entirely out of Onyx (though it could be fiber reinforced):


For our 2017-2019 modules we did a similar re-reduction with COTS 48DP acetal gears available at SDP/SI. You might be able to integrate those COTS gears into the design (or some other COTS spur gears with a coarser or finer teeth) rather than printing them yourself if you are worried about the tooth profile print quality. SDP/SI has a number of options including brass inserts with set screws, keyed shaft, or you could design for a press fit or glued joint.

One thing to keep in mind is that you don’t need to match the exact number of teeth, just the gear ratio to get back to the 1:1 rotation.

Another thing to keep in mind with fine tooth gears at that it takes very little shaft movement/deflection to cause the gears to fail to mesh and possibly skip a tooth (which would throw off your absolute reading). Make sure that there is no side play in your shafts.

Yup, the original ratio at the ring gear is 20:72, while the re-reduction ratio is 54:15. As you mentioned rigidity is critical which is why both gears are supported by a pair of ball bearings and have relatively short shafts with good cross sectional area to minimize play.

1 Like

First set of parts printed over the weekend! Only 3 more parts to finish all the printing. Everything feels super solid as of now!


Those look absolutely beautiful.


Here are the rest of the major components! Waiting on hardware and COTS parts before assembly.