diff options
author | Rufo Sanchez <rufo@rufosanchez.com> | 2021-09-12 16:59:15 -0500 |
---|---|---|
committer | KevinOConnor <kevin@koconnor.net> | 2021-10-11 11:29:53 -0400 |
commit | b336a21fe7361c4a0ff177a99e046472dfe0e96b (patch) | |
tree | 0c1162065a02830f107f23b8d1800ae3714e7f9f /klippy/extras/display/menu_keys.py | |
parent | 5f184e3f98bbc59ca2d24729339535e208e7dc3a (diff) | |
download | kutter-b336a21fe7361c4a0ff177a99e046472dfe0e96b.tar.gz kutter-b336a21fe7361c4a0ff177a99e046472dfe0e96b.tar.xz kutter-b336a21fe7361c4a0ff177a99e046472dfe0e96b.zip |
button: Support half-stepping encoders
Adds support for half-stepping encoders (encoders that only emit two
steps per detent, instead of four). Incorporates the feedback from
@susisstrolch's PR: https://github.com/KevinOConnor/klipper/pull/4202
, which was itself built upon a previous PR from @nickbrennan01:
https://github.com/KevinOConnor/klipper/pull/730
Uses the table from the Rotary Arduino library linked in buttons.py:
https://github.com/brianlow/Rotary/blob/6b784cca67c5f1ce5e11d757a540fc4c0311efca/Rotary.cpp#L21-L40
Signed-off-by: Rufo Sanchez <rufo@rufosanchez.com>
Diffstat (limited to 'klippy/extras/display/menu_keys.py')
-rw-r--r-- | klippy/extras/display/menu_keys.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/klippy/extras/display/menu_keys.py b/klippy/extras/display/menu_keys.py index 29e58fe3..91a96e19 100644 --- a/klippy/extras/display/menu_keys.py +++ b/klippy/extras/display/menu_keys.py @@ -17,6 +17,8 @@ class MenuKeys: buttons = self.printer.load_object(config, "buttons") # Register rotary encoder encoder_pins = config.get('encoder_pins', None) + encoder_steps_per_detent = config.getchoice('encoder_steps_per_detent', + {2: 2, 4: 4}, 4) if encoder_pins is not None: try: pin1, pin2 = encoder_pins.split(',') @@ -24,7 +26,8 @@ class MenuKeys: raise config.error("Unable to parse encoder_pins") buttons.register_rotary_encoder(pin1.strip(), pin2.strip(), self.encoder_cw_callback, - self.encoder_ccw_callback) + self.encoder_ccw_callback, + encoder_steps_per_detent) self.encoder_fast_rate = config.getfloat('encoder_fast_rate', .030, above=0.) self.last_encoder_cw_eventtime = 0 |