klipper
klipper copied to clipboard
display: add display sleep
add display sleep feature to prevent oled burn-in currently only support uc1701, ssd1306 I tested ssd1306 based device (btt mini12864 v2.0)
if there are multiple display, when key_event happens in main display, wake all other displays this is because only main display can have menu
https://github.com/Klipper3d/klipper/issues/3124
Thank you for submitting a PR,
Please be aware you need to sign off, as per point 3 in https://github.com/Klipper3d/klipper/blob/master/docs/CONTRIBUTING.md#what-to-expect-in-a-review
Thanks.
Hello! I signed-off my commit Thank you!
found bug and found fix
Unhandled exception during run
Traceback (most recent call last):
File "/home/pi/klipper/klippy/klippy.py", line 177, in run
except:
^^^^
File "/home/pi/klipper/klippy/reactor.py", line 329, in run
# File descriptors
^^^^^^^^^^^^^^^
File "/home/pi/klipper/klippy/reactor.py", line 374, in _dispatch_loop
del self._fds[file_handler.fd]
^^^^^^^^^^^^^^^^^
File "/home/pi/klipper/klippy/reactor.py", line 177, in _check_timers
rcb = ReactorCallback(self, callback, waketime)
^^^^^^^^^^^^^^^^
File "/home/pi/klipper/klippy/reactor.py", line 52, in invoke
File "/home/pi/klipper/klippy/extras/buttons.py", line 82, in <lambda>
(lambda et, c=callback, bt=btime, s=state: c(bt, s)))
^^^^^^^^
File "/home/pi/klipper/klippy/extras/buttons.py", line 176, in encoder_callback
self.ccw_callback(eventtime)
File "/home/pi/klipper/klippy/extras/display/menu_keys.py", line 80, in encoder_ccw_callback
self.callback('down', eventtime)
File "/home/pi/klipper/klippy/extras/display/menu.py", line 1031, in key_event
display.sleep(0)
File "/home/pi/klipper/klippy/extras/display/display.py", line 292, in sleep
self.lcd_chip.sleep(sleep)
File "/home/pi/klipper/klippy/extras/display/uc1701.py", line 205, in sleep
self.send(sleep_cmds if on else wake_cmds)
File "/home/pi/klipper/klippy/extras/display/uc1701.py", line 125, in send
self.mcu_dc.update_digital_out(is_data,
File "/home/pi/klipper/klippy/extras/bus.py", line 289, in update_digital_out
self.update_pin_cmd.send([self.oid, not not value],
File "/home/pi/klipper/klippy/mcu.py", line 100, in send
self._serial.raw_send(cmd, minclock, reqclock, self._cmd_queue)
File "/home/pi/klipper/klippy/serialhdl.py", line 252, in raw_send
self.ffi_lib.serialqueue_send(self.serialqueue, cmd_queue,
TypeError: initializer for ctype 'struct serialqueue *' must be a cdata pointer, not NoneType
Transition to shutdown state: Unhandled exception during run