Introduction: 3D Printed Drive Wheel Adapter

Picture of 3D Printed Drive Wheel Adapter

This project came about to fill a need for an entry into the Power Racing Series from my local makerspace, The Maker Station. In the process of hacking a child-size ride-on vehicle into a vehicle capable of being raced around by adults, you come across numerous problems you have to solve. In this case, I needed to mount a 13" wheel with a five bolt hub pattern to a wheel spindle with a four bolt pattern. One option was to drill out the hubs, but as our space has two entries, I wanted to make an attempt at being able to share spare wheels across both teams without having to make major modifications to the wheel hub. The solution I came up with was to model an adapter and use a 3D printer to build a prototype. This can be used to refine the design before machining or casting a stronger component.

Step 1: Sketching a Design

Picture of Sketching a Design

Whenever I'm trying to solve a mechanical problem, one of the first things I like to do is to just sketch out an idea to see if it makes sense on paper. For this adapter, I had a few known elements. One side would need to mate up to a four bolt pattern. The other would be a five bolt pattern. So immediately, I decided the simplest approach would be a simple flat plate for each. I also looked at how much the bearings protruded from the wheel hub and wheel spindle to determine about how much of a spacer I would need between the two mounting plates.

Step 2: Modeling With OpenSCAD

Picture of Modeling With OpenSCAD

OpenSCAD is a free tool that allows you to render 3D models through the use of scripted commands instead of an interactive modeler. Complex models can be constructed by adding or subtracting more basic geometric shapes. And since the scripts are easily parameterized by basing functions on variable definitions, designs can be easily scaled or adjusted. You can download OpenSCAD from and while there check out their documentation as well.

The first version of the model consisted of two basic round plates with a cylindrical spacer. I measured the bolt hole radii on both the wheel hub and the wheel spindle, the center bore necessary to clear the center bearing, and some maximum constraints about the plate sizes. I went through a couple of iterations with the model script to try to remove some excess material from the wheel hub plate. As part of the redesign, I changed the model from circular plates to more streamlined elements using the hull() command in OpenSCAD.

I realized I could probably just use three of the the hub bolts to mount the plate. This way I wouldn't even need to fully dissemble the hub, which would mean being able to attach the adapter much faster in case I needed to quickly change to a spare wheel. This version also contained a fillet below the top smaller plate to try to help support for printing, but became unnecessary with the next round of refinements.

You can view the "V2" version of the model here:

Step 3: Model Refinement

Picture of Model Refinement

With the model created, I then refined it to split it into two separate parts that can be joined together with a mortise and tenon style joint. As such, I no longer needed the fillet for support, so the model became a little more simple. Each piece can be flipped for optimal positioning for 3D printing. I was able to take advantage of reusing functions in OpenSCAD to add and subtract material to create a tightly fitting joint. I also added several small adjustments in the scripts to allow for a bit of buffer between the components otherwise, they would not be able to slide together. Even with the buffering, I had to do some light sanding to get the two parts to join together.

To render the individual pieces for printing, I just commented out particular method calls whether I wanted to render the full assembly, or either part, flipped appropriately for 3D printing. You will need to initiate a full render in OpenSCAD (not just a quick render) to be able to export the render to and STL file. Once the STL files are generated, I was ready to 3D print my prototypes.

You can view the "V4" version of the model here:

Step 4: 3D Printing

Picture of 3D Printing

Our makerspace has a Lulzbot Mini printer using Cura software. For this step, I just needed to load the STL files generated previously and print them out for test fitting. After printing, I did have to sand some of the joints for a clean fit. I had one failed print that I had to abort and only printed the first few layers, but those served as a handy bolt pattern template for later portions of the Power Racing Series project, when machining sprocket attachments and brake discs.

I mounted the adapters to the wheel hub and the wheel spindle and then connected them together on the axle and the fit was remarkably accurate. While the strength of this component will not last very long, it will be sufficient to prove the concept. With that validation, I will be able to have strong parts machined or create molds from these prototypes to cast stronger versions in metal.

OpenSCAD is a nice, easy-to-use tool for parametric modelling and 3D printing is a perfect solution to this problem of prototyping a hardware solution. I was able to very quickly iterate on my design and print new tests to correct fit problems and adjust material thicknesses. With this valuable knowledge gained with fast and easy prototyping, I can fabricate a more permanent component while minimizing costs due to design errors.


RicoShampoo (author)2015-06-23

Nice design, looks scalable down to electric skateboard size

dellinger (author)RicoShampoo2015-06-23

Thanks! The cool thing with OpenSCAD models is you can scale them pretty easily if you set up variables and base size calculations off of those. If you scale it down, you'd have to watch out for wall thicknesses getting too thin, etc. for the final print, but you can probably just code in some minimum values to help with that.

About This Instructable




More by dellinger:Multirotor Training TargetsMakerspace ContestIndependence Day Door Wreath
Add instructable to: