Inkplate 6 doing full refresh on rapid partial updates with third-party library

Customer:

I’m using an Inkplate 6 connected to a Raspberry Pi 5 over serial via USB-C. An Arduino sketch consumes JSON from a Python app running on the Pi and renders to Inkplate after parsing the JSON. Each JSON emission is an enumeration of lines the app needs to display with an update field that tells the Inkplate which lines to partialUpdate.

I’m experiencing unexpected behavior: when the user types quickly (around 3-4 keypresses per second), the Inkplate performs a full flashing refresh instead of partial updates. I’m using a third-party library by Larry Bank rather than Soldered’s drivers, as I found it significantly faster.

Is the full refresh an internal response to throttling built into Inkplate’s microcontroller, or is there a reason for this behavior that I can’t overwrite?

Originally submitted via the contact form on soldered.com on 22 May 2025. Migrated to the forum for community visibility.

Soldered Support:

We can’t guarantee behavior with third-party libraries, only with our own. This is not a hardware feature.

In the Inkplate 6 MOTION library, we implemented a feature where the Inkplate object counts how many partial updates have happened and performs a full update every x partial updates. This is done to preserve the e-paper. On our Inkplates we do approximately 30 partial updates for each full update.

In the regular Inkplate library, this automatic counting is not implemented, so in our project examples we count these updates in the sketch manually.

I can only guess that Larry’s library implements a similar counting of many partial updates before performing a full one, and each keypress is triggering a partial update, which eventually triggers the full refresh when the count is reached.