Hi! First post here on these forums.

I'm controlling an XY gantry put together in a H shape, with the X axes below the higher Y axis. I'm using an Arduino Uno with a CNC shield and TMC2208 controllers.
I'm using 16x microstepping on nema 17 motors with 200steps/rev. The steppers are mounted to lead screw guided carriages. The motion is smooth and free of noise and apparent skipping of steps.

The repeatability test that I ran on my gantry involved moving a total of 90mm in 10mm incremental steps (#1...#9), repeated over 5 runs. The position of the moving gantry was measured using a laser triangulation sensor (https://www.bannerengineering.com/us...rt.803940.html)
I am much more interested in the repeatability of my system, than the accuracy. If 1mm is 1.01mm that is completely fine.

I found it interesting to see in the data that, within each run, the distance traveled (per commanded 10mm move) varied for each of the 9 moves. (data highlighted red)
The baffling thing about the data is that, between all 5 runs, the distance traveled by each numbered segment (#1..#9) was almost identical. (data highlighted green)

What can I attribute this behavior to???

See the data attached in jpg: