Designing a 3D Printed Beaded Ball Chain Drive Pulley for Stepper Motor NEMA 17 on TinkerCAD




About: Big Dreams.

In this instructable, I will explain how to design a 3D printed beaded ball chain drive pulley that works with the Stepper Motor NEMA 17.

In one of my projects in the CMSC838F class at the University of Maryland (taught by Prof. Jon Froehlich), we put a stuffed bunny on the lab's window, and using Microsoft Kinect, we track people passing by the window and move the bunny such that it's located in front of them. This project was inspired by

Since we needed the bunny's movement to be accurate, we decided to use a Stepper Motor NEMA 17, which can be controlled accurately. In order to move the bunny when the motor rotates, we decided to attach the bunny to a beaded ball chain, and wrap the beaded chain around a pulley that is attached to the motor (see the pictures). To make sure the movement is accurate, we designed a pulley that has holes for the beaded chain balls so that the beaded chain would grip perfectly on the pulley, and move accurately when the motor rotates.

In this instructable, I will go over the 3D design process on TinkerCAD step-by-step.

The design was inspired by but this pulley is too small for our case, making it too slow. Since we didn't find a way to modify the STL file that is available for download on thingiverse, we decided to implement our own. As this was my first 3D design, I used TinkerCAD due to its simplicity over most/all of the other alternative software tools.

You can see the final result at:

And designs for the steps at:

In the images, you can see that we added two additional layers to the pulley, to make sure that the balls do not slip. That is because the beaded chain is defective in some areas, and the balls are not spaced as they are supposed to be, causing them to slip out of the pulley when rotating. This part is simple, and we will not go over its design. You can see it at

You can also find this on thingiverse:

On the other side, we used a regular pulley.

Watch the project video to learn more how we used the 3D printed pulley:

For more details on the project itself, please see:

For more details on the class and to browse other projects, please see:

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Creating the Balls Shape Generator

Go to, and follow the steps above to create a shape generator.

We start from the sphere template, and modify it to make it create 72 spheres along a circle.

We use these later as holes, which the beaded chain balls get inside and grip on.

Step 2: Creating the Pulley Structure

Follow the steps above to create the main pulley structure, including a dent in the center to make it grip perfectly on the stepper motor (NEMA 17).

Step 3: Adding Holes for the Beaded Chain Balls

Using the shape generator we created earlier, we now create holes in the pulley, for the beaded chain balls.

Step 4: Adding a Hole for the Beaded Chain String

Finally, we make some space for the beaded chain string to go in.

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • CNC Contest

      CNC Contest

    18 Discussions


    3 years ago

    I've been wondering how well a ball chain would work in place of a timing belt to control a 3d printer. I don't think there would be very much or any stretching over time and use like a belt can have. I might just have to try something!

    1 reply

    Reply 3 years ago

    I wouldn't suggest using it for accurate stuff like a 3D printer. Quoting from above:

    "In the images, you can see that we added two additional layers to the pulley, to make sure that the balls do not slip. That is because the beaded chain is defective in some areas, and the balls are not spaced as they are supposed to be, causing them to slip out of the pulley when rotating."

    Rajaa Kahel

    4 years ago on Introduction

    Please can you help !? PLA printed cylinder (10 cm) is not perfect circular!

    im trying to have a perfect cylinder ( radius 5cm, high 5mm ) when i print it, it looks perfect circular, but when i measure it i see its not perfect. (for example X: 101mm, Y: 99mm) some times the fail is about 1mm.
    i need it to be perfect circular! what is the problem?
    im using Prusa i3, 220 degrees for the extruder and 60 for the glass heated bed.
    is it something with the belts? or in the main board? or what?
    thank you in advance!

    1 reply
    anisabboudRajaa Kahel

    Reply 4 years ago on Introduction

    Hi, I am not in expert in 3D printing, but I suspect that either the printer is not calibrated perfectly, or that it's not good enough or a bit old.

    In any case, I suggest you check what other people are saying on their forums and perhaps post your question there:


    4 years ago

    Brilliant! I tried doing this when I automated my window blinds. I resorted to a simpler solution since I don't know how to cad and have no access to 3d-printers. Still, this would be my next improvement! thanks!

    my project: Automated window blinds with Arduino Uno + Raspbe…:

    1 reply

    5 years ago on Introduction

    You could have probably just wrapped the chain around a disc of plastic and hit it with a soldering iron to melt in the pattern.

    1 reply

    That's really cool. I never thought about a pulley that could accept beaded chain in that way. How does it do when the connector section of the chain that join the 2 ends passes over it? It doesn't fit into those indents the same way as the individual balls would. Does it cause problems?

    3 replies

    Good question! You are right. In addition to the connector, some balls were defective and the spacing between them was not correct.
    To overcome these issues, we added two layers (discs) on the outside as you can see in the pictures. The two additional layers are slightly larger than the main pulley (about ~1 cm), so that even if the balls slip, they don't slip out of the pulley, so they still grip pretty well. But it's probably not 100% accurate, but for our case 95+% accuracy was good enough. (The two outside layers and the pulley are glued together after printing.)
    (Also, note that the connector doesn't have to go around the pulley, because in our case the bunny goes left and right, but never performs a circle...)


    Reply 5 years ago on Introduction

    That was my guess. You don't have so much range of motion that the connecting link goes on a pulley. Why didn't you just use a cog belt? Oh, I just followed the link. You probably could have just used some sash cord. For a gag like that any movement would be acceptable.

    Now you need to figure out how to reduce current while your stepper motor is holding. Some drives do it automatically. All drives control current though. I'm looking at the data sheet for the IC on your motor shield and how it functions is completely software defined. That means current is software controlled too. All that thing is is a pair of logic controlled H bridges. So somewhere in the drive software there should be a way of controlling the current it outputs. If not, one can certainly be written. Or maybe it'd just be easier to drop the input voltage when holding? I guess a fan blowing on the motor was the easiest thing to do. It is an inelegant solution though.

    What the hey, it's a bunny on a ball chain I guess. I'd be surprised to learn that there isn't a way to software control current with your motor shield though. The hardware is certainly capable of doing it. Well, the H bridge is at any rate.


    Reply 4 years ago on Introduction

    Sorry I missed your comment earlier.

    We didn't use a cog belt because we didn't find a cheap and long-enough one at the time.

    The problem with a sash cord is that if it doesn't grip perfectly on the pulley (slips), then we won't know how much did the bunny move.

    As for reducing the current on the motor so that it doesn't get too hot, that's a good idea (we didn't try it though).


    5 years ago on Introduction

    Thank you, I love TinkerCAD. I really appreciate you showing the shape generator. I saw the title and was imagining how to do this with standard TC tools - this is a much tidier solution.

    Is a shape generator able to reference other shapes? Is it possible to add another parameter of 'what shape' where you specify the URL of another TC design? that would be cool and useful.

    Again thanks

    1 reply

    Reply 5 years ago on Introduction

    Thank you! To be honest, I don't have a lot of experience with the shape generator other than what I present in this instructable. I'm not aware of a way you can reference other shapes, but I think this is a great suggestion/feature request!
    You might want to consider suggesting it to the TinkerCAD team:

    If you don't find a better way, I would suggest opening the template code of the other shape, and trying to plug some of that code into your script as a workaround.