adafruit / Adafruit_EPD

e-paper display driver for Arduino
140 stars 56 forks source link

2.9" E-Ink Featherwing Display Partial Refresh Does Not Work #61

Open chanyork opened 2 years ago

chanyork commented 2 years ago

The below display partial does not work. The single digits does not get updated instead only the 10th digit got updated.

'#include "Adafruit_ThinkInk.h"

define EPD_DC 10 // can be any pin, but required!

define EPD_CS 9 // can be any pin, but required!

define EPD_BUSY -1 // can set to -1 to not use a pin (will wait a fixed delay)

define SRAM_CS 6 // can set to -1 to not use a pin (uses a lot of RAM!)

define SD_CS -4 // SD card chip select

define EPD_RESET -1 // can set to -1 and share with chip Reset (can't deep sleep)

ThinkInk_290_Grayscale4_T5 display(EPD_DC, EPD_RESET, EPD_CS, SRAM_CS, EPD_BUSY); //ThinkInk_154_Mono_D67 display(EPD_DC, EPD_RESET, EPD_CS, SRAM_CS, EPD_BUSY);

void setup() { Serial.begin(115200); // while (!Serial) { delay(10); } // Serial.println("Adafruit counter"); display.begin(THINKINK_GRAYSCALE4); display.setRotation(0); }

uint16_t counter = 0;

void loop() { display.clearBuffer(); display.setTextSize(4); display.setTextColor(EPD_BLACK); display.setCursor(32, 32); display.print((counter / 1000) % 10); display.print((counter / 100) % 10); display.print((counter / 10) % 10); display.print(counter % 10);

if ((counter % 10) == 0) { display.display(false); } else { // redraw only 4th digit display.displayPartial(32+(243), 32, 32+(244), 32+(4*8)); }

counter++;

}'

ladyada commented 2 years ago

tbh partial updates never worked very well in this librayr. you could try gxEPD or gxEPD2!