Merge 61d59ad162 into da7c017ef9
This commit is contained in:
commit
b584d6579e
1 changed files with 29 additions and 9 deletions
|
|
@ -14,6 +14,15 @@ from micropython import const
|
||||||
import adafruit_framebuf
|
import adafruit_framebuf
|
||||||
from adafruit_epd.epd import Adafruit_EPD
|
from adafruit_epd.epd import Adafruit_EPD
|
||||||
|
|
||||||
|
try:
|
||||||
|
"""Needed for type annotations"""
|
||||||
|
from typing import Union, Any
|
||||||
|
from busio import SPI
|
||||||
|
from digitalio import DigitalInOut
|
||||||
|
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
|
||||||
__version__ = "0.0.0+auto.0"
|
__version__ = "0.0.0+auto.0"
|
||||||
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_EPD.git"
|
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_EPD.git"
|
||||||
|
|
||||||
|
|
@ -49,8 +58,17 @@ class Adafruit_IL0398(Adafruit_EPD):
|
||||||
|
|
||||||
# pylint: disable=too-many-arguments
|
# pylint: disable=too-many-arguments
|
||||||
def __init__(
|
def __init__(
|
||||||
self, width, height, spi, *, cs_pin, dc_pin, sramcs_pin, rst_pin, busy_pin
|
self,
|
||||||
):
|
width: int,
|
||||||
|
height: int,
|
||||||
|
spi: SPI,
|
||||||
|
*,
|
||||||
|
cs_pin: DigitalInOut,
|
||||||
|
dc_pin: DigitalInOut,
|
||||||
|
sramcs_pin: DigitalInOut,
|
||||||
|
rst_pin: DigitalInOut,
|
||||||
|
busy_pin: DigitalInOut
|
||||||
|
) -> None:
|
||||||
super().__init__(
|
super().__init__(
|
||||||
width, height, spi, cs_pin, dc_pin, sramcs_pin, rst_pin, busy_pin
|
width, height, spi, cs_pin, dc_pin, sramcs_pin, rst_pin, busy_pin
|
||||||
)
|
)
|
||||||
|
|
@ -76,13 +94,13 @@ class Adafruit_IL0398(Adafruit_EPD):
|
||||||
self.set_color_buffer(1, True)
|
self.set_color_buffer(1, True)
|
||||||
# pylint: enable=too-many-arguments
|
# pylint: enable=too-many-arguments
|
||||||
|
|
||||||
def begin(self, reset=True):
|
def begin(self, reset: bool = True) -> None:
|
||||||
"""Begin communication with the display and set basic settings"""
|
"""Begin communication with the display and set basic settings"""
|
||||||
if reset:
|
if reset:
|
||||||
self.hardware_reset()
|
self.hardware_reset()
|
||||||
self.power_down()
|
self.power_down()
|
||||||
|
|
||||||
def busy_wait(self):
|
def busy_wait(self) -> None:
|
||||||
"""Wait for display to be done with current task, either by polling the
|
"""Wait for display to be done with current task, either by polling the
|
||||||
busy pin, or pausing"""
|
busy pin, or pausing"""
|
||||||
if self._busy:
|
if self._busy:
|
||||||
|
|
@ -92,7 +110,7 @@ class Adafruit_IL0398(Adafruit_EPD):
|
||||||
else:
|
else:
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
|
|
||||||
def power_up(self):
|
def power_up(self) -> None:
|
||||||
"""Power up the display in preparation for writing RAM and updating"""
|
"""Power up the display in preparation for writing RAM and updating"""
|
||||||
self.hardware_reset()
|
self.hardware_reset()
|
||||||
self.busy_wait()
|
self.busy_wait()
|
||||||
|
|
@ -111,14 +129,14 @@ class Adafruit_IL0398(Adafruit_EPD):
|
||||||
self.command(_IL0398_RESOLUTION, bytearray([_b0, _b1, _b2, _b3]))
|
self.command(_IL0398_RESOLUTION, bytearray([_b0, _b1, _b2, _b3]))
|
||||||
time.sleep(0.05)
|
time.sleep(0.05)
|
||||||
|
|
||||||
def power_down(self):
|
def power_down(self) -> None:
|
||||||
"""Power down the display - required when not actively displaying!"""
|
"""Power down the display - required when not actively displaying!"""
|
||||||
self.command(_IL0398_CDI, bytearray([0xF7]))
|
self.command(_IL0398_CDI, bytearray([0xF7]))
|
||||||
self.command(_IL0398_POWER_OFF)
|
self.command(_IL0398_POWER_OFF)
|
||||||
self.busy_wait()
|
self.busy_wait()
|
||||||
self.command(_IL0398_DEEP_SLEEP, bytearray([0xA5]))
|
self.command(_IL0398_DEEP_SLEEP, bytearray([0xA5]))
|
||||||
|
|
||||||
def update(self):
|
def update(self) -> None:
|
||||||
"""Update the display from internal memory"""
|
"""Update the display from internal memory"""
|
||||||
self.command(_IL0398_DISPLAY_REFRESH)
|
self.command(_IL0398_DISPLAY_REFRESH)
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
|
|
@ -126,7 +144,7 @@ class Adafruit_IL0398(Adafruit_EPD):
|
||||||
if not self._busy:
|
if not self._busy:
|
||||||
time.sleep(15) # wait 15 seconds
|
time.sleep(15) # wait 15 seconds
|
||||||
|
|
||||||
def write_ram(self, index):
|
def write_ram(self, index: Union[0, 1]) -> Any:
|
||||||
"""Send the one byte command for starting the RAM write process. Returns
|
"""Send the one byte command for starting the RAM write process. Returns
|
||||||
the byte read at the same time over SPI. index is the RAM buffer, can be
|
the byte read at the same time over SPI. index is the RAM buffer, can be
|
||||||
0 or 1 for tri-color displays."""
|
0 or 1 for tri-color displays."""
|
||||||
|
|
@ -136,7 +154,9 @@ class Adafruit_IL0398(Adafruit_EPD):
|
||||||
return self.command(_IL0398_DTM2, end=False)
|
return self.command(_IL0398_DTM2, end=False)
|
||||||
raise RuntimeError("RAM index must be 0 or 1")
|
raise RuntimeError("RAM index must be 0 or 1")
|
||||||
|
|
||||||
def set_ram_address(self, x, y): # pylint: disable=unused-argument, no-self-use
|
def set_ram_address(
|
||||||
|
self, x: int, y: int
|
||||||
|
) -> None: # pylint: disable=unused-argument, no-self-use
|
||||||
"""Set the RAM address location, not used on this chipset but required by
|
"""Set the RAM address location, not used on this chipset but required by
|
||||||
the superclass"""
|
the superclass"""
|
||||||
return # on this chip it does nothing
|
return # on this chip it does nothing
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue