Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Sehome Swerve Drive 2

by LoboCNC, published

Sehome Swerve Drive 2 by LoboCNC Dec 1, 2017

Featured Thing!

0 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps

Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

75902Views 1801Downloads Found in Engineering


This swerve drive, nominally designed for FRC competition, is a lighter weight, but vastly simplified, version of my earlier swerve drive (https://www.thingiverse.com/thing:1135618). It is almost completely 3D printable. The heart of this design is the integrated low-profile steering bearing that uses 6mm Airsoft pellets as bearing balls. It also uses a twisted timing belt to simplify the mechanics.

Note that this design is for very lightweight robots - I wouldn't recommend a total weight per wheel of more than 20 lb or so. (The swerve unit itself weighs about 5 lbs.) It is also intended to be very fast - up to 20ft/sec! The wheel tread should be grippy enough for good acceleration, but you won't win and pushing wars. In fact, if you make the tread any grippier, you run the risk of breaking components in a collision (rather than the wheels just sliding on the carpet).

Also note: This design has only gone through very preliminary testing. As we do some more abusive testing, I'll post those results here.

UPDATE: So far, we've hooked it up and driven it around a little. Everything is operating quite smoothly so far. Next up is getting our full swerve drive control implemented so that we can really beat on it!

Print Settings












Print all parts with 4 perimeter lines, 4 solid top and bottom layers, and use a full triangular infill (3 sets of infill lines on each layer). After printing, clean up and blobs on any mating surface. And on the bearing race in particular, sand smooth any blobs or lumps left from printing.


Bill of Materials

3D Printed Parts:
base plate
steering pulley
axle support
idler block
bearing inner race (steering bearing)
18 tooth, 8mm bore pulley (drive motor)
18 tooth, 6mm bore pulley (steering motor)

Fabricated Parts (see Solidworks model):
2 0.250"dia, 0.75L steel pins (idler block)
2 0.500" aluminum axle (wheel axle)
2 0.625 dia steel idler rollers (idler block)

Purchased Parts:
1 CIM motor (drive)
2 AndyMark CIM motor heatsink (drive motor)
1 NeveRest motor w/ 20:1 planetary gearhead & encoder (steering)
1 AMT-103 encoder (drive motor)
50 (approx) 6mm dia airsoft BB's (steering bearing)
1 104 tooth 3mm pitch GT3 belt (drive belt)
1 125 tooth 3mm pitch GT3 belt (steering belt)
1 608 bearing (steering idler bearing)
2 0.500" bore x 1.125" OD flanged bearing (wheel)

8 8-32 nuts (6 for base plate, 2 for steering pulley)
1 10-32 nut (steering pulley)
1 3/8" washer (steering pulley)
1 1/4" washer (steering pulley)
4 M3 washer (steering motor)
2 #8 washers (steering idler bearing)
1 #10 washer (idler block)
2 0.25" bore by 0.010" thick shim washer (idler rollers)
1 1/4-20 x 1/2" hex head screw (axle)
1 10-32 x 1.425L socket head cap screw (idler block)
6 8-32 x 1/2" pan head screw (steering bearing inner race)
2 8-32 x 5/8" socket head cap screw (axle support)
1 8-32 x 1/2" pan head screw (idler block jack screw)
1 8-32 x 3/4" flathead screw (steering idler bearing)
2 4-40 x 5/16" flathead screw (encoder)
2 10-32 x 1/2" flathead screw (CIM motor)
4 M3 x 14mm screw (steering motor)
1 1/2" external retaining ring (axle)
1 2mm square key (CIM motor)
2 8-32 x 0.25" set screw (18t pulleys)


The assembly process follows the posted photos

Photo 3: Start with the Steering Pulley. On the underside, press in the 10-32 nut into the center nut cavity and two 8-32 nuts in the cavities on either side.

Photo 4: Position the inner race so that the ball access holes line up and insert all 40 airsoft pellets in-between the races. (Note I originally designed a cover for the access hole, but the balls are actually really hard to get out even without the cover.)

Photo 5: Press six 8-32 nuts in the hex cavities in the base plate.

Photo 6: Assemble the CIM motor into the base plate with the 2 10-32 flathead screws. (Note the photos shows the 2mm key int hte keyway, but this doesn't go in until later.)

Photo 7: Modify the encoder base plate for 4-40 flathead screws by drilling the holes out to 0.110" dia. and then countersinking for the screwheads. Screw the encoder base to the base plate. (Note, the motor is not shown in this photo.)

Photo 8: Finish assembling the encoder as per the AMT-103 encoder instructions. At this point, you can put the key in the CIM motor shaft keyway.

Photo 9: There's not really any room for much of a connector, so solder the encoder wires directly to the encoder pins. It is not shown, but I then insulated the ends with a blob of hot melt glue. Snake the free end of the encoder cable underneath the face of the motor. You may need to loosen the motor to get the cable shoved through.

Photo 10: Assemble the steering bearing inner race to the base plate using the six 8-32 x 1/2" screws. For each screw, you'll need to rotate the bearing so that the access slot aligns with the screw hole.

Photo 11: Press the beveled ends of the two 1/4" pins into the idler block. Orient the pins so that the beveled faces press against each other inside the block.

Photo 12: Put one 1/4" shim washer on each pin. Apply a little grease to each pin and then slide the idler rollers onto the pins. The grease should be sticky enough to hold the rollers in place during assembly.

Photo 13: Slide the 18t pulley onto the CIM shaft (hub first), aligning the keyway in the pulley with the key. The end of the pulley should be about 1/10" past the end of the motor shaft. Secure with an 8-32 set screw. (Note: you will first need to tap an 8-32 thread in the pulley hub.) Next, put the 104 tooth belt over the pulley and screw the idler block down over the protruding ends of the belt using the long 10-32 screw and a washer. Note the belt twists so that the flat side of the belt rides on the idler roller.

Photo 14: Press the 1/2" bore bearings into either side of the wheel. Assemble the retaining ring into the groove on the axle.

Photo 15: Shove the axle through the wheel bearings, slip the 3/8" washer over the end of the axle and then push the axle through the hole in the steering pulley. Secure the axle in place with the 1/4-20 hex head screw and the 1/4" washer.

Photo 16: Insert the 8-32 x 1/2" jack screw into the side of the idler block but leave it barely engaged. Push the idler block all the way in so that the belt has the maximum of slack. Slip the belt up onto the pulley. Slide the axle support over the free end of the axle and secure in place with the two 8-32 socket head cap screws. Finally, carefully tighten the 8-32 jack screw to push the idler block out to tension the belt.

Photo 17: Screw the NeveRest gear motor to the base plate with the 4 M3 screws and washers. Slide the 18t pulley with the 6mm bore onto the motor shaft and secure with an 8-32 set screw.

Photos 18,19: Assemble the steering belt idler bearing to the base plate with the 8-32 flathead screw and two #8 washers.

Photo 20: Slip the 125 tooth belt over the wheel assembly, over the motor pulley and under the idler bearing. Loosen the 4 motor screws slightly and slide the motor back to tension the belt and re-tighten the screws.

Not Shown: Slip the two CIM motor heat sinks over the CIM motor and secure with a large zip tie. Position the head sinks as close to the base plate as possible without touching it. The CIM motors can get pretty hot, and without heatsinks, they will melt the base plate plastic. Even with the heatsinks, you should check to make sure your motors are not getting more than warm to the touch. Also note that if your motor is getting hot, it may be softening the pulley on the motor shaft. If so, you may need to switch to an aluminum pulley.

Photos 1,2: The base plate is designed with an integral channel for connection to 1" square aluminum frame members using heavy-duty zip ties. To keep the aluminum tubes form pulling out, you may want to stick a screw into the side of the tube just adjacent to the zip tie
so that the screw head will catch on the zip tie if it tries to pull out. Note that I used zip ties because they offer a certain amount of compliance to the frame to help absorb energy in a collision.

More from Engineering

view more

All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Treatstock is an online platform that offers decentralized manufacturing services such as 3D printing and CNC machining for clients all over the world. We offer free and instant access to comparati...

App Info Launch App

3D print your favourite design with NinjaPrototype, a professional 3D manufacture with consistent quality and speed.

App Info Launch App

Where did you buy your belts?

I got them from Stock Drive Products (https://shop.sdp-si.com/catalog). You might also be able to get them from Misumi (https://us.misumi-ec.com/vona2/detail/110302652150/).

Comments deleted.

VERY nice work!! Thanks for sharing.

I have been considering a very similar design. The biggest potential issue, with the quarter turn belt approach, is the excessive wear on the synchronous belt. It appears you are using a GT3 6mm wide by 3mm pitch belt (I did not notice in your parts list the belt width). Have you run these drives, or your previous design, enough to result in belt failure?


Unfortunately we haven't done a huge amount of testing so far because our FRC team decided to go with a different drive system this year. I fatigue on the belt is directly related to the load on the belt (pre-load plus dynamic load). Both of these can be minimize if the mass of the robot being driven is lowered. My gut feeling, though, is that for an FRC competition robot, which only gets run for a few hours to 10's of hours total, belt failure will not be a problem, and if there is the occasional belt failure, they are easy (and relatively cheap) to replace. The bigger limitation is the torque that can be delivered through the relatively tiny 6mm wide, 3mm pitch belt before the teeth start to skip on the small pulley.

Thanks for the extra details. My immediate applications are mostly interactive roaming robots to perform within crowds, such as museums and stores. Low speed and gentle navigation would be the typical operation, lending to less stress on the belts, but if this could still result in changing belts every 10 or 20 hours, that would be a drag.

With the limited testing, did you find a lot of ratcheting (slipping teeth)?

If so, what weight of robot were you moving?

I am trying to determine if using four swerve drives of similar design on fairly light robots (maybe up to 60 lbs with lower anticipated operating speeds to achieve maximum around 6 mph) would be within a safe margin. I need to make sure I am not backwards on my calculations, but from some of the documentation on the GT3 belts and pulleys, I think this is possibly within the far reach of achievable.

Thanks again.

With a 60 lb robot with low speeds and low accelerations, I don't think you'd have any problems with the belts. We haven't had any problem with skipping teeth. The trick is to set the pre-load just high enough to cover the needed accelerations but no higher. That will minimize the stress on the core fibers on the outer edges of the belt. Your other option would be to use urethane belts with a kevlar core. They are more flexible and would be much less prone to failure, and the small loss of stiffness would not be a big issue for your application.

Where is the video about this ?

Armadillo has great properties, but it's stupidly expensive. It's approximately 4x more than pla.

What would be worth trying is flexible pla. The cheapest generic stuff tends to be at the stiffer end and virtually indestructible, while being pretty close to decent pla in price.

why is it called a swerve drive ?

I don't want to derail the conversation, but you intrigued me. I'm always on the hunt for different materials with different properties, but I do get tired of the high price of the exotics. I'd love something less crystal-brittle than PLA (but still as easy to print -- no enclosure means ABS is generally a pain) that was also sanely priced for general use. The "flexible PLA" sounds good, but I'm curious what it actually is. Quick Amazon search turned up something (WYZworks Soft Flexible PLA) claiming to be flexible PLA with 85A Shore hardness, which is NinjaFlex territory (so I suspect that it is really TPU, possible with just enough PLA in it for marketing purposes?). I can print that fine, but it sounded like you were talking about something stiffer than that. Maybe some of the "PLA Plus" materials? Do you have links to stuff that's worked well for you in the past?

Esun flexible pla is about twice as stiff as polyflex. The one i'm currently using is sienoc flexible pla. £23 a kg. Which is at least as good as polyflex, but a good bit cheaper.
the esun cost a bit more but is noticeably stiffer,

No clue on shore hardness, the random mix of letters and numbers doesn't make much sense to me. :-)


However, on the bearing - https://www.amazon.com/gp/product/B007HS0MHO/ref=oh_aui_search_detailpage?ie=UTF8&psc=1 is nearly the same size as the one you're using. It has far more load capacity than you'd likely need for far heavier robots. Would require some futzing with the design to incorporate.

You could also use the printable slew ring https://www.thingiverse.com/thing:2375124

I've also always been a fan of the FRC16 style bearing set up with a ball groove on the bottom and a top piece with nylon as a bushing surface. The bottom balls provide bearing functionality and the top nylon provides retention. Let's you have more material retaining the balls.

Any chance of discussing how you found the belt path? I'm going out on a limb and saying SW 3d curve and path length constraint?

Slew Bearing, parametric Design with Fusion 360

Thanks for the tip on the thin section bearing - only $16! Last time I bought one of those (maybe 20 years ago) it was several hundred dollars. (The miracles of Chinese manufacturing.) I may need a slightly smaller OD, but I can probably find a 60mm ID bearing that would still leave me enough room for mounting hardware for the inner race.

As for the belt path, I just laid that out using multiple planes that all lie on the centerline of the belt. To sort out the length, I didn't use any sort of path length constraint (I'm not much of a Solidworks wiz) - just a little trial and error.

Yeah that manufacturer makes a bunch of them. I just grabbed the one I had sitting around. If you were ordering a bunch of them I'd suggest finding your preferred far east reseller since they are even cheaper there but you tend to need to wait a couple weeks.

Dam, This thing is amazing !

What a really nicely engineered part. The quality of design is just obvious. If I build another robot I may build this.

How does the airsoft beeb bearing compare to something off the shelf? Is it a big compromise in quality compared to a similar sized cheap commercial bearing?

The 3D printed bearing with airsoft BB's is certainly accurate enough for this application, but the big worry is that it will break during impact with another robot (or a wall). Unfortunately, commercial large bore slew bearings like this, that are very flat and with mounting holes, are generally non-stock items and very expensive. My other swerve drive design, https://www.thingiverse.com/thing:1135618, uses a custom machined split-race bearing. When I get a chance, I'll be posting a hybrid design that is still mostly 3D printed, but that uses the machined steel bearing instead.

Sehome Seamonsters Swerve (S3) Drive
by LoboCNC

Any chance of a video of it in action?

Once we get our swerve drive code fully debugged, I'll be posting a video.

First off, I have no robot building experience, so take the following with as many grains of salt as needed.

You mentioned that increased traction would lead to parts breaking in a collision. Have you done any experimentation with other filaments, like Cheetah or Armadillo? Both are on the "flexible" spectrum, but both are fairly rigid and print in most stock printers. Armadillo in particular is designed to be tough -- it's really only flexible so that it gives instead of breaking. They compare Armadillo to hard hat material. These filaments do cost more than PLA, but if one "unbreakable" (yah, I know, no such thing) assembly in Armadillo replaces 2-3 spare PLA assemblies, the economics might work out in your favor (plus fewer breakdowns in competition).

I was initially thinking that something like NinjaFlex might be useful for the wheels for traction, but honestly, NinjaFlex is pretty slick (has to be, to slide through all the tubes and things necessary to print it), so there's probably no gain to be had on that front. I made a NinjaFlex glove for halloween (HellBoy) and it was really hard to hold things because the surface was as slick as PLA.

As a side note: I know that Makers Muse used PC Max polycarbonate for some gears in one of his battle bots and was very happy. I have absolutely no experience with polycarbonate printing, myself, though I do know that it requires a somewhat special printer to pull it off...

(No, I don't have any association with Fenner Drives / NinjaFlex. But I have been impressed with how tough their material is. Makes sense, given that they made custom drive belts before they got into filament work, so they have some material engineering experience.)

Thanks for the tip on using Armadillo filament. I hadn't heard of this, but it looks like it prints and reasonable temperatures, has low shrinkage (warping), and is actually a little stiffer than PLA (important for structural parts). It's yield strength is not as high as PLA, but the added toughness may make up for that. It's main drawback, though, might be it's heat deflection temperature which appears to be lower than that for PLA. Polycarbonate would be a great material, however its high printing temperature and greater shrinkage make it more difficult for the uninitiated to print with. We'll be doing more testing with the PLA and see exactly what failures we run into. I've also got a version of this swerve drive that is nearly identical, but that uses the machined steel slew bearing from my first swerve drive, if it turns out bearing failure is the main issue.

what about Hatchbox the TPLA filament? its supposed to be very flexible, durable, and i believe it doesn't warp a whole lot if i remember right. or have you tried this already?

TPLA would be worth checking out as well - thanks!

Very nice. I'm working on a similar project. I'm using printed gears instead of the belts you used in the wheel hub.

Off topic a bit ...Last year you made Soda can holder any chance of uploading it again Orange in colour

Oh yeah - I took that down because there was a little confusion with it being on another site. I'll go ahead and put it back up.

What kind of tools would be required to fabricate the metal parts? Can it be done without a lathe?

As designed, the axle and the idler rollers require some simple lathe work. I'd like to do a little redesign so that axle can be made from stock materials without a lathe. The idler rollers are a little trickier - you could just use a bronze bushing, but you really need flanges on both sides. Our high school does have a lathe, but a crappy one, so I end up doing lathe work for the team at home - thus I'm totally motivated to make this lathe-free.

Great job with these wheels. I'm also without a lathe, having a version that does not require metalwork would make this project far more accessible.

Very Cool, well done buddy.

Hey, thanks!