aboutsummaryrefslogtreecommitdiffstats
path: root/klippy
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-01-23 12:47:28 -0500
committerKevin O'Connor <kevin@koconnor.net>2018-01-28 12:19:26 -0500
commit01bb4b291eb48a2556096ce0d56a212f52405985 (patch)
treecb4767dcdc1b0ea849fcd74a79f02a6254d09366 /klippy
parente38c7df064845da3ec8146e13ecf399cb37e15d1 (diff)
downloadkutter-01bb4b291eb48a2556096ce0d56a212f52405985.tar.gz
kutter-01bb4b291eb48a2556096ce0d56a212f52405985.tar.xz
kutter-01bb4b291eb48a2556096ce0d56a212f52405985.zip
probe: Create a probe:z_virtual_endstop pin
Create a virtual pin that may be used as the z endstop pin on cartesian printers that use the probe in place of a z endstop. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy')
-rw-r--r--klippy/extras/probe.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py
index b1e89944..084612fe 100644
--- a/klippy/extras/probe.py
+++ b/klippy/extras/probe.py
@@ -4,13 +4,14 @@
#
# This file may be distributed under the terms of the GNU GPLv3 license.
import logging
-import homing
+import pins, homing
class PrinterProbe:
def __init__(self, config):
self.printer = config.get_printer()
self.speed = config.getfloat('speed', 5.0)
self.z_position = config.getfloat('z_position', 0.)
+ # Create an "endstop" object to handle the probe pin
ppins = self.printer.lookup_object('pins')
pin_params = ppins.lookup_pin('endstop', config.get('pin'))
mcu = pin_params['chip']
@@ -19,6 +20,9 @@ class PrinterProbe:
if (config.get('activate_gcode', None) is not None or
config.get('deactivate_gcode', None) is not None):
self.mcu_probe = ProbeEndstopWrapper(config, self.mcu_probe)
+ # Create z_virtual_endstop pin
+ ppins.register_chip('probe', self)
+ # Register PROBE/QUERY_PROBE commands
self.gcode = self.printer.lookup_object('gcode')
self.gcode.register_command(
'PROBE', self.cmd_PROBE, desc=self.cmd_PROBE_help)
@@ -31,6 +35,13 @@ class PrinterProbe:
for mcu_endstop, name in s.get_endstops():
for mcu_stepper in mcu_endstop.get_steppers():
self.mcu_probe.add_stepper(mcu_stepper)
+ def setup_pin(self, pin_params):
+ if (pin_params['pin'] != 'z_virtual_endstop'
+ or pin_params['type'] != 'endstop'):
+ raise pins.error("Probe virtual endstop only useful as endstop pin")
+ if pin_params['invert'] or pin_params['pullup']:
+ raise pins.error("Can not pullup/invert probe virtual endstop")
+ return self.mcu_probe
cmd_PROBE_help = "Probe Z-height at current XY position"
def cmd_PROBE(self, params):
toolhead = self.printer.lookup_object('toolhead')