endstop: Support oversampling of the endstop

Some printers can show occasional noise on the endstop pin.  Support
sampling the endstop pin multiple times to attempt to filter out this
noise.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor
2017-10-01 16:31:05 -04:00
parent 776d8f9f79
commit ece1f71c64
3 changed files with 59 additions and 5 deletions

View File

@@ -6,6 +6,9 @@
import math, logging
import homing, pins
ENDSTOP_OVERSAMPLE_COUNT = 4
ENDSTOP_OVERSAMPLE_TIME = .000015
class PrinterStepper:
def __init__(self, printer, config, name):
self.name = name
@@ -52,6 +55,8 @@ class PrinterHomingStepper(PrinterStepper):
self.mcu_endstop = pins.setup_pin(
printer, 'endstop', config.get('endstop_pin'))
self.mcu_endstop.setup_oversample(
ENDSTOP_OVERSAMPLE_COUNT, ENDSTOP_OVERSAMPLE_TIME)
self.mcu_endstop.add_stepper(self.mcu_stepper)
self.position_min = config.getfloat('position_min', 0.)
self.position_max = config.getfloat(