Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Neither SSD1680 drivers (Adafruit_SSD1680/Adafruit_SSD1680Z) work for the latest GDEY0213B74 E-Ink Bonnets #85

Open
joxl opened this issue Dec 2, 2024 · 4 comments · May be fixed by #86

Comments

@joxl
Copy link

joxl commented Dec 2, 2024

According to the Revision History section on the Adafruit 2.13" Monochrome E-Ink Bonnet for Raspberry Pi - SSD1680 (Product ID 4687) product page, the most recent devices are shipping (or at least have shipped) with a new display model (GDEY0213B74):

  • As of August 21, 2024 - The old 2.13" display has been discontinued, we're now shipping with the GDEY0213B74 which is still an SSD1680 but has 16-pixel offset when configuring the memory layout.

The product page references two Adafruit learning guides (RPi Weather Station and RPi Event Calendar) which use different driver classes, neither of which work with the latest hardware revision (circa August 2024 until at least now).

  • Weather Station uses a new Adafruit_SSD1680Z driver, which is supposed to work with the new GDEY0213B74 devices, but doesn't (see bug examples below)
  • Event Calendar uses the original Adafruit_SSD1680 driver, which isn't compatible with the new GDEY0213B74 devices.

I'm aware of a few forum posts and GitHub PRs (linked below) that all relate to this issue. I'm mainly opening this GitHub issue to track the problem (provides clarity, PRs can reference it, etc). Hopefully this ticket remains open until the driver is fixed a bit more robustly and existing docs/examples are updated accordingly. I do plan on contributing some PRs towards the effort.


Examples

Note: the following examples/results were performed/produced using a Raspberry Pi 2 Model B Rev 1.1 with an Adafruit E-Ink Bonnet purchased (shipped and delivered) in September, 2024.

Edit: examples performed with release 2.13.0 of this library, specifically adafruit-circuitpython-epd==2.13.0 from PyPi

Using the following code to setup a display instance for each of the SSD1680 drivers:

import board
import busio
import digitalio
from PIL import Image
from adafruit_epd.ssd1680 import (
    Adafruit_SSD1680,
    Adafruit_SSD1680Z,
)


def init_display(driver_class):
    disp = driver_class(
        width=122,
        height=250,
        spi=busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO),
        cs_pin=digitalio.DigitalInOut(board.CE0),
        dc_pin=digitalio.DigitalInOut(board.D22),
        sramcs_pin=None,
        rst_pin=digitalio.DigitalInOut(board.D27),
        busy_pin=digitalio.DigitalInOut(board.D17),
    )
    disp.rotation = 1
    return disp

legacy = init_display(Adafruit_SSD1680)
driver_zed = init_display(Adafruit_SSD1680Z)

Note: the blinka.png file referenced in the examples below was sourced here.

  1. Using the legacy driver instance:

    • WHITE fill:
      legacy.fill(legacy.WHITE)
      legacy.display()
      image
    • BLACK fill:
      legacy.fill(legacy.BLACK)
      legacy.display()
      image
    • Image:
      legacy.image(Image.open("blinka.png"))
      legacy.display()
      image
  2. Performing the same operations with driver_zed driver instance:

    • WHITE fill:
      driver_zed.fill(driver_zed.WHITE)
      driver_zed.display()
      image
    • BLACK fill:
      driver_zed.fill(driver_zed.BLACK)
      driver_zed.display()
      image
    • Image:
      driver_zed.image(Image.open("blinka.png"))
      driver_zed.display()
      image

Links

Related forum posts, PRs

Known affected examples / tutorials

@mikeysklar
Copy link
Contributor

Please give PR# 84 a try. It just went in over the weekend and corrects the boder issue you are seeing. It would be helpful to have confirmation.

I'll check the remaining power_up differences between the 'Z' version to see if they can be included.

@joxl
Copy link
Author

joxl commented Dec 2, 2024

Please give PR# 84 a try.

Will do. About to sign off for the day, but I'll try to poke at it tomorrow evening. Thanks for your work on this.

@mikeysklar
Copy link
Contributor

Sounds good. I restored the rest of power_up (voltage, border waveform, RAM X/Y COUNT) and those ran clean with the blank, black, border and weather examples.

@mikeysklar
Copy link
Contributor

Recent thread on the Pi 2.13" SSD1680z is working for forum user with the current PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants