GxEPD2 setPartialWindow Screen Artifacts (Waveshare 7.5inch)

Problem:
When I call display.setPartialWindow() there is flickering at the outside few pixels of the whole display (instead of inside the partial window only) and strips with the width and height of the partial window extending to the edges of the display.
The strips are kind of hard to clear and remain on the screen even after a couple of whole screen fills. (Might not be unexpected)
Here is a video of the problem: vid 20220427 174617 oVgHRL0k - YouTube

I tried using GxEPD2_BW instead of GxEPD2_3C but this seemed to have no effect.
I also tried using a different driver class but most of them don't even make the screen draw anything.

Hardware:
Waveshare 7.5inch** (800x480)
Waveshare ESP32 Driver Board

Code:

#include <GxEPD2_3C.h>
#include <GxEPD2_BW.h>
#include <Fonts/FreeSans12pt7b.h>

#define DISPLAY_CLASS GxEPD2_750c_Z08
GxEPD2_3C<DISPLAY_CLASS, DISPLAY_CLASS::HEIGHT> display = GxEPD2_3C<DISPLAY_CLASS, DISPLAY_CLASS::HEIGHT>(DISPLAY_CLASS(/*CS=D8*/ 15, /*DC=D3*/ 27, /*RST=D4*/ 26, /*BUSY=D2*/ 45));

void partialWindowPrint();

void setup() {
  display.init(115200, true, 2, false);
  SPI.end(); // release standard SPI pins, e.g. SCK(18), MISO(19), MOSI(23), SS(5)
  SPI.begin(13, 12, 14, 15); // map and init SPI pins SCK(13), MISO(12), MOSI(14), SS(15)
  display.setRotation(0);
  display.setFullWindow();
  
  display.firstPage();
  do{
    display.fillScreen(GxEPD_WHITE);
  }
  while (display.nextPage());

  delay(1000);
  partialWindowRect();
  delay(1000);
  partialWindowRect();
}
  
void partialWindowRect(){
  do{
    display.setPartialWindow(100, 100, 20, 20);
    display.fillScreen(GxEPD_WHITE);
  }
  while (display.nextPage());
}

void loop(){
  
}

logs:

17:42:09.352 -> Busy Timeout!
17:42:09.352 -> _PowerOn : 20001030
17:42:29.981 -> Busy Timeout!
17:42:29.981 -> _Update_Full : 20001015
17:42:50.028 -> Busy Timeout!
17:42:50.028 -> _PowerOff : 20001014
17:46:21.993 -> Busy Timeout!
17:46:21.993 -> _PowerOn : 20000031
17:46:42.606 -> Busy Timeout!
17:46:42.606 -> _Update_Full : 20000015
17:47:02.618 -> Busy Timeout!
17:47:02.618 -> _PowerOff : 20001014
17:47:23.621 -> Busy Timeout!
17:47:23.621 -> _PowerOn : 20001015
17:47:43.626 -> Busy Timeout!
17:47:43.626 -> _Update_Part : 20001014
17:48:04.643 -> Busy Timeout!
17:48:04.643 -> _Update_Part : 20001015
17:48:47.126 -> Busy Timeout!
17:48:47.126 -> _PowerOn : 20001031
17:49:07.743 -> Busy Timeout!
17:49:07.743 -> _Update_Full : 20001016
17:49:27.758 -> Busy Timeout!
17:49:27.758 -> _PowerOff : 20001014

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.