aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2024-05-19 13:15:30 -0400
committerKevin O'Connor <kevin@koconnor.net>2024-05-21 20:16:31 -0400
commit37482178b5482a013a4a5a62789705ccaf1e03c6 (patch)
tree34d936d7d76183bd429fd4dfa399f39fe7ed8dee /klippy/extras
parent4709f1fad50b642f744a8804608d55855d7d7b42 (diff)
downloadkutter-37482178b5482a013a4a5a62789705ccaf1e03c6.tar.gz
kutter-37482178b5482a013a4a5a62789705ccaf1e03c6.tar.xz
kutter-37482178b5482a013a4a5a62789705ccaf1e03c6.zip
mcu: Raise an error on a failed home_wait() call
Raise a printer.command_error exception if a home_wait() call fails. This makes it easier to support future types of homing errors. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras')
-rw-r--r--klippy/extras/bltouch.py6
-rw-r--r--klippy/extras/homing.py9
-rw-r--r--klippy/extras/probe_eddy_current.py5
3 files changed, 14 insertions, 6 deletions
diff --git a/klippy/extras/bltouch.py b/klippy/extras/bltouch.py
index 49385428..b01cdb9e 100644
--- a/klippy/extras/bltouch.py
+++ b/klippy/extras/bltouch.py
@@ -116,7 +116,11 @@ class BLTouchEndstopWrapper:
self.mcu_endstop.home_start(self.action_end_time, ENDSTOP_SAMPLE_TIME,
ENDSTOP_SAMPLE_COUNT, ENDSTOP_REST_TIME,
triggered=triggered)
- trigger_time = self.mcu_endstop.home_wait(self.action_end_time + 0.100)
+ try:
+ trigger_time = self.mcu_endstop.home_wait(
+ self.action_end_time + 0.100)
+ except self.printer.command_error as e:
+ return False
return trigger_time > 0.
def raise_probe(self):
self.sync_mcu_print_time()
diff --git a/klippy/extras/homing.py b/klippy/extras/homing.py
index 634ad81b..06b52f1e 100644
--- a/klippy/extras/homing.py
+++ b/klippy/extras/homing.py
@@ -98,11 +98,14 @@ class HomingMove:
trigger_times = {}
move_end_print_time = self.toolhead.get_last_move_time()
for mcu_endstop, name in self.endstops:
- trigger_time = mcu_endstop.home_wait(move_end_print_time)
+ try:
+ trigger_time = mcu_endstop.home_wait(move_end_print_time)
+ except self.printer.command_error as e:
+ if error is None:
+ error = "Error during homing %s: %s" % (name, str(e))
+ continue
if trigger_time > 0.:
trigger_times[name] = trigger_time
- elif trigger_time < 0. and error is None:
- error = "Communication timeout during homing %s" % (name,)
elif check_triggered and error is None:
error = "No trigger on %s after full movement" % (name,)
# Determine stepper halt positions
diff --git a/klippy/extras/probe_eddy_current.py b/klippy/extras/probe_eddy_current.py
index 8b9d705b..636c800d 100644
--- a/klippy/extras/probe_eddy_current.py
+++ b/klippy/extras/probe_eddy_current.py
@@ -243,8 +243,9 @@ class EddyEndstopWrapper:
trigger_time = self._sensor_helper.clear_home()
self._stop_measurements(is_home=True)
res = self._dispatch.stop()
- if res == mcu.MCU_trsync.REASON_COMMS_TIMEOUT:
- return -1.
+ if res >= mcu.MCU_trsync.REASON_COMMS_TIMEOUT:
+ raise self._printer.command_error(
+ "Communication timeout during homing")
if res != mcu.MCU_trsync.REASON_ENDSTOP_HIT:
return 0.
if self._mcu.is_fileoutput():