Customer:
I’m really enjoying the Inkplate 6 PLUS. I have questions about the 5 second limit on full updates that appears throughout the code. With the delay(5000), you lose the ability to have touch input for 5 seconds. Why is the 5 second delay necessary? What happens if you don’t wait? Can you do a partial update during those 5 seconds? The experience is odd - the device is interactive with partial updates, then loses interactivity after doing a full update.
Also, are you aware of any text layout libraries for ArduinoGFX? I need to wrap/clip inside a bounding box with various alignment options (left, center, middle). I’m surprised not to find anything for this. Wrapping only at the screen edge isn’t enough - I need to know the bounding box with wrapping to calculate heights.
Originally submitted via email support on 3 June 2022. Migrated to the forum for community visibility.
Soldered Support:
The 5 second delay is added because continuous full-updates can cause the white part of the picture to become darker or cause burn-in on the panel. It’s better to use partial updates and occasionally do a clean display with a full update. You can use touch during both full-update and partial-update operations.
For graphics and text, Adafruit uses the AdafruitGFX library. Documentation is available at Overview | Adafruit GFX Graphics Library | Adafruit Learning System. To find the bounding box, use the getTextBounds() function - see the documentation for details.
Customer:
You say you can use touch during an update, but if you can’t update, then it’s not clear that touch is working. Can you quickly do a partial update after a full update? It also seems there’s a limit of 500msec after a partial update.
For my needs, bounding box is insufficient. I want to draw text into a smaller rectangle and have it either wrap or clip itself. It seems I need to build a text layout engine - something I’m surprised no one has built before for this library. I’ve already gotten started.
Soldered Support:
ESP32 executes line by line. When you refresh the e-paper, ESP32 must wait until this is finished before proceeding to the next line of code. You can use another CPU core to read and store touch data. ESP32 doesn’t have an e-ink module - the bit bang method is used to control e-paper. During refreshing you must wait because you cannot interrupt refreshing. If you interrupt refreshing, you can get problems with the picture and grayscale.