From 004edb961316682cfdb57a7c6166eb06b0d3ca55 Mon Sep 17 00:00:00 2001 From: Nicholas Seckar Date: Thu, 3 Oct 2019 14:59:03 -0700 Subject: fan: Add off_below option for fans (#1897) Below off_below the fan will be turned off. When configured correctly this can prevent stalling, which may lead to overheating and failed fans. To simplify calibration and use of this setting, off_below is applied in the input duty cycle domain, prior to any scaling due to e.g. max_power. Signed-off-by: Nicholas Seckar --- klippy/extras/fan.py | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'klippy/extras/fan.py') diff --git a/klippy/extras/fan.py b/klippy/extras/fan.py index 5f72a780..f11a9e86 100644 --- a/klippy/extras/fan.py +++ b/klippy/extras/fan.py @@ -16,6 +16,8 @@ class PrinterFan: self.max_power = config.getfloat('max_power', 1., above=0., maxval=1.) self.kick_start_time = config.getfloat('kick_start_time', 0.1, minval=0.) + self.off_below = config.getfloat( + 'off_below', default=0., minval=0., maxval=1.) ppins = printer.lookup_object('pins') self.mcu_fan = ppins.setup_pin('pwm', config.get('pin')) self.mcu_fan.setup_max_duration(0.) @@ -29,6 +31,8 @@ class PrinterFan: def handle_request_restart(self, print_time): self.set_speed(print_time, 0.) def set_speed(self, print_time, value): + if value < self.off_below: + value = 0. value = max(0., min(self.max_power, value * self.max_power)) if value == self.last_fan_value: return -- cgit v1.2.3-70-g09d2