I'm looking for a methodology to easily measure/evaluate Z positioning accuracy, using equipment on hand or easily obtainable such as a high-precision digital caliper. In particular I want to be able to evaluate whether steps (actual motor steps, or some other chosen unit of increment) are uniformly the nominal step height, or whether some are larger than others, and if so whether the irregularity is reproducible. Has anyone worked out a way to attach a caliper or equivalent measurement device sufficiently rigidly to both a fixed point and a moving-in-Z point (e.g. the bed and the gantry on a typical cartesian machine) that the magnitude of individual steps can be read off? Or maybe a high precision laser range finder/interferometer solution is more appropriate, but I'm not sure about cost/availability.

I ask this in the context of recurring concerns about a common overconstained Z axis design (Ender 3 and nearly everything else with V rollers), but this question is intended to be about measuring not mitigations/fixes.

I'd also be interested in opinions on the necessary measurement precision for this measurement to be meaningful. Almost surely errors as small as 5% of the layer height will lead to some visual surface inconsistency, XY dimensional accuracy problems, and weak points for part to break at, which you'd need 10 micro resolution for 0.2 mm layers to see, but I suspect the reality is much worse for lots of printers and even 20 micron resolution or worse might aid in making serious improvements.

  • 1
    $\begingroup$ Thomas Sanladerer did a test on sensors some years past... $\endgroup$ – Trish Nov 10 '20 at 18:24
  • $\begingroup$ @Trish measuring Z stepper accuracy by moving a sensor using another stepper may not lead to accurate results... $\endgroup$ – FarO Nov 10 '20 at 18:31

In the world of hobbyist milling machines, a DRO accessory is extremely valuable for improving work flow and accuracy of project builds. The Digital Read Out devices run the gamut from affordable to astonishingly expensive and cover one, two and three axis readouts.

For single axis purposes, some hobbyists will simply find a means to attach a digital caliper, as you've suggested, to the machine with appropriately fabricated brackets. That's one option. For a few dollars more, there are off-the-shelf digital read-outs, such as this one from Amazon:

single axis DRO

Six, twelve and twenty-four inch travel options are available with the pictured six inch unit priced at US$39.95, a reasonable figure for 0.01 mm accuracy.

One can purchase pricier models with higher resolution if required.

Brackets included with the device may not fit well to your application and may require modification.

Some DRO devices, such as the one installed on my mini-mill, use physical contact (gears) to read the position information, which means friction and loading of your printer. Other models use micro-engraved glass scales and have minimal friction, but will likely be a bit more expensive.


What you ask is probably not easily doable: you want to measure distances with no more than 1 micron error!

1 micron because assuming 2 mm leadscrew pitch and full steps only, you have 100 full steps per mm (10 microns per step). With 10% error at most you need to measure 1 micron.

What you can do is avoiding measuring distances and rather measure angles to verify that angles are at least equally spaced.

Place a mirror on the shaft of the stepper motor and align a laser and a paper sheet so that the laser reflects on the mirror and reaches a known position on the paper.

Then mark the position of the spot after each step and, with trigonometry, you can calculate the real angle movement per step.

You will need to repeat the alignment every time the laser gets outside the surface of the paper, but you can also use a wall if you prefer. In any case, to cover 360° you need at least 200 measurements...

And obviously take into account measurement errors.

  • $\begingroup$ I'm confused what you have in mind regarding "to cover 360°". I don't suspect the motors are a source of inaccuracy; rather that one or more parts of the (overconstrained) linear motion system bind, deflect, compress, etc. in ways that make the overall motion non-uniform. Likewise (as noted in the question) I don't think the necessary accuracy is relative to motor steps unless you're trying to print with layers that fine; it just needs to be relative to desired layer height. $\endgroup$ – R.. GitHub STOP HELPING ICE Nov 10 '20 at 19:04
  • $\begingroup$ So the mirror ideas as-written in your answer (on motor shaft) doesn't solve the problem I'm asking about, but I suspect it can be adapted somehow using a mirror mounted on the gantry... $\endgroup$ – R.. GitHub STOP HELPING ICE Nov 10 '20 at 19:06
  • $\begingroup$ Oh I didn't get the goal then... I'll leave the answer but I'm not sure how it could be adapted. Reflection from a mirror on the printing bed to a surface far away may work but I should do the calculations $\endgroup$ – FarO Nov 11 '20 at 10:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.