From bcb6c2394e0a96402510e36f5fb4279dfd37f566 Mon Sep 17 00:00:00 2001 From: Rogerio Goncalves Date: Fri, 2 Oct 2026 11:51:38 +0100 Subject: [PATCH] homing: Skip final retract on physical endstops The back-off after the second touch was meant for sensorless homing. With physical endstops the axis now stays on the endstop, as in Klipper, so shared-corner endstop setups home correctly again. Fixes #944. Signed-off-by: Rogerio Goncalves --- docs/Config_Changes.md | 5 +++++ docs/Config_Reference.md | 3 ++- klippy/extras/homing.py | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/Config_Changes.md b/docs/Config_Changes.md index a7b77a3c19..bf7a5153f9 100644 --- a/docs/Config_Changes.md +++ b/docs/Config_Changes.md @@ -8,6 +8,11 @@ All dates in this document are approximate. ## Changes +20261002: Homing with a physical endstop no longer backs off by +`homing_retract_dist` after the final touch; the axis stays on the +endstop, as in Klipper. The final back-off now only applies to +sensorless homing. + 20260914: The firmware "USB product" string now follows the selected MCU unless "USB product from MCU name" is disabled in the low-level "USB ids" menu of `make menuconfig`. A custom USB product set in an diff --git a/docs/Config_Reference.md b/docs/Config_Reference.md index 272955f21c..f5a1dc1f2f 100644 --- a/docs/Config_Reference.md +++ b/docs/Config_Reference.md @@ -320,7 +320,8 @@ position_max: # Distance to backoff (in mm) before homing a second time during # homing. If `use_sensorless_homing` is false, this setting can be set # to zero to disable the second home. If `use_sensorless_homing` is -# true, this setting can be > 0 to backoff after homing. The default +# true, this setting can be > 0 to backoff after homing (physical +# endstops stay on the endstop after the final touch). The default # is 5mm. #homing_retract_speed: # Speed to use on the retract move after homing in case this should diff --git a/klippy/extras/homing.py b/klippy/extras/homing.py index 8940200e21..e7c6081117 100644 --- a/klippy/extras/homing.py +++ b/klippy/extras/homing.py @@ -380,7 +380,7 @@ def home_rails(self, rails, forcepos, movepos): self._set_homing_accel(hi.accel, pre_homing=False) self._set_homing_current(homing_axes, pre_homing=False) - if hi.retract_dist: + if hi.use_sensorless_homing and hi.retract_dist: # Retract (again) startpos = self._fill_coord(forcepos) homepos = self._fill_coord(movepos)