From aac92ffb916ccf74a9c6692ded671f4f25312b7e Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Sat, 1 Dec 2018 22:09:06 -0500 Subject: [PATCH] bltouch: Fix bug - must restore stepper position after homing Signed-off-by: Kevin O'Connor --- klippy/extras/bltouch.py | 7 +++++++ test/klippy/bltouch.cfg | 2 +- test/klippy/bltouch.test | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/klippy/extras/bltouch.py b/klippy/extras/bltouch.py index c3ce14db..0cf07d79 100644 --- a/klippy/extras/bltouch.py +++ b/klippy/extras/bltouch.py @@ -57,16 +57,23 @@ class BLTouchEndstopWrapper: if print_time < self.next_test_time: self.next_test_time = print_time + TEST_TIME return + # Raise the bltouch probe and test if probe is raised self.send_cmd(print_time, CMD_RESET) home_time = print_time + PIN_MOVE_TIME self.send_cmd(home_time, CMD_TOUCH_MODE) self.send_cmd(home_time + MIN_CMD_TIME, 0.) + # Perform endstop check to verify bltouch reports probe raised + prev_positions = [s.get_commanded_position() + for s in self.mcu_endstop.get_steppers()] self.mcu_endstop.home_start( home_time, ENDSTOP_SAMPLE_TIME, ENDSTOP_SAMPLE_COUNT, .001) try: self.mcu_endstop.home_wait(home_time + MIN_CMD_TIME) except self.mcu_endstop.TimeoutError as e: raise homing.EndstopError("BLTouch sensor test failed") + for s, pos in zip(self.mcu_endstop.get_steppers(), prev_positions): + s.set_commanded_position(pos) + # Test was successful self.next_test_time = home_time + TEST_TIME toolhead.reset_print_time(home_time + 2. * MIN_CMD_TIME) def home_prepare(self): diff --git a/test/klippy/bltouch.cfg b/test/klippy/bltouch.cfg index 4c295f50..aef0b093 100644 --- a/test/klippy/bltouch.cfg +++ b/test/klippy/bltouch.cfg @@ -1,4 +1,4 @@ -# Test config for probe:z_virtual_endstop +# Test config for bltouch [stepper_x] step_pin: ar54 dir_pin: ar55 diff --git a/test/klippy/bltouch.test b/test/klippy/bltouch.test index 914695df..b6b91738 100644 --- a/test/klippy/bltouch.test +++ b/test/klippy/bltouch.test @@ -1,4 +1,4 @@ -# Test case for probe:z_virtual_endstop support +# Test case for bltouch support CONFIG bltouch.cfg DICTIONARY atmega2560-16mhz.dict