Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Prusa Mendel Adjustable Z-opto end stop

by geoffd123, published

Prusa Mendel Adjustable Z-opto end stop by geoffd123 Jan 4, 2012
2 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

6791Views 1955Downloads


I found that it was quite difficult to accurately adjust the Z-opto end stop on my Prusa. Once I got to the point of having to move it up or down by 0.1mm I was oscillating between the correct point for quite a while before I got it right.

So this design is for an end stop with an adjusting screw. Now I can get the setting almost right, then use the screw to fine tune it.


1) Print the two parts. Clean the holes, making sure an M3 bolt will easily pass through the holes.

2) Place a washer then a spring on two of the 25mm bolts. Insert the bolts through the opto. Thread the top plate onto the two bolts with the hole upwards.

3) Place three M3 nuts into the nut retaining holes on the top plate, two on the bottom, one on top.

4) Thread the two 25mm bolts through the top of the bottom plate and into the retaining nuts. Screw the bolts down until they are just proud of the top of the opto.

5) Screw an M3 nut onto the other 25mm bolt, wind it until it is near the top of the bolt. Thread the bolt through the bottom of the bottom plate until it captures in the top nut.

6) Mount the end stop on the machine and adjust it and the end stop flag so they are correctly positioned horizontally.

7) Bring your z-axis down until it touches the bed at the correct height.

8) Wind the middle bolt up until it touches the top plate, then wind it up a few more turns.

9) Move the end stop up the bar until the opto flag seems to break the beam in the sensor.

10) Home the Z axis and check the bed spacing.

11) Wind the middle bolt up or down accordingly and repeat step 10/11 until it stops at the correct position.

12) Wind the locking nut up into position and recheck.

14) (Optional) Add cable tie to hold wire securely.

15( (Optional) Celebrate!

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

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

Finally have that starting height perfect! Thanks for designing. I used 4 M4 nuts to space the opto from the plate to leave room for the wires. :-D

Great, that is what is was designed for :)

The idea of the two spacers on the endstop-plate was to give some clearance for the wires. Do you feel they should be a bit higher to allow more space? If you do I can increase the height a bit. This is a WIP :)


The endstop holder printed fine. But when skeining the plate I got the error:

Warning, the triangle mesh slice intersects itself in getLoopsFromCorrectMesh in triangle_mesh.

Something will still be printed, but there is no guarantee that it will be the correct shape.

Once the gcode is saved, you should check over the layer with a z of:


Slice layer count 1...

Any suggestions?

Hi Grog,

All fixed, it now slices OK with Slic3r.


This version skeined ok, no errors. But it won't print properly for me.

When looking at the SCAD file for the plate I notice an include for configuration.scad at the top. Since I don't have a file with that name in my folder, that might be causing the problem.

For files that are shared you might not want to have includes, unless you have those files posted also.

Hi Grog,

The configuration file is the standard one used in the Prusa V2 generation. It includes the definitions for the nut and bolt sizes.

If you move your scad files into the 'source' directory of the Prusa code it will render OK. Meantime I will copy and edit mine (it contains lots of code definitio
ns I don't use) and it here.


I have uploaded the configuration.scad file, DO NOT overwrite the standard Prusa configuration file as this has quite different content.


Hi Grog,

I got those message too, but it actually printed fine. However I thought I'd fixed them.

This is a WIP, so I'll go and fix them! :)