T5 & XL Parametric Pulley

by droftarts, published

T5 & XL Parametric Pulley by droftarts Sep 5, 2011
10 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

58293Views 14708Downloads


Update: An updated version of this file, with a bigger variety and more accurate tooth profiles, is available here: http://www.thingiverse.com/thing:16627

One of the things I've been trying to do is print a pulley with a captive nyloc nut. However, the pulleys in PrusaJr's and Greg Frost's github pages, and the ones on thingiverse, all have some problems. Mostly it's that they are not parametric, or not openscad, or just stl, or rely on other files (Prusa's and Greg's) for some reason. So, as a way to get into learning OpenSCAD, I took Giles Bathgate's openscad copy http://www.thingiverse.com/thing:3104 of nophead's original http://www.thingiverse.com/thing:2079, and the latest one from Prusa's github https://github.com/prusajr/PrusaMendel mashed them up and tweaked extensively with the following:

  • fully parametric, allows any size of pulley base, length of pulley teeth, number of teeth (see note below), number of captive nuts, size of captive nuts and a few other things besides (constants are at the beginning, currently, rather than using configuration.scad)
  • new parameters for:
    1. nut trap shape: allows hex or square nuts to be accommodated
    2. nut depth: can be edited for different nut types ie nyloc
    3. pulley base height: can be set to 0 for no pulley base
    4. pulley base diameter
    5. pulley teeth height
    6. number of captive nuts
    7. angle between captive nuts
  • changing motor shaft size doesn't change the shaft cylinder outer dimension (weird mistake?)
  • nut trap now parametised with nut size, and is consistent with opening (sides are smooth)
  • can have a belt retainer on the open end of the pulley, made with a 45º ramp, to keep wandering belts on the pulley (not tested, can be turned off)
  • grub screw hole altered for better printing
  • no other file/library dependencies (I thought this was useful as this part often get reprinted on its own)


  • parameters for different tooth shape (T5 and XL specified)
  • option for T5 or XL pulleys; amend tooth profile parameters and uncomment relevant part for correct tooth spacing
  • space between shaft and captive nut is adjustable (triffid_hunter)
  • belt retainer height is adjustable (triffid_hunter)

The scad files can be used to create a wide variety of pulleys and toothed idler sprockets, I've made a few different STLs to show, but in the end it's far better to download the scad file and make your own.

Description of included three scad files:
"pulley-T5-8_old_tooth.scad": does NOT have parametric number of teeth, it is fixed at 8 teeth. Everything else is still parametric. The teeth are the same size and spacing as the Prusa/Giles Bathgate/nophead version, which has generally proven reliable.

"pulley-T5-N_old_tooth.scad": you can specify how many teeth you want, however choosing 8 teeth creates a pulley that is slightly smaller (about 0.7mm) in diameter than the Prusa version. The tooth profile is still the same as the original tooth profile from the nophead version.

"pulley-T5-XL-N_tooth.scad": is fully parametric, and uses a tooth profile that is defined by parameters, which allows for T5 or XL shaped-teeth. The tooth shape is subtracted from the pulley, unlike the original version, which is additive. I have included a couple of files for comparison, called "T5-tooth-comparison" scad and stl. The basic difference is that the original version has longer tooth spurs, but the angle of the tooth ramp is incorrect. You can adjust .scad file for deeper teeth, but if there is too much clearance you will get lash from the pulley. The attached STL files are generally sized with a small amount of tolerance, rather than being exact fit. "rtnr" means the pulley has a belt retainer on the end. All pulleys have a 3mm hole for an M3 grub screw, and a slot for a M3 nyloc captive nut. The wall outside of the nyloc nut might be a bit thin for a lot of pressure on the grub screw on the 8-tooth versions.

Regarding tooth spacing: the relationship between the outside diameter of the pulley teeth and the number of teeth is not linear. I took the data for pulley teeth outside diameter from http://www.cmtco.com/catalog/tp_mt.html#T5 and http://www.sdp-si.com/D265/HTML/D265T016.html put it in Excel and graphed the difference of pulley OD over number of teeth. After a few attempts at manually extrapolating the formula from the curve, I used the trial version of CurveExpert Basic from http://www.curveexpert.net/download/ which quickly deduced a formula. This is all shown in the attached excel file. I slightly simplified the formula, added it to the scad file, adjusted the tooth placement and it seems to generate accurately sized pulleys. But the size of the 8-tooth pulley is extrapolated from the end of the curve, and I have nothing to check its diameter is accurate, as 8-tooth pulleys aren't commercially available as it bends T5 belting beyond it's specification. I did the same for XL belt. I can add more variations if there is any interest, eg T2.5, T10, MXL, 40DP, L.
HTD and GT2 belts have rounded teeth, so will require a different method of creating the tooth profile.

Any observations, comments and/or suggestion for additions or further improvement gratefully received.


  1. Download the OpenSCAD files
  2. Play with the parameters until you have the perfect pulley
  3. Render and export as an STL.
  4. Convert to gcode, print.

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

Can you split the T5-plate.stl, I like to use the larger ring gear in a robot project. Thank you

Don't use this thing, the tooth profiles and spacing are not that accurate. Use the updated version: http://www.thingiverse.com/thing:16627
If you don't want to use OpenSCAD to build an stl, you can use the thingiverse customizer to get a single ring gear the right size and with the right number of teeth.

Parametric pulley - lots of tooth profiles

how can i make one of these? i need to make a belt with teeth and a pulley to pull the belt

You'll need the OpenSCAD application, from http://www.openscad.org/http://www.openscad.org/ to open the file. You can print out any pulley you create on a 3D printer/reprap. They are designed to fit standard belt, which is widely available - I don't think you'll be able to print one. An updated version of this file, with more accurate tooth profiles, is available here: http://www.thingiverse.com/thing:16627http://www.thingiverse.com/thi...

Parametric pulley - lots of tooth profiles

can you use this in a 0.35 Nozzle?

You'll probably get the same results as with my other parametric pulley design, which has better tooth fit than this one. It has nothing to do with the stl, or the nozzle size. You need to get your slicing settings right, like I keep telling you!

perhaps with a e-beer  you could make an MNXL version
I decided to learn openscad  what a software !!! but it will take time  getting old and thick....

I am really at a disadvantage, I don't know a thing about scad and would like to know if you could create an stl for an XL idler that would hold two 608 skate bearings, with belt retainers on each side, for the X axis of my Prusa? Thanks, Jeff. My YT channel,

http://www.youtube.com/user/nadingjeffhttp://www.youtube.com/user/na... :)

hi..excellent work,could you make it for MXL??

Parametric pulley - lots of tooth profiles

you are the best, as we say in Florence,Italy:

Fai le buche!! :) :)

Nice work. I'd like to create an idler pulley (608 bearing) for an XL belt. I couldn't find the parameters you used to create the example one for the T5 belt. Would it be possible for you to post those parameters or the scad file used to create the T5 one. If you have a file for the XL even better!


Great, a guinea pig for the XL belt sizes!

Change the following, leave everything else as-is:

motor_shaft = 22; (this is EXACT diameter of 608; try 22.2 for more tolerance)

idler = 1;

teeth = 17;

tooth_width = 2.6124; (this is EXACT size, try 2.81 for more tolerance)

tooth_angle = 50;

tooth_height = 1.3; (this is EXACT size, try 1.4 for more tolerance)

pulley_t_ht = 10; (2 x 608 bearing is 14mm wide, less 2mm retainer each side)

pulley_b_ht = 2;

pulley_b_dia = 30;

Under // BELT SELECTION, insert // before belt_type = "T5"; to comment it out
delete // before belt_type = "XL";

This will make an idler pulley which fits 2 x 608 bearings. If you want an idler to fit a single bearing, you'll have to do without the belt retainers or the belt won't fit:
retainer =
pulley_t_ht = 7;
pulley_b_ht = 0;

Press F5 for preview, F6 to render, export as STL, Skeinforge, print!
Please report back any problems with the file or fit of XL belt.

Hey drofarts!! Nice work!!! Well the new prusa iteration (V2) suggests us to use a T2.5 belt, I got one but I can't find a pulley model for that belt, could you generate the X and Y pulleys for a T2.5 Belt assuming it has the same tooth profile as T5?

I think you'd really be pushing the possible detail printing a usable pulley for T2.5!

I'll update the code, hopefully this week. Sorry, didn't see the earlier post requesting the change. As for printing... I reckon some people will be able to get nice T2.5 pulleys, especially with smaller nozzles (eg 0.35) and lower layer heights.

I know it is a little bit of too much, but I want to see if it is possible... Anyway I managed to get a machined aluminum T2.5 so I'll try with both, printed and machined...


My belt arrived but my pulleys haven't going crazy to print a T2.5 pulley =[

Parametric pulley - lots of tooth profiles

I have uploaded an updated version which uses parametrically created teeth, which allows for XL belts as well as T5, and includes triffid_hunter's suggestions. All stls have been updated too, and as you can see from the pictures, belt fits larger sized pulleys well. Fit of 8-tooth pulleys will generally depend on the quality of your printer; you may find using the old tooth profile will result in better grip. There is a test piece to check fit called "T5-tooth-comparison.stl"

Hi, this is excellent work!

I have added some more tunables. patch sent via PM because thingiverse won't let me post it here

Since this is still a work in progress and neither of us have tried it, I prefer for you to integrate these rather than me make a derivative :)

Please let us know if/when you include these :) :)

I've included your mods, though I have changed a couple of names for clarity, and altered a little of the code. I have also added code for parametric teeth for the pulley, I'll upload tomorrow, just need to test a bit more, and perhaps try a few prints. Any other changes gratefully considered!


parametric teeth should allow us to make XL or larger pitches right?

It's a pity that most printers don't have the precision to do T2.5 pulleys..

Yes, it should allow for XL pulleys too. I need to exptrapolate a formula for the pulley diameters like with the T5 belts; one of the links above has the data. I'll roll this in with the update and upload later today. I can't think of any more parameters to add!