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

• How can I check that? They seem to run smoothly. I also tried to increase motor current but the problem persisted at about the same level. Aug 29 '16 at 21:04
• @NikolayZinov what current do you measure? Are your stepsticks hot? Are they cooled with fan? Try to do your tests (up/down) on min speed and max speed and share results. Aug 30 '16 at 5:17
• @darthpixel I don't measure current directly; judging by VREF I have 0.5A current while my motors are rated at 0.9A. Spesticks are about 35C and do not have fan. I updated main post with my test results at different speeds Aug 30 '16 at 9:26
• When I tested at 20% speed I noticed another sign of failure: after the test the hotend was not at the center of the bed but had shifted away from Z tower. So it seems to me that the problem is not with up-down movement but with motors synchronization. Aug 30 '16 at 9:32
• IMO definitely the current is not enough and that's why you have such issues. Notice that both "failures" are caused by the same - not enough current. Have a look here: 3dprinting.stackexchange.com/questions/1480/… Aug 30 '16 at 9:41

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!)

• ha ha ha! Funny issue. Now I know why all manual troubleshootings start with "insert the plug into the socket" ;) (just a joke). Nikolay - good to hear you've managed it. Aug 30 '16 at 11:28

According to discussions in comments, I'm pretty sure the problem lies in too low current.

Why it happens?

If there is not enough current then motors can omit some steps as the stress is not equal while going up and down. Sometimes inertia can have higher influence than friction.

Additionally because the resistance/stress/friction on towers is different for sure then there are some issues in centering hotend.

So friction/inertia/assembly inaccuracy and current settings inaccuracy can cause such effects. If you are "on the edge" your printer may work well one day but the other day it can fail positioning.

Please refer to post mentioned above. Perform calibration and temperature test (finger test could be ok). I hope you'll manage the issue.