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?



ertpecs wrote 04/30/2020 at 08:13 point

Hey Mark, thanks for sharing. This is a great way to make a finely tuned adjustment. It checks all the right boxes to on simplicity, cost, executability (if that's a word) and real world results. There's multiple ways of connecting the different size and pitch bolts so just putting it out there with your well worded & explained details with the corresponding pics is a godsend for a lot of people. Great thinking if you figured it out, if not great research and great articulate post. Thanks again!

  Are you sure? yes | no

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

ertpecs wrote 04/30/2020 at 08:02 point

Daren Schwenke that would jutst make two adjustments since you couldn't do all at the same time. You'd be better just doing one with a real close difference. A whole turn to .1mm is pretty fine since it's very easy to do a quarter or an eighth of a turn. Your hobbyist project and equipment isn't going to have or need tolerances like that. But I feel your whole "you ever seen the back of a 20 dollar bill, on weed?" Jon Stewart vibe. Sorry I replied who you replied to cause your comment didn't have a reply option for me.

  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