MakerBot Print is our newest print-prepration software, which supports native CAD files and STL assemblies,
allows you to interact with all your printers via the Cloud, and many other exciting new features.

Download Now


Highly Configurable Wheel (One Wheel To Rule Them All)

by CodeCreations Apr 16, 2012
Download All Files

Please Login to Comment

If anyone needs spare or replacement o-rings for the tires, this company has them https://www.alliedmetrics.com/seals/o-rings/

openscad is excellent, true. but I also hope someone will make this one project soon branch in app customizer or a remix one configurator in customizer.

I want to make a piece depicting s Colliery wheel with round spokes.

Can you help? I don't have a programme that opens these files.

Why is there not a customizer button on here? I dont know how to use this

What units do the values in OpenSCAD have?


I have converted this to a library (Should tick off one of your TODO list items). Will be published tomorrow. (I'm a new user here so I must wait 24 hours to publish) ... in fact I only just discovered OpenScad a few weeks ago.
I don't yet know if there is a way to direct message in Thingiverse, but if there is, and you would like a preview, then flick me a message, otherwise just keep an eye out for my remix. It will be callled "Highly Modular Wheel (One Module To Rule The Wheels)". ;-)

Cool. We can also add it to this Thing if you want (with credit, of course). Welcome to Thingiverse and OpenSCAD!

I would be very happy if you link to it from your Thing (assuming you like/agree with my approach - no obligation of course!).

Although my mod is very straight-forward, it does change the entire nature of how users will use the tool. so I think it's best (at least initially) that the 2 versions are kept separate to avoid confusion.
Secondly, I consider it to be a WIP at this stage, and having separate versions maintained in 2 different places may create extra work for both you and me, and confusion for users if it's in a state of change. It's also possible that feedback from more experienced OpenScad users may result in me making further changes.
For these reasons, I would appreciate it if you hold off from simply cloning it (at least until I'm happy that it's settled in as a stable version).

wow this is wheely cool

Thanks for a great wheel template!
Question: cant i find out how or cant one currently do shaftFlatDiameter from both sides?
Made wheels that went on very affordable BYJ48 Stepper Motor, and it's shaft has flat on both sides.
Filled the othe side with some wood splints :)

Wow, what a fantastic resource. I am floored.
I am sure I will make extensive use of this (in the physics and engineering classroom and in hobbies).

Do you have any plans of making this compatible with Makerbot's Customizer? You already have all of the hard work done, it would really just be a matter of changing the comments for the user controlled variables. This would make it more accessible to people that are afraid to use OpenSCAD! I could help out if you're interested, just don't want to step on your toes!

Hi eriqjo -- I tried that when customizer first came out, but a lot of the things I was doing weren't very well supported at that point. Those limitation might have changed since then, though, and you're more than welcome to take a stab at it. I'd like to keep any updated code here in this location (with the original "thing" as opposed to as a derivative), but we should be sure to give you credit in the code!

is there a way for these files be STL? thank you , good work idea

You can use OpenSCAD to generate the STLs. There are frankly so many parameters and options that it would be impossible to create STLs for them all... OpenSCAD is a free download.

Can it do elliptical gears?

Sorry, I don't have gears in there at this time.

This is a truly excellent tool.  Thank you for sharing it!  Would you be willing to give an update on your project to make this work with gears as well?

Thanks for your comments! Gears have been on the list for a while, but it's a pretty significant feature -- I haven't made a lot of progress on it yet because there hasn't really been a lot of the demand. 

Great job, saved me a lot of time, and some very cool patterns too!

I just had to add one thing for my application. I'm using small slot detectors mounted on the bot sides, too small to go over the wheel, and I needed small vanes inside the rim to trigger the detectors. I added the code for optional generation of the vanes, with the size position and number of vanes all settable.

I was going to post it as a derivative, but I figured you might want to just add the option into yours. Let me know if you'd like me to send you the code.


I nearly forgot to add this, but I remembered this morning. Thanks again for contributing! 

Thanks! And sure, I'm happy to add it -- I'll be sure it gets into the github, too. You can just message me here. 

Probably the single most useful Thing in the Thingiverse, well done and thanks! It's useful way beyond just vehicle wheels as it can be kluged into making pulleys, cranks etc. - would love to see more specifically-designed options for that like v-grooves instead of just o-rings. Also a flatted shaft option would be really really handy.

Okay -- check the latest version. I added both v-grooves and shaft flats. Check comments in the code file under Tread Parameters for how to use v-groove. Use the shaftFlatDiameter parameter to specify the shaft flat.

Thank you!! :) Excellent suggestions -- I'll work on them.

You are missing a swastika wheel

Um... Yes, that's correct. I don't plan on adding that design.

you said it can't be square. it can if you set $fn=4!

Ha! Awesome!! 8-) 8-)

Maybe there's a better way to do this. I'm real new to SCAD. I added a variable (setScrewNutOffset) to the "Remove the captive nut" section on the hub code. When set to a really large shaft diameter, the captive nuts were getting lost. Playing with a large shaft to build a wheel to mount on the outside of an outrunner brushless motor.

// Remove the captive nut
for( i=[0:nuts-1] ) {
rotate([ 0,0, (360/nuts)*i ])
translate([diameter/setScrewNutOffset,0, height/2 - (height+hubZOffset)/2]) {
rotate([0,-90,0]) {
captiveNut( nutSize, setScrewDiameter,
depth=height/2+1, holeLengthTop=hubWidth/2,

holeLengthBottom=hubWidth+baseFilletRadius );

This is now fixed in v1.23.

Thanks! Like the offset idea too. I haven't printed any wheels yet, still just playing around. I need to get the calipers out and measure a few components, and browse McMaster for some o-rings around the right size.

If you run out of things to do, being able to put some sort of knurled texture inside the o-ring grooves to prevent slippage would be cool. Like I said I haven't printed one so it might not be a real problem on an RPed part.

I got my o-rings on ebay a while back. I've been meaning to get down to the home center or auto parts store and see if there are any very commonly used sizes... I imagine they'd be cheaper if they're more easily available. I haven't had any problems with mine slipping, but let me know if you do. I have stretch set to 1.015 I think, and they hold pretty tightly.

A friend at the local hackerspace suggested pinball machine o-rings, saying they're a lot stretchier and would probably grip a lot better. I haven't tried them yet, but I'll report when I do.

Interesting -- What shaft sizes? I can take a look at the code and see if I can fix it. If it's not just covering up a bug, I can add your offset idea to the next version.

I'd also love to see some pictures of what you end up with -- so please don't forget to share!

Something in the 25mm range. I was just experimenting with the 1.22 settings. Love the concavity settings for the spokes.

In this case, I set my setScrewNutOffset to 2.375 to keep the hole in the middle of the hub ring. I kind of like being able to set it. On a thicker hub I might want to put it more towards the center.

Yeah, that's a bug. I'm not correctly considering the shaft hole size when I'm placing that trapped nut. I'll fix that and add your offset idea as well -- I'm thinking offset from center, where
lt;0 goes in and
gt;0 goes out.

That wheel looks pretty darn cool! 8-)

Nice Work!

While playing around with the settings I found a little bug.
These settings will create knob thread patters that extend to the inside of the wheel's rim:

treadStyle = "x";
knobSize = [5,4,10]; // The size of each knob [across wheel, along the perimeter, prodruding]

ng set to 10)

I think what happens is that the support that accounts for the bending of the rim should NOT be scaled with the hight of the knob.

One suggestion: an option to move the nut(s) for the set-screw(s) to the inside of the wheel, hiding them from view, making the hub look prettier.

ing at your code for module diamondSpoke, I finally understood how to use the assign command in a smart way.


This is now fixed in v1.22.

Thanks for your comments and your sleuthing! I'll take a look at this tonight and see if I can come up with a fix.

I'm not quite sure what you mean by moving the nuts to the inside. The whole "hub" in this case is actually on the inside. Do you mean there should be options for a prettier "hub" on the outside of the wheel? That's a pretty good idea... I imagine it would make it harder to print at home, but it c
ould actually serve as a platform for bridging if the spokes are inset or concave... I'll have to fiddle with that idea, too.

FYI, I'm also planning to try to add gear teeth at a tread style, but I need to do a bit of research first. When I do this, I'll add a captive nut hub style as well -- sort of the way the large gear works on Greg's extruder...

Captive nut option for any of the hub holes (including servo horn ones) would be very cool indeed. If you're making a wish-list, a hub to retain a bearing (like a 608) would be nice also.

I'm going to see how some spiked wheels print and work this weekend for a robot that I need to run on low pile carpet. I'll probably stick to o-rings for anything that's designed for hard surfaces. I've always wanted to see how one of those Cause of the Week wrist bands work for tires also.

AUGuru -- my kids and I picked up a pack of six of those "cause of the week" style wrist bands at the craft store over the weekend. The new filament came in this week, so I got a chance to try it out, and the traction seems excellent! I posted the one I did as a derivative here: http://www.thingiverse.com/thing:22535http://www.thingiverse.com/thi...

Wristband Wheel

Yeah, let me know how the printing goes. You can definitely configure your way out of a printable object with this due to overhang limits, but there's always shapeways! :)

I'll add bearing retainer and servo horn captive nuts to the list, too. Thanks for your input on this! Wrist bands == another genius idea. I'll have to try that one, too.

Servo horn nut traps are in there now, as well as a large extruder gear style one, and some other stuff. See the comments for details. Bearing retainer is still on the list.

Nice! A Lot of work has been put into this! Do you plan to put it on github so we can follow the updates if there are any? Thanks for sharing!

Or, you know, you could just have an awesome thing and stay up on the home page by it being popular. That's another way to do it. ;)

That's a great idea -- I should probably do that. Thanks! I'll try to get it out there tonight.

thingiverse should let you subscribe to thing updates. There should also be a "what's updated" list like the "what's new" section. That would definitely encourage contributors to continue refining their things. /rant

Having said that, you can get more screen time on the thingiverse home page if you add your other things to this thing so that this becomes a derivative of those. Bonus traffic from people who stumble on your other things and click through when they see there's a derivative. #workthesystemyo

and if I were you, I would add one per every time your thing drops off the front page until all of your things are added... maximum top page views.

WOW! Thank you for the effort that went into this. This is going to be my new go-to for hobby robot wheels. Live the tread options. Going to have to see if I can recreate Pololu track hubs with the offset pattern.

What do you think the best hub option would be for attachment to generic 360 degree servos?

I went ahead and posted the work on both the the spoke insets and concavity. The inner circle is also in this latest update.

Okay -- it supports servo arms now. :) Be sure you have the file with v1.10 at the end, and see the last paragraph of comments under the hub section.

Servo arm support looks great! It can be a bit tricky to make sure the "bolt circle" is big enough to support the mounting holes with some spoke patterns though. Forcing a solid circle of a certain diameter (minus hub and mount holes) would be a nice feature. Aother would be the ability to make the spoke section thinner than the wheel width, with variable offset. If I knew SCAD at all I'd try this myself, and this could be a good reason for me to try to learn :)

I actually already have the thinner spoke section in the works -- two different methods: The first sets an inset for both the inside and outside of the wheel (this would accomplish what you suggest), and the second method will make the wheel body concave. They're it's not quite read yet, though -- hopefully soon...

I had the same thought about the inner circle when I ran into problems fitting the fillet on some wheel styles. All add that feature to the list.

Cool -- let me know how the pololu track experiment goes.

Yikes! I forgot all about servos! I'll add an option for common servo arms tonight after I finish my taxes :/ Thanks for the heads up on this one!

This looks wheely interesting