I measured voltages on X motor windings after approaching the same point from both sides:
Code: Select all
X:
CNC_XYA_m, x: 89.70674692, y: 34.284, a: 0
==> {"gc":"G0 X89.788 Y34.284 A0"}
<== {"r":{},"f":[1,0,31,132]}
<== {"sr":{"posx":77.790,"vel":22.43,"stat":5}}
<== {"qr":31,"qi":1,"qo":0}
<== {"sr":{"posx":89.786,"posy":34.284,"vel":96.17}}
<== {"sr":{"posx":89.788,"vel":0.00,"stat":3}}
ReadyEvent stat
<== {"qr":32,"qi":0,"qo":1}
X:
CNC_XYA_m, x: 101.70674692, y: 34.284, a: 0
==> {"gc":"G0 X101.788 Y34.284 A0"}
<== {"r":{},"f":[1,0,32,133]}
<== {"sr":{"posx":89.790,"vel":22.43,"stat":5}}
<== {"qr":31,"qi":1,"qo":0}
<== {"sr":{"posx":101.786,"vel":96.19}}
<== {"sr":{"posx":101.788,"vel":0.00,"stat":3}}
ReadyEvent stat
<== {"qr":32,"qi":0,"qo":1}
X:
CNC_XYA_m, x: 89.70674692, y: 34.284, a: 0
==> {"gc":"G0 X89.788 Y34.284 A0"}
<== {"r":{},"f":[1,0,31,132]}
<== {"sr":{"posx":101.786,"vel":22.43,"stat":5}}
<== {"qr":31,"qi":1,"qo":0}
<== {"sr":{"posx":89.788,"vel":22.44}}
<== {"sr":{"posx":89.788,"vel":0.00,"stat":3}}
ReadyEvent stat
<== {"qr":32,"qi":0,"qo":1}
X:
CNC_XYA_m, x: 77.70674692, y: 34.284, a: 0
==> {"gc":"G0 X77.387052 Y33.884 A0"}
<== {"r":{},"f":[1,0,34,135]}
<== {"sr":{"posx":89.786,"posy":34.284,"vel":20.05,"stat":5}}
<== {"qr":31,"qi":1,"qo":0}
<== {"sr":{"posx":77.389,"posy":33.884,"vel":20.05}}
<== {"sr":{"posx":77.387,"vel":0.00,"stat":3}}
ReadyEvent stat
<== {"qr":32,"qi":0,"qo":1}
==> {"gc":"G1 F1000 X77.788 Y34.284"}
<== {"r":{},"f":[1,0,34,135]}
<== {"sr":{"posx":77.390,"posy":33.887,"feed":1000.00,"vel":45.18,"stat":5}}
<== {"qr":31,"qi":1,"qo":0}
<== {"sr":{"posx":77.788,"posy":34.284,"vel":0.00,"stat":3}}
ReadyEvent stat
<== {"qr":32,"qi":0,"qo":1}
X:
CNC_XYA_m, x: 89.70674692, y: 34.284, a: 0
==> {"gc":"G0 X89.788 Y34.284 A0"}
<== {"r":{},"f":[1,0,31,132]}
<== {"sr":{"posx":77.790,"vel":22.43,"stat":5}}
<== {"qr":31,"qi":1,"qo":0}
<== {"sr":{"posx":89.788,"vel":22.44}}
<== {"sr":{"posx":89.788,"vel":0.00,"stat":3}}
ReadyEvent stat
<== {"qr":32,"qi":0,"qo":1}
X:
CNC_XYA_m, x: 101.70674692, y: 34.284, a: 0
==> {"gc":"G0 X101.788 Y34.284 A0"}
<== {"r":{},"f":[1,0,32,133]}
<== {"sr":{"posx":89.790,"vel":22.43,"stat":5}}
<== {"qr":31,"qi":1,"qo":0}
<== {"sr":{"posx":101.788,"vel":22.44,"stat":3}}
ReadyEvent stat
<== {"qr":32,"qi":0,"qo":1}
<== {"sr":{"posx":101.788,"vel":0.00}}
X:
CNC_XYA_m, x: 89.70674692, y: 34.284, a: 0
==> {"gc":"G0 X89.788 Y34.284 A0"}
<== {"r":{},"f":[1,0,31,132]}
<== {"sr":{"posx":101.786,"vel":22.43,"stat":5}}
<== {"qr":31,"qi":1,"qo":0}
<== {"sr":{"posx":89.788,"vel":22.44}}
<== {"sr":{"posx":89.788,"vel":0.00,"stat":3}}
ReadyEvent stat
<== {"qr":32,"qi":0,"qo":1}
So it's definitely tinyG bug.
"Vigorous homing " has nothing to do with this, but "slack compensation" solves this problem at expense of slightly slower operation.