Differential Screw Z-Axis Optical Endstop

A differential screw is used to make a finely adjustable Z=0 endstop for a 3D printer.

Public Chat
Similar projects worth following
This project is a Z=0 endstop for a 3D printer that uses a differential screw to allow fine adjustment of bed position. The differential screw moves the flag that interrupts the light beam. The flag moves 100 um per full turn of the screw over a range of about 2 mm.

If you use a "normal" screw, say M5, one turn of the screw will move the bed 800 um- that's 4 typical print layers.  That makes it very hard to make the fine adjustments <50 um that are typically needed.

In this project, a differential screw is used to make a finely adjustable, Z=0, optical endstop for a 3D printer.  The differential screw is made by turning the end of an M5x0.8 screw down to 4 mm on a lathe and threading that portion with M4x0.7 mm threads.  When the screw is turned 1 full revolution, the screw moves 0.8 mm, meanwhile, the nut on the M4 portion of the screw will move 0.7 mm in the opposite direction relative to the screw.  The net movement of the M4 nut/flag that interrupts the light beam is 100 um in the same direction as the screw is moving.  Using a thumbwheel with 10 bumps (so 10 um each) allows easy small adjustments of the printer's bed position.

I used a 5mm thick piece of teflon for the fixed nut for the M5 portion of the screw, and a standard M4 nut for the other part of the screw.  The M4 nut is embedded in the printed flag, and the flag/nut moves in a printed square tube that prevents them from rotating.  A spring inside the tube keeps the M4 nut's threads engaged and prevents backlash.

The overall adjustment range is only about 2 mm, but that's more than enough as the opto endstop mounts on the t-slot frame of the printer and can easily be repositioned within the range of the differential screw adjuster.

More details here:

  • 1 × M5x0.8x 60-80 mm screw An M5 screw that's about 60-80 mm long
  • 1 × compression spring about 15 mm long and 8-10 mm diameter,, not too stiff
  • 1 × M4x0.7mm nut
  • 1 × 5mm thick PTFE fixed nut drill an undersized hole and let the M5 screw roll it's threads into the plastic.
  • 2 × small plastic anchor screws small wood screws work OK, too

View all 6 components

View project log

Enjoy this project?



Mike Szczys wrote 03/24/2020 at 22:18 point

I've never heard of a differential screw, thanks for the introduction to the concept. I enjoyed reading about your prototyping process for this, the lathe and die method is an great solution.

  Are you sure? yes | no

Mark Rehorst wrote 03/25/2020 at 16:16 point

Before I looked into this, I hadn't heard of them either, even though they are fairly common in precision machinery.

  Are you sure? yes | no

andyhull wrote 03/22/2020 at 12:09 point

Could you continue the idea with a third stage to produce an even smaller movement?

  Are you sure? yes | no

Mark Rehorst wrote 03/22/2020 at 12:37 point

The output of this type device is linear motion, not rotational, so I can't think of any easy way to add an additional stage to it.  You could select standard thread pitches that are closer- M3x0.5 and M2.5x0.45 would give 50 um per full turn of the screw.

If that's not fine enough control, you could couple a differential screw to a flexure based mechanism.

  Are you sure? yes | no

Daren Schwenke wrote 03/25/2020 at 06:53 point

Thread inside another bolt, screw them together, and then turn the outside of that one as well.  Then we can have two levels of overkill.  :)  You got the Like purely for the nice execution of your idea sir.

  Are you sure? yes | no

Simon Merrett wrote 03/19/2020 at 15:21 point

Hi @Mark Rehorst lovely execution. For those without the ability to make from a single piece of threaded rod, may be worth mentioning some alternative options to create the threaded elements, such as epoxy gluing or clamping a section of M4 threaded rod to a section of M5. Perhaps using bolts with the heads back to back would help with fixing. 

  Are you sure? yes | no

Mark Rehorst wrote 03/19/2020 at 15:46 point

I tried epoxy and wasn't successful, but it might work if done right.  The easiest thing to do would probably be to get an M4x0.7 coupling nut, drill half of it to out 5mm, then tap that side with M5x0.8 threads.  Screw together the parts with a drop of locktite on both screws.  The overall length would increase by the length of the coupling nut, but it might still have an acceptable length depending on your application.

  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