Kossel accumulates error along Z axis I have a Mini Kossel and I am going through calibration.

I can home carriages and find the bed with paper-test getting some Z value with M114. Then I run the effector almost full height up and then down - and now Z value for the bed is greater!

If I repeat the process I get greater and greater values in paper-test. It seems that travel per step is different moving in different directions.

How can I fix that? I am using RAMPS 1.4 with Marlin firmware.

UPDATE:

Z values near bed after subsequent runs of five passes of G1 X100 G1 X10

100% speed: 0.1 0.3 0.5 0.7 1.0

 20% speed: 0.1 0.4 0.9 1.4 4.6 6.6

300% speed: 0.0 0.7 1.0 1.3
After some more testing I checked that the problem shows up only on Z tower and is not related with current. Examining the tower I found very dumb mistake. Pulley on the motor didn't have a setscrew! Don't know how could I missed that. The fact that it could somehow run is even more amazing. Thanks @tom-van-der-zanden and @darthpixel for help. It is for sure that such synchronization failure could have been caused by current shortage as well.

UPDATE:

Oh! Y tower pulley doesn't have setscrew as well! But it was running smoothly and in sync with X (which has that screw). Amazing. - UPDATE2. Not really. After closer look only Z tower misses the screw, which explains all.

UPDATE3:

After setting a srew into pulley the problem is completely gone!)