aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/bltouch.py
diff options
context:
space:
mode:
authorFanDjango <FanDjango@users.noreply.github.com>2020-02-13 16:29:28 +0100
committerKevin O'Connor <kevin@koconnor.net>2020-02-15 17:58:56 -0500
commit086c131bbfc28b7891b936b4630ffc0f34ca6e2c (patch)
treee39b260ef6853bc82ff7b3a6407517b84bcca681 /klippy/extras/bltouch.py
parent1dd952ac65e7cb6010f0e698c820e0538d7c3818 (diff)
downloadkutter-086c131bbfc28b7891b936b4630ffc0f34ca6e2c.tar.gz
kutter-086c131bbfc28b7891b936b4630ffc0f34ca6e2c.tar.xz
kutter-086c131bbfc28b7891b936b4630ffc0f34ca6e2c.zip
bltouch: Add support for stow_on_each_sample
Signed-off-by: Mike Stiemke <fandjango@gmx.de>
Diffstat (limited to 'klippy/extras/bltouch.py')
-rw-r--r--klippy/extras/bltouch.py31
1 files changed, 23 insertions, 8 deletions
diff --git a/klippy/extras/bltouch.py b/klippy/extras/bltouch.py
index f423d348..03613f08 100644
--- a/klippy/extras/bltouch.py
+++ b/klippy/extras/bltouch.py
@@ -27,6 +27,8 @@ class BLTouchEndstopWrapper:
self.printer.register_event_handler("klippy:connect",
self.handle_connect)
self.position_endstop = config.getfloat('z_offset')
+ self.stow_on_each_sample = config.getboolean('stow_on_each_sample',
+ True)
# Create a pwm object to handle the control pin
ppins = self.printer.lookup_object('pins')
self.mcu_pwm = ppins.setup_pin('pwm', config.get('control_pin'))
@@ -60,6 +62,8 @@ class BLTouchEndstopWrapper:
self.gcode = self.printer.lookup_object('gcode')
self.gcode.register_command("BLTOUCH_DEBUG", self.cmd_BLTOUCH_DEBUG,
desc=self.cmd_BLTOUCH_DEBUG_help)
+ # multi probes state
+ self.multi = 'OFF'
def _build_config(self):
kin = self.printer.lookup_object('toolhead').get_kinematics()
for stepper in kin.get_steppers():
@@ -118,6 +122,12 @@ class BLTouchEndstopWrapper:
self.next_cmd_time += RETRY_RESET_TIME
continue
break
+ def lower_probe(self):
+ self.test_sensor()
+ self.sync_print_time()
+ duration = max(MIN_CMD_TIME, self.pin_move_time - MIN_CMD_TIME)
+ self.send_cmd('pin_down', duration=duration)
+ self.send_cmd(None)
def test_sensor(self):
if not self.pin_up_touch_triggered:
# Nothing to test
@@ -138,22 +148,27 @@ class BLTouchEndstopWrapper:
self.next_test_time = check_end_time + TEST_TIME
self.sync_print_time()
def multi_probe_begin(self):
- pass
+ if self.stow_on_each_sample:
+ return
+ self.multi = 'FIRST'
def multi_probe_end(self):
- pass
+ if self.stow_on_each_sample:
+ return
+ self.raise_probe()
+ self.multi = 'OFF'
def probe_prepare(self):
- self.test_sensor()
- self.sync_print_time()
- duration = max(MIN_CMD_TIME, self.pin_move_time - MIN_CMD_TIME)
- self.send_cmd('pin_down', duration=duration)
- self.send_cmd(None)
+ if self.multi == 'OFF' or self.multi == 'FIRST':
+ self.lower_probe()
+ if self.multi == 'FIRST':
+ self.multi = 'ON'
self.sync_print_time()
toolhead = self.printer.lookup_object('toolhead')
toolhead.flush_step_generation()
self.start_mcu_pos = [(s, s.get_mcu_position())
for s in self.mcu_endstop.get_steppers()]
def probe_finalize(self):
- self.raise_probe()
+ if self.multi == 'OFF':
+ self.raise_probe()
self.sync_print_time()
# Verify the probe actually deployed during the attempt
for s, mcu_pos in self.start_mcu_pos: