diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2019-01-04 19:12:50 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2019-01-21 09:52:11 -0500 |
commit | 26e818d900f56ce2857654f81a6fce68025c5202 (patch) | |
tree | fbedddf2b9cbef3078a6703b120bb37943f19f40 /klippy/extras/bltouch.py | |
parent | 293366d0334b1d21802db08016394ccdefa1af50 (diff) | |
download | kutter-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.py | 7 |
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) |