Inkplate 2 display.display() executes instantly without refreshing screen

Customer:

I added Serial.println statements before and after display.display() and it worked fine for over 5 days, but today it stopped refreshing the display entirely. Both Serial.println lines print to the monitor, but display.display() doesn’t do anything and executes in under a second. Normally display.display() takes multiple seconds to draw to the screen (see screenshot). I’m using only a barebone Inkplate 2 from Kickstarter connected via USB-C to a PC, with no battery or external devices. What else could fix this?

Attachment omitted in migration: Screenshot 2024-01-19 130044.png

Originally submitted via the contact form on soldered.com on 19 January 2024. Migrated to the forum for community visibility.

Soldered Support:

You were right to notice that display.display() doesn’t take any time to execute. Let’s investigate further. Open the Inkplate library on your computer and find Inkplate2.cpp.

I’ve made a modified Inkplate2.cpp with debug messages that will print the state of the display.display() function to Serial so we can see what’s happening. You can find it here: https://pastebin.com/raw/jVBdy4z8

Replace all the code in your Inkplate2.cpp with the code from this pastebin and run the example again. I think waitForEpd is getting completely skipped.

Attachment omitted in migration: image.png