aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2023-01-13 10:18:18 -0500
committerKevin O'Connor <kevin@koconnor.net>2024-01-23 20:04:03 -0500
commit7abafb575ba7b098b9f1025a1d65717568a89876 (patch)
treecd62c69ede5d46178cbbccfbb648580c8ad3c338 /klippy/extras
parent4115ea128af3308c1a5af224fce83b12c2e97e1a (diff)
downloadkutter-7abafb575ba7b098b9f1025a1d65717568a89876.tar.gz
kutter-7abafb575ba7b098b9f1025a1d65717568a89876.tar.xz
kutter-7abafb575ba7b098b9f1025a1d65717568a89876.zip
mcu: Remove support for "static" pins
Update static_digital_output.py to directly configure static digital pins. There are no other users of "static" pins, so remove that support from mcu.py, replicape.py, and sx1509.py. This simplifies the low-level pin handling code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras')
-rw-r--r--klippy/extras/replicape.py13
-rw-r--r--klippy/extras/static_digital_output.py6
-rw-r--r--klippy/extras/sx1509.py12
3 files changed, 7 insertions, 24 deletions
diff --git a/klippy/extras/replicape.py b/klippy/extras/replicape.py
index 4c376297..d6737a35 100644
--- a/klippy/extras/replicape.py
+++ b/klippy/extras/replicape.py
@@ -30,7 +30,6 @@ class pca9685_pwm:
self._invert = pin_params['invert']
self._start_value = self._shutdown_value = float(self._invert)
self._is_enable = not not self._start_value
- self._is_static = False
self._last_clock = 0
self._pwm_max = 0.
self._set_cmd = None
@@ -44,28 +43,18 @@ class pca9685_pwm:
if cycle_time != self._cycle_time:
logging.info("Ignoring pca9685 cycle time of %.6f (using %.6f)",
cycle_time, self._cycle_time)
- def setup_start_value(self, start_value, shutdown_value, is_static=False):
- if is_static and start_value != shutdown_value:
- raise pins.error("Static pin can not have shutdown value")
+ def setup_start_value(self, start_value, shutdown_value):
if self._invert:
start_value = 1. - start_value
shutdown_value = 1. - shutdown_value
self._start_value = max(0., min(1., start_value))
self._shutdown_value = max(0., min(1., shutdown_value))
- self._is_static = is_static
self._replicape.note_pwm_start_value(
self._channel, self._start_value, self._shutdown_value)
self._is_enable = not not self._start_value
def _build_config(self):
self._pwm_max = self._mcu.get_constant_float("PCA9685_MAX")
cycle_ticks = self._mcu.seconds_to_clock(self._cycle_time)
- if self._is_static:
- self._mcu.add_config_cmd(
- "set_pca9685_out bus=%d addr=%d channel=%d"
- " cycle_ticks=%d value=%d" % (
- self._bus, self._address, self._channel,
- cycle_ticks, self._start_value * self._pwm_max))
- return
self._mcu.request_move_queue_slot()
self._oid = self._mcu.create_oid()
self._mcu.add_config_cmd(
diff --git a/klippy/extras/static_digital_output.py b/klippy/extras/static_digital_output.py
index ce209372..2fa0bb3f 100644
--- a/klippy/extras/static_digital_output.py
+++ b/klippy/extras/static_digital_output.py
@@ -10,8 +10,10 @@ class PrinterStaticDigitalOut:
ppins = printer.lookup_object('pins')
pin_list = config.getlist('pins')
for pin_desc in pin_list:
- mcu_pin = ppins.setup_pin('digital_out', pin_desc)
- mcu_pin.setup_start_value(1, 1, True)
+ pin_params = ppins.lookup_pin(pin_desc, can_invert=True)
+ mcu = pin_params['chip']
+ mcu.add_config_cmd("set_digital_out pin=%s value=%d"
+ % (pin_params['pin'], not pin_params['invert']))
def load_config_prefix(config):
return PrinterStaticDigitalOut(config)
diff --git a/klippy/extras/sx1509.py b/klippy/extras/sx1509.py
index 8b19dda8..51080fe2 100644
--- a/klippy/extras/sx1509.py
+++ b/klippy/extras/sx1509.py
@@ -104,7 +104,6 @@ class SX1509_digital_out(object):
self._invert = pin_params['invert']
self._mcu.register_config_callback(self._build_config)
self._start_value = self._shutdown_value = self._invert
- self._is_static = False
self._max_duration = 2.
self._set_cmd = self._clear_cmd = None
# Set direction to output
@@ -116,12 +115,9 @@ class SX1509_digital_out(object):
return self._mcu
def setup_max_duration(self, max_duration):
self._max_duration = max_duration
- def setup_start_value(self, start_value, shutdown_value, is_static=False):
- if is_static and start_value != shutdown_value:
- raise pins.error("Static pin can not have shutdown value")
+ def setup_start_value(self, start_value, shutdown_value):
self._start_value = (not not start_value) ^ self._invert
self._shutdown_value = self._invert
- self._is_static = is_static
# We need to set the start value here so the register is
# updated before the SX1509 class writes it.
if self._start_value:
@@ -148,7 +144,6 @@ class SX1509_pwm(object):
self._invert = pin_params['invert']
self._mcu.register_config_callback(self._build_config)
self._start_value = self._shutdown_value = float(self._invert)
- self._is_static = False
self._max_duration = 2.
self._hardware_pwm = False
self._pwm_max = 0.
@@ -182,15 +177,12 @@ class SX1509_pwm(object):
def setup_cycle_time(self, cycle_time, hardware_pwm=False):
self._cycle_time = cycle_time
self._hardware_pwm = hardware_pwm
- def setup_start_value(self, start_value, shutdown_value, is_static=False):
- if is_static and start_value != shutdown_value:
- raise pins.error("Static pin can not have shutdown value")
+ def setup_start_value(self, start_value, shutdown_value):
if self._invert:
start_value = 1. - start_value
shutdown_value = 1. - shutdown_value
self._start_value = max(0., min(1., start_value))
self._shutdown_value = max(0., min(1., shutdown_value))
- self._is_static = is_static
def set_pwm(self, print_time, value, cycle_time=None):
self._sx1509.set_register(self._i_on_reg, ~int(255 * value)
if not self._invert