Question / observation
On Kalico, home_rails (klippy/extras/homing.py) does an extra retract after the second/final homing touch — the second if hi.retract_dist: block ("Retract (again)") — moving the axis homing_retract_dist (default 5 mm) off the endstop once homing completes. Mainline Klipper leaves the toolhead on the endstop after the final touch. This looks like it came in with "Sensorless retract dist fix (#109)".
Is the post-home retract intended to apply to physical endstops too (not just sensorless)? Asking because it changes physical-endstop homing behavior vs Klipper, and I ran into an edge case where it matters.
The edge case
On printers whose X and Y endstops are co-located / share a corner — e.g. the Creality Ender 5 Max — X can only reach its switch with Y fully at the rear. With the post-home retract, after Y homes it sits ~5 mm forward of the rear, so the subsequent X home misses the shared-corner switch. The same machine homes fine on Klipper, where the axis stays on the endstop.
Repro
Ender 5 Max (physical endstops, CoreXY, home Y before X): G28 → Y homes and retracts ~5 mm → X drives past its endstop.
Possible directions (whichever fits your intent)
- Limit the post-home retract to sensorless endstops, or
- A config knob to disable it independently of
homing_retract_dist (which currently also controls two-touch homing).
Happy to test or open a PR in whichever direction you prefer.
Environment
Kalico v2026.04.00 (pellcorp/kalico-rpi build), physical endstops, CoreXY. Downstream context: pellcorp/creality#1434.
Question / observation
On Kalico,
home_rails(klippy/extras/homing.py) does an extra retract after the second/final homing touch — the secondif hi.retract_dist:block ("Retract (again)") — moving the axishoming_retract_dist(default 5 mm) off the endstop once homing completes. Mainline Klipper leaves the toolhead on the endstop after the final touch. This looks like it came in with "Sensorless retract dist fix (#109)".Is the post-home retract intended to apply to physical endstops too (not just sensorless)? Asking because it changes physical-endstop homing behavior vs Klipper, and I ran into an edge case where it matters.
The edge case
On printers whose X and Y endstops are co-located / share a corner — e.g. the Creality Ender 5 Max — X can only reach its switch with Y fully at the rear. With the post-home retract, after Y homes it sits ~5 mm forward of the rear, so the subsequent X home misses the shared-corner switch. The same machine homes fine on Klipper, where the axis stays on the endstop.
Repro
Ender 5 Max (physical endstops, CoreXY, home Y before X):
G28→ Y homes and retracts ~5 mm → X drives past its endstop.Possible directions (whichever fits your intent)
homing_retract_dist(which currently also controls two-touch homing).Happy to test or open a PR in whichever direction you prefer.
Environment
Kalico v2026.04.00 (pellcorp/kalico-rpi build), physical endstops, CoreXY. Downstream context: pellcorp/creality#1434.