Merge pull request #83 from mikeysklar/ssd1680z
added ssd1680z 2.13 eink bonnet
This commit is contained in:
commit
b896b61263
1 changed files with 49 additions and 0 deletions
|
|
@ -211,3 +211,52 @@ class Adafruit_SSD1680(Adafruit_EPD):
|
||||||
self.command(_SSD1680_SET_RAMXCOUNT, bytearray([x + 1]))
|
self.command(_SSD1680_SET_RAMXCOUNT, bytearray([x + 1]))
|
||||||
# Set RAM Y address counter
|
# Set RAM Y address counter
|
||||||
self.command(_SSD1680_SET_RAMYCOUNT, bytearray([y, y >> 8]))
|
self.command(_SSD1680_SET_RAMYCOUNT, bytearray([y, y >> 8]))
|
||||||
|
|
||||||
|
|
||||||
|
class Adafruit_SSD1680Z(Adafruit_SSD1680):
|
||||||
|
"""Driver for SSD1680Z ePaper display, overriding SSD1680 settings."""
|
||||||
|
|
||||||
|
# pylint: disable=too-many-arguments, useless-parent-delegation
|
||||||
|
def __init__(
|
||||||
|
self, width, height, spi, *, cs_pin, dc_pin, sramcs_pin, rst_pin, busy_pin
|
||||||
|
):
|
||||||
|
# Call the parent class's __init__() to initialize attributes
|
||||||
|
super().__init__(
|
||||||
|
width,
|
||||||
|
height,
|
||||||
|
spi,
|
||||||
|
cs_pin=cs_pin,
|
||||||
|
dc_pin=dc_pin,
|
||||||
|
sramcs_pin=sramcs_pin,
|
||||||
|
rst_pin=rst_pin,
|
||||||
|
busy_pin=busy_pin,
|
||||||
|
)
|
||||||
|
self.busy_pin = busy_pin # Ensure busy_pin is set
|
||||||
|
|
||||||
|
# pylint: enable=too-many-arguments, useless-parent-delegation
|
||||||
|
|
||||||
|
def power_up(self):
|
||||||
|
"""Power up sequence specifically for SSD1680Z."""
|
||||||
|
self.hardware_reset()
|
||||||
|
self.busy_wait()
|
||||||
|
self.command(_SSD1680_SW_RESET)
|
||||||
|
self.busy_wait()
|
||||||
|
|
||||||
|
self.command(
|
||||||
|
_SSD1680_DRIVER_CONTROL,
|
||||||
|
bytearray([self._height - 1, (self._height - 1) >> 8, 0x00]),
|
||||||
|
)
|
||||||
|
self.command(_SSD1680_DATA_MODE, bytearray([0x03]))
|
||||||
|
self.command(_SSD1680_SET_RAMXPOS, bytearray([0x00, (self._width // 8) - 1]))
|
||||||
|
self.command(
|
||||||
|
_SSD1680_SET_RAMYPOS,
|
||||||
|
bytearray([0x00, 0x00, self._height - 1, (self._height - 1) >> 8]),
|
||||||
|
)
|
||||||
|
|
||||||
|
def update(self):
|
||||||
|
"""Update the display specifically for SSD1680Z."""
|
||||||
|
self.command(_SSD1680_DISP_CTRL2, bytearray([0xF7])) # Full update for SSD1680Z
|
||||||
|
self.command(_SSD1680_MASTER_ACTIVATE)
|
||||||
|
self.busy_wait()
|
||||||
|
if not self.busy_pin:
|
||||||
|
time.sleep(3) # Wait for update to complete
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue