Inkplate 2 ePaper display not updating despite showing "Drawing on the screen" in Serial Monitor

Customer:

I disconnected the battery and powered the Inkplate 2 via USB-C, then reconnected the flat cable and refreshed the sketch. The Serial Monitor showed the “Drawing on the screen” line but without actually drawing on the screen. Resetting by pressing the button just showed the same behavior. Only disconnecting the USB-C cable and connecting it again fixed it, and after showing “Drawing on the screen” it updated again. Why might this be happening?

Originally submitted via the contact form on soldered.com on 13 December 2023. Migrated to the forum for community visibility.

Soldered Support:

When Inkplate 2 prints ‘drawing on the screen’ via the serial monitor, plugging the USB-C cable in and out performs a full power-cycle reset which moves the ePaper panel from a weird state to a fully reset fresh state. Getting the ePaper panel to this state where it doesn’t update can happen with a loose connection between the board and the panel. How is it working now? Is it stable, or does Inkplate 2 go into that state after some time?

Customer:

A power cycle always works, but pressing the reset button won’t display the new screen despite showing “drawing on screen” in the serial monitor. It’s still the same after reconnecting the ePaper flex cable to the board. Is there anything else I could try?

Soldered Support:

That’s strange. Please try the following:

  1. Update Inkplate library to the latest version
  2. Open the example in Arduino IDE and add your WiFi info and any other required data
  3. Add Serial.println("Just before display.display()"); just before the display.display(); line at Inkplate-Arduino-library/examples/Inkplate2/Projects/Inkplate2_Daily_Weather_Station/Inkplate2_Daily_Weather_Station.ino at e7e766238f6417fc5dc3e9d7adc267aa3b73078e · SolderedElectronics/Inkplate-Arduino-library · GitHub
  4. Add Serial.println("Just after display.display()"); just after display.display(); is called

These print outputs will help us see if the code is reaching that position or is somehow getting stuck in display.display();. This will help us rule out a software issue.

Are you by any chance using a battery with Inkplate2 or any other externally connected components?