Started 1st April 2017
Using a modified digital dial gauge (indicator) I set out to discover how accurate the motion of my 3D printer was.
I changed the Z axis position in 0.1 mm steps and read the resulting position. The graph below shows the error (difference between the actual Z position and the theoretical position) against the number of steps.

The printer has M8 threaded rods, the nuts on these move 1.25 mm per rotation. One would expect the error to be periodic with a period of 12.5 steps. This is plausible, but there seems to be a stronger periodicity of 25 steps.
One possible explanation is that it takes 25 steps (of 0.1 mm) for the Z axis motors and threaded rods to return to the same angular position. So I repeated the experiment with steps of 0.125 mm and the graph looked similar - period is 20 steps of 0.125 mm, again 2.5 mm.
I then installed two lead screws, these move 8 mm per rotation (pitch 2 mm, lead 8 mm, 4 threads) surprisingly results are similar, with the strong periodicity of 25 steps of 0.1 mm.
Eventually I set up both the digital dial gauge and a mechanical dial gauge to measure the printer Z position at the same time. The results are shown below. My conclusion is that this digital dial gauge is not to be trusted.

In fairness, my individual gauge may be at fault, I might have upset it adding the data connection, it could be a fake, or a production line reject. Without doing a test of this type I would not have known. There is no sign of mechanical stickiness but one precise position value results in a display of rapidly changing numbers - there is some problem with the hardware or firmware.
Having got the digital version to make this type of experiment easy by using a computer to log the data, I went to the trouble of writing down values from both dial gauges - ruling out any interaction from the data port as the cause of the errors.
The next graph shows the mechanical dial gauge results on their own.

Looking on the bright side the 3D printer Z axis motion seems to be accurate.