adafruit / Adafruit_CircuitPython_EPD

e paper driver for circuit python
MIT License
40 stars 19 forks source link

Incorrect framebuffer width for SSD1680 #52

Closed cdmuhlb closed 3 years ago

cdmuhlb commented 3 years ago

The Adafruit_SSD1680 class increases its width parameter to the nearest multiple of 8 before constructing its framebuffers. This results in the framebuffer width not matching the display width whenever the latter is not a multiple of 8 (as is the case for the 122x250 resolution of the 2.13" E-ink Bonnet for Raspberry Pi). One consequence of this mismatch is that graphics are shifted (by 4 pixels in the case of the bonnet) when the rotation of the display is set to 1 or 2.

This was addressed for the SSD1675 and SSD1675B in 8022b34 by distinguishing between the width and stride of the framebuffer. The same fix should be ported to the SSD1680 driver.

ladyada commented 3 years ago

indeed!