Belt Lifted Z-Axis for a 3D Printer

A high performance Z-axis that is free of z-wobble and will not drop when power is cut.

Similar projects worth following
This is the belt lifted Z-axis design I used in my coreXY 3D printer, Ultra MegaMax Dominator. Belts are uncommon in the Z axis because of two potential problems. When power to the motor is cut, the bed will drop if you don't do something to prevent it. The other problem that concerns people is that the belts will stretch, affecting print quality.

My design uses a 30:1 worm gear reducer that stops bed-drop when power is cut while boosting the lifting power of the motor.

I have measured belt stretch under load (4kg) and made a few simple calculations to determine that the amount that the belts stretch is utterly insignificant.

When I designed my latest coreXY 3D printer, Ultra MegaMax Dominator (UMMD), I wanted a tall Z axis but I didn't want any possibility of Z-wobble in the prints, usually caused by either bent or off-center lead screws.  It took a few attempts, but I eventually arrived at the design that is currently in the printer. 

Like the rest of the printer, the Z axis frame is made from 40mm square t-slot extrusion.  It has two 760 mm long linear guides to provide smooth guidance for the bed support.  There are two 10 mm wide, steel core, HTD-3M belts driven by 36 tooth pulleys doing the lifting.  Pulleys at the top of the axis are made from stacked F608zz bearings mounted on 1/4" thick MIC6 plate using shoulder screws.  The belts are driven by an OnDrives Rino 30:1 worm gear reducer (picked up on ebay for $108) that increases resolution, multiplies torque, and completely eliminates bed-drop on power off.

The gear reducer limits the maximum speed in the Z axis to 20 mm/sec (with the motor spinning at 333 rpm!), which is still fast enough for 3D printing.  It easily lifts the 3.5 kg bed support and bed, plus at least 4 kg of print mass (I never tried more), even though the 1.8A motor is operated at only 1A and is driven directly by the driver chip on the Smoothieboard controller.   Neither the driver nor the motor get more than 5C above ambient temperature.  The combo of 200 motor steps per rev, 16:1 ustepping, 30:1 gear reduction, 36 pulley teeth, and 3 mm belt pitch result in 888.9 usteps per mm.  At 20 mm/sec, the driver chip has to deliver <18k step pulses per second, so even an 8 bit controller board should be able to drive this mechanism.

There is zero backlash in the system because the mass of the bed, its support, and the print, keep the disc gear teeth fully engaged with the worm gear teeth at all times, even as the gears wear, and even with reversal of direction, such as occurs with Z-lift on retract.

Using belts and quality bearings- in this case linear guides- eliminates any possibility of Z wobble- see the microscope photo of the filament spool holder.  Any layer misregistration artifacts visible in the corners of prints is due to the limited precision and accuracy of the XY stage depositing the plastic.

People often ask about the belts stretching and what that does to the prints.  The short answer is that the stretch is so small that its effect is not visible.  I measured 42 um of stretch per 1 kg of print mass.  That translates to an absolute maximum stretch of about 1.2 um in any 250 um print layer (if that layer covered the entire 300x300mm bed with PLA- how often do you do that?).

This Z axis has been performing flawlessly for about 6 months now, and I can safely say that if I build another printer, I will be reusing this design.

The design can easily be adapted to any length, and if you use carriages with wheels riding in the slots in the frame pieces, you can skip the relatively expensive linear guides.  The Rino is a bit pricey, but its cost includes the motor.  Other gear reduced steppers could probably be used to save a few $.

Update:  After running some calculations, I'll be switching the drive pulleys to 40 tooth parts.  That will result in an even 800 usteps per mm, and more importantly, 50 full steps per mm (20 um per full step).  That means that setting print layer thicknesses to multiples of 20 um will always result in full motor steps.

  • Glass vs Steel Core Belt

    Mark Rehorst12/18/2018 at 12:10 0 comments

    Since I changed the belt clamps, my steel core belts were too short to put back on the machine so I installed some Gates LL2MR09 glass core belts. 

    I originally chose steel core belts for the hoped-for minimal stretch, though there wasn't much information about them available.  I measured the displacement of the bed surface with 4 kg piled on it,  It worked out to 42 um per kg of print load, equivalent to a maximum of 1.2 um in any single layer of a print that covers the entire bed.  

    Yesterday I checked the glass core belt stretch.  It was about 3.4 x greater than the steel core belt- about 150 um/kg equivalent to a maximum of 4 um in any single layer of a print that completely covers the bed.  Probably still not an issue for most prints.


  • New belt clamps and belts

    Mark Rehorst12/16/2018 at 14:15 0 comments

    New clamps and glass core belts installed and working fine.  

  • Z axis belt clamp fail...

    Mark Rehorst12/10/2018 at 22:27 0 comments

    The Z axis was recently behaving strangely.  I noticed the belts were flopping around so I retensioned them.  In a couple days, they were flopping again.  I took them off the machine to see what was going on and instead of finding that the steel cores had broken, I found this:

    The polyurethane belt had slid/stretched over the steel core (of course it did!) inside the belt clamp.

    I have redesigned the belt clamps so the ends of the belt will fold over and the teeth will interlock.  That should prevent this sort of problem from reoccurring.

    I have used this folded self-locking type of clamp for years in the XY stage and in SoM, my other printer.

View all 3 project logs

Enjoy this project?



melfahn wrote 03/10/2021 at 14:53 point

I'm looking into doing this with my CR10S PRO, unusual I know, what specifications might change due to the fact that I am only moving the gantry and not the bed?   Worried about backlash due to less weight, Any input appreciated!

  Are you sure? yes | no

Mark Rehorst wrote 03/10/2021 at 15:16 point

I think it will depend on the alignment of the Z axis guides and friction in the linear bearings. If the X axis will drop on the Z axis without support, I don't think you have to worry about backlash, but increased mass in the X axis would reduce the chances of backlash being a problem.

Someone at the makerspace built a corexy printer using one of these motors to drive the Z axis belts and it produces excellent quality prints:

  Are you sure? yes | no

melfahn wrote 03/10/2021 at 16:13 point

Excellent feedback, thank you very much.  I can research the below link, but still not really know for sure, so I'll just ask you. Is something like this an option? If not I will get the one on eBay. Thanks again

LDO NEMA 17 Geared Stepper Motor LDO-42STH40-1204ACPG5 – Printed Solid

  Are you sure? yes | no

Nick Knatterton wrote 07/04/2018 at 08:26 point

Hey Mark,
your Z-axis really raises the bar in DIY printers! (sorry for that pun)
I honestly love your design approach with the focus on small improvements on every corner leading to a more reliable printer.
Have you thought about the thermal expansion of the belt? As it has steel wires I assume they dictate the thermal behavior, which would lead to 12µm/(m*K) of expansion (is that a valid guess? Didn't find a data on thermal behavior..).  And compared to a conventional lead screw the effective length of the belt is doubled (at least at maximum high used), probably also doubling the effect of the expansion?

For 100K difference (quiet a lot..) and 0.6m Z-travel the difference between belt and screw is about 0.7 mm;  1.4mm is not that bad for a 600mm part, but maybe you could half that if you found a way to put the belt drive on top instead of the bottom?

Hope to start my own try on your design soon :-)

  Are you sure? yes | no

Mark Rehorst wrote 07/04/2018 at 12:33 point

Thanks for the comments!

While it is true that the steel wires in the belts will expand with temperature increases, the amount will be insignificant.  The chamber temperature is operated at about 50C when printing ABS which is about a 30C (=30K) temperature rise above ambient.  1.4 m of steel cable will lengthen by about 7 um (per calc here: which is insignificant.  Also, zeroing and leveling are normally done at print temperature, so ultimately, meh.  Machines that use screws to drive the Z axis will experience lengthening of the screws, too, but no one seems to get their panties in a twist about it.

Turning the mechanism over so that the Z axis drive is located at the top of the printer would reduce the length of the belt hanging from the drive pulleys which would reduce the stretch due to the weight of the bed plus print and thermal lengthening, but both are so small that it isn't worth the effort (to me) of a major rebuild.  With my XY stage design, putting the Z drive at the top would require widening the whole machine to make room for the Z axis verticals.

In the months since I prepared this project write-up I have changed the pulleys and belts to 2mm pitch GT2.  The new pulleys have 60 teeth which results in 50 full steps per mm resolution in Z.  I also put a twist in the belts so that the smooth sides would ride on the smooth upper pulleys, but I don't see any difference in print quality.  If I ever have to take the Z axis apart again, I will use the opportunity to take the twists out of the belts because it looks sort of silly.

I suspect that fiberglass core belts would offer about the same overall performance as steel belts without the risk of the cores breaking due to flexing around too small upper pulleys.  

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates