diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a38301b..7d750956 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ['3.9', '3.10', '3.11'] + python: ['3.10', '3.11'] env: RELEASE_FILE: ${{ github.event.repository.name }}-${{ github.event.release.tag_name || github.sha }}-py${{ matrix.python }} diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml index f3c1a2d6..dcf4bb64 100644 --- a/.github/workflows/install.yml +++ b/.github/workflows/install.yml @@ -14,7 +14,7 @@ jobs: TERM: xterm-256color strategy: matrix: - python: ['3.9', '3.10', '3.11'] + python: ['3.10', '3.11'] steps: - name: Checkout Code diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a54dac3e..4f1e2e64 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,7 @@ jobs: TERM: xterm-256color strategy: matrix: - python: ['3.9', '3.10', '3.11'] + python: ['3.10', '3.11'] steps: - name: Checkout Code diff --git a/CHANGELOG.md b/CHANGELOG.md index d9e2033d..0f00c69c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +2.4.0 +----- + +* New: Support for the new AC Waveform Spectra 6 displays. + 2.3.0 ----- diff --git a/inky/__init__.py b/inky/__init__.py index 71cf83c3..a55fb6e7 100755 --- a/inky/__init__.py +++ b/inky/__init__.py @@ -12,7 +12,7 @@ from .phat import InkyPHAT, InkyPHAT_SSD1608 # noqa: F401 from .what import InkyWHAT # noqa: F401 -__version__ = "2.3.0" +__version__ = "2.4.0" try: from pkg_resources import declare_namespace diff --git a/inky/auto.py b/inky/auto.py index 67531abd..96006af6 100644 --- a/inky/auto.py +++ b/inky/auto.py @@ -39,9 +39,9 @@ def auto(i2c_bus=None, ask_user=False, verbose=False): return InkyWHAT_SSD1683((400, 300), _eeprom.get_color()) if _eeprom.display_variant == 20: return InkyAC073TC1A(resolution=(800, 480)) - if _eeprom.display_variant == 21: + if _eeprom.display_variant in (21, 27): return InkyEL133UF1(resolution=(1600, 1200)) - if _eeprom.display_variant == 22: + if _eeprom.display_variant in (22, 26): return InkyE673(resolution=(800, 480)) if _eeprom.display_variant == 23: return InkyJD79661(resolution=(250, 122)) diff --git a/inky/eeprom.py b/inky/eeprom.py index 8368a73a..5a916ad0 100644 --- a/inky/eeprom.py +++ b/inky/eeprom.py @@ -35,7 +35,9 @@ "Spectra 6 7.3 800 x 480 (E673)", "Red/Yellow pHAT (JD79661)", "Red/Yellow wHAT (JD79668)", - "Spectra 6 4.0 600 x 400 (E640)" + "Spectra 6 4.0 600 x 400 (E640)", + "Spectra 6 7.3 800 x 480 (E673) AC", + "Spectra 6 13.3 1600 x 1200 (EL133UF1) AC" ] diff --git a/inky/inky_e673.py b/inky/inky_e673.py index 4d9c580f..d55892be 100644 --- a/inky/inky_e673.py +++ b/inky/inky_e673.py @@ -261,6 +261,9 @@ def _update(self, buf): self._send_command(EL673_POF, [0x00]) self._busy_wait(0.3) + self._send_command(EL673_PSR, [0x4F, 0x6E]) + self._busy_wait(0.3) + def set_pixel(self, x, y, v): """Set a single pixel. diff --git a/inky/inky_el133uf1.py b/inky/inky_el133uf1.py index fbe2353d..7368b5d1 100644 --- a/inky/inky_el133uf1.py +++ b/inky/inky_el133uf1.py @@ -51,6 +51,7 @@ EL133UF1_PSR = 0x00 EL133UF1_PWR = 0x01 EL133UF1_POF = 0x02 +EL133UF1_POFS = 0x03 EL133UF1_PON = 0x04 EL133UF1_BTST_N = 0x05 EL133UF1_BTST_P = 0x06 @@ -74,6 +75,9 @@ EL133UF1_PTLW = 0x83 EL133UF1_ANTM = 0x74 EL133UF1_AGID = 0x86 +EL133UF1_CMDA4 = 0xA4 +EL133UF1_DCDC = 0xA5 +EL133UF1_CCSET = 0xE0 EL133UF1_PWS = 0xE3 EL133UF1_TSSET = 0xE5 EL133UF1_CMD66 = 0xF0 @@ -233,23 +237,29 @@ def setup(self): self._busy_wait(0.3) - self._send_command(EL133UF1_ANTM, CS0_SEL, [0xC0, 0x1C, 0x1C, 0xCC, 0xCC, 0xCC, 0x15, 0x15, 0x55]) + self._send_command(EL133UF1_ANTM, CS0_SEL, [0x00, 0x0C, 0x0C, 0xD9, 0xDD, 0xDD, 0x15, 0x15, 0x55]) self._send_command(EL133UF1_CMD66, CS_BOTH_SEL, [0x49, 0x55, 0x13, 0x5D, 0x05, 0x10]) - self._send_command(EL133UF1_PSR, CS_BOTH_SEL, [0xDF, 0x69]) + self._send_command(EL133UF1_PSR, CS_BOTH_SEL, [0xDF, 0x6B]) + self._send_command(EL133UF1_DCDC, CS0_SEL, [0x44, 0x54, 0x00]) self._send_command(EL133UF1_PLL, CS_BOTH_SEL, [0x08]) - self._send_command(EL133UF1_CDI, CS_BOTH_SEL, [0xF7]) + self._send_command(EL133UF1_CDI, CS_BOTH_SEL, [0x37]) self._send_command(EL133UF1_TCON, CS_BOTH_SEL, [0x03, 0x03]) + + self._send_command(EL133UF1_POFS, CS0_SEL, [0x00, 0xC0, 0x03, 0xA8]) + self._send_command(EL133UF1_POFS, CS1_SEL, [0x00, 0xC0, 0x03, 0x9A]) + self._send_command(EL133UF1_AGID, CS_BOTH_SEL, [0x10]) self._send_command(EL133UF1_PWS, CS_BOTH_SEL, [0x22]) self._send_command(EL133UF1_CCSET, CS_BOTH_SEL, [0x01]) self._send_command(EL133UF1_TRES, CS_BOTH_SEL, [0x04, 0xB0, 0x03, 0x20]) + self._send_command(EL133UF1_CMDA4, CS0_SEL, [0x03, 0x00, 0x01, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00]) self._send_command(EL133UF1_PWR, CS0_SEL, [0x0F, 0x00, 0x28, 0x2C, 0x28, 0x38]) self._send_command(EL133UF1_EN_BUF, CS0_SEL, [0x07]) - self._send_command(EL133UF1_BTST_P, CS0_SEL, [0xD8, 0x18]) + self._send_command(EL133UF1_BTST_P, CS0_SEL, [0xE0, 0x20]) self._send_command(EL133UF1_BOOST_VDDP_EN, CS0_SEL, [0x01]) - self._send_command(EL133UF1_BTST_N, CS0_SEL, [0xD8, 0x18]) + self._send_command(EL133UF1_BTST_N, CS0_SEL, [0xE0, 0x20]) self._send_command(EL133UF1_BUCK_BOOST_VDDN, CS0_SEL, [0x01]) self._send_command(EL133UF1_TFT_VCOM_POWER, CS0_SEL, [0x02])