@phaedrux said in XY shift after power fail:
I don't really see why there would be a difference in behavior between the homeall and homex and homey other than the use of H2 moves in the homeall and x and not in the homey.
Can you test removing the H2 from the X Y moves in home all? They shouldn't be needed anyway because all the do is allow a move when the axis hasn't been homed yet, but in that case the axis should already be homed. This can actually lead to a case of the homing failing and not being detected.
The H2 option should only be used on the Z axis moves for when you want to raise and lower the Z axis for clearance for XY moves even though the Z axis may not have been homed yet.
Yes, that's it. I removed the H2 from X axis sequence in homeall and it worked correctly and repeatably. Also removed the H2 from homex where I had been noticing a strange Y move of about 3mm just after the X axis home. This would be negated by then homing the Y axis. But if I homed Y and then X, there was an offset. Those 2 corrections have done the job, thanks! Below is the working version of homeall.g (I think the comments need some work though!)
; BLTouch
M280 P0 S160 ; Precautionary alarm release
M280 P0 S90 ; Ensure the pin is raised
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G1 H1 X-625 Y605 F3600 ; move quickly to X and U axis endstops and stop there (first pass)
G1 H1 X-625 F1800 ; move quickly to X and U axis endstops and stop there (first pass)
G1 H1 Y605 F1800 ; move quickly to X and U axis endstops and stop there (first pass)
G1 X5 Y-5 F6000 ; go back a few mm
G1 H1 X-625 Y605 F360 ; move slowly to X and U axis endstops once more (second pass)
G1 H1 X-625 F360 ; move slowly to X and U axis endstops once more (second pass)
G1 H1 Y605 F360 ; move slowly to X and U axis endstops once more (second pass)
G90 ; absolute positioning
G1 X150 Y150 F10000 ; go to first probe point
G30 ; home Z by probing the bed
G91 ; relative positioning
G1 Z5 F100 ; lift Z relative to current position
G90 ; absolute positioning