diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2019-01-04 20:37:42 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2019-01-21 09:52:11 -0500 |
commit | 56141c21d74a40f8a0eb8c41cd33a0fca2e07183 (patch) | |
tree | b160614398443a3e05d731c6aacde632b8e37592 /klippy/extras/bltouch.py | |
parent | e36122797b0fdf949ff6bedb2f796afe43513577 (diff) | |
download | kutter-56141c21d74a40f8a0eb8c41cd33a0fca2e07183.tar.gz kutter-56141c21d74a40f8a0eb8c41cd33a0fca2e07183.tar.xz kutter-56141c21d74a40f8a0eb8c41cd33a0fca2e07183.zip |
bltouch: Raise probe on startup
Send a pin_up command during startup and try to verify that the probe
actually raises.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/bltouch.py')
-rw-r--r-- | klippy/extras/bltouch.py | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/klippy/extras/bltouch.py b/klippy/extras/bltouch.py index 6c1ed121..ba3cc288 100644 --- a/klippy/extras/bltouch.py +++ b/klippy/extras/bltouch.py @@ -23,6 +23,8 @@ Commands = { class BLTouchEndstopWrapper: def __init__(self, config): self.printer = config.get_printer() + self.printer.register_event_handler("klippy:connect", + self.handle_connect) self.position_endstop = config.getfloat('z_offset') # Create a pwm object to handle the control pin ppins = self.printer.lookup_object('pins') @@ -61,6 +63,12 @@ class BLTouchEndstopWrapper: kin = self.printer.lookup_object('toolhead').get_kinematics() for stepper in kin.get_steppers('Z'): stepper.add_to_endstop(self) + def handle_connect(self): + self.sync_mcu_print_time() + try: + self.raise_probe() + except homing.EndstopError as e: + raise self.printer.config_error(str(e)) def sync_mcu_print_time(self): curtime = self.printer.get_reactor().monotonic() est_time = self.mcu_pwm.get_mcu().estimated_print_time(curtime) @@ -89,6 +97,13 @@ class BLTouchEndstopWrapper: raise homing.EndstopError("BLTouch failed to %s" % (msg,)) for s, pos in zip(self.mcu_endstop.get_steppers(), prev_positions): s.set_commanded_position(pos) + def raise_probe(self): + self.send_cmd('reset') + check_start_time = self.send_cmd('pin_up', duration=self.pin_move_time) + check_end_time = self.send_cmd(None) + if self.pin_up_not_triggered: + self.verify_state(check_start_time, check_end_time, + False, "raise probe") def test_sensor(self): if not self.test_sensor_pin: return @@ -118,12 +133,7 @@ class BLTouchEndstopWrapper: for s in self.mcu_endstop.get_steppers()] def home_finalize(self): self.sync_mcu_print_time() - self.send_cmd('reset') - check_start_time = self.send_cmd('pin_up', duration=self.pin_move_time) - check_end_time = self.send_cmd(None) - if self.pin_up_not_triggered: - self.verify_state(check_start_time, check_end_time, - False, "raise probe") + self.raise_probe() self.sync_print_time() # Verify the probe actually deployed during the attempt for s, mcu_pos in self.start_mcu_pos: |