aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/bltouch.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-01-04 19:12:50 -0500
committerKevin O'Connor <kevin@koconnor.net>2019-01-21 09:52:11 -0500
commit26e818d900f56ce2857654f81a6fce68025c5202 (patch)
treefbedddf2b9cbef3078a6703b120bb37943f19f40 /klippy/extras/bltouch.py
parent293366d0334b1d21802db08016394ccdefa1af50 (diff)
downloadkutter-26e818d900f56ce2857654f81a6fce68025c5202.tar.gz
kutter-26e818d900f56ce2857654f81a6fce68025c5202.tar.xz
kutter-26e818d900f56ce2857654f81a6fce68025c5202.zip
bltouch: Verify probe always deploys during a homing operation
Verify that there is always some movement during a probing operation. This is normally done by the homing.py code (via its verify_movement check), but that check may not be enabled when z_virtual_endstop is used. So, always enable the check in the bltouch.py code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/bltouch.py')
-rw-r--r--klippy/extras/bltouch.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/klippy/extras/bltouch.py b/klippy/extras/bltouch.py
index e5a170ce..326d4528 100644
--- a/klippy/extras/bltouch.py
+++ b/klippy/extras/bltouch.py
@@ -38,6 +38,7 @@ class BLTouchEndstopWrapper:
# Setup for sensor test
self.next_test_time = 0.
self.test_sensor_pin = config.getboolean('test_sensor_pin', True)
+ self.start_mcu_pos = []
# Calculate pin move time
pmt = max(config.getfloat('pin_move_time', 0.200), MIN_CMD_TIME)
self.pin_move_time = math.ceil(pmt / SIGNAL_PERIOD) * SIGNAL_PERIOD
@@ -94,6 +95,8 @@ class BLTouchEndstopWrapper:
self.send_cmd(print_time + self.pin_move_time, 'touch_mode')
toolhead.dwell(self.pin_move_time + MIN_CMD_TIME)
self.mcu_endstop.home_prepare()
+ self.start_mcu_pos = [(s, s.get_mcu_position())
+ for s in self.mcu_endstop.get_steppers()]
def home_finalize(self):
toolhead = self.printer.lookup_object('toolhead')
print_time = toolhead.get_last_move_time()
@@ -101,6 +104,10 @@ class BLTouchEndstopWrapper:
self.send_cmd(print_time + MIN_CMD_TIME, 'pin_up')
self.send_cmd(print_time + MIN_CMD_TIME + self.pin_move_time, None)
toolhead.dwell(self.pin_move_time + MIN_CMD_TIME)
+ # Verify the probe actually deployed during the attempt
+ for s, mcu_pos in self.start_mcu_pos:
+ if s.get_mcu_position() == mcu_pos:
+ raise homing.EndstopError("BLTouch failed to deploy")
self.mcu_endstop.home_finalize()
def home_start(self, print_time, sample_time, sample_count, rest_time):
rest_time = min(rest_time, ENDSTOP_REST_TIME)