GxEPD2 - "partial updates" general usage

Hello,

I am looking for the best way to make use of an ePaper-Module using the GxEPD2. As I have static and dynamic elements I want to display, the partial update is a good start as it seems.

Looking at various examples from this forum and hackster.io the general approach seems to be the declaration of the whole display as an area to partial refresh.

I was trying to declare multiple areas for a partial update, only covering the area of the dynamic/changing values in the effort to be more efficient. However, it seems it is not intended to use it this way (only the last declared area was shown).
Further, I was observing that the static elements outside this declared window got slightly paler then the refreshed elements.

So I was wondering if this is the way to go, using the whole display despite of elements being static? Is it useful to avoid to redraw static elements, or, does it make no difference in power consumption/time?

Thanks.

I would need to see your code to analyze and answer this part.

If you have several fields on the screen with values that change at the same time, then it is best to use the full screen for partial refresh. There will be no difference in refresh time nor energy needed.
Note that on most panels the differential refresh is used on the full screen anyway. It is not noticed on the parts that have no difference in general.
On panels with SSD controllers, this is true for all, they have partial window addressing, but no partial window refresh (no partial-In, partial-out commands).
On most UC panels, partial window refresh is disabled, to avoid the "ghost frame" around the partial window:

    static const bool hasPartialUpdate = true;
    static const bool usePartialUpdateWindow = false; // set false for better image
    static const bool hasFastPartialUpdate = true;

If your static part is "expensive" to draw, then you could draw it once, and then write the partial windows (instead of drawing them) and update the whole screen with one refresh.
-jz-

Thank you JZ!

I just found the post here which you answered too, but it clarified this further. Funny I came not across this one before.

Note that on most panels the differential refresh is used on the full screen anyway. It is not noticed on the parts that have no difference in general.
On panels with SSD controllers, this is true for all, they have partial window addressing, but no partial window refresh (no partial-In, partial-out commands).
On most UC panels, partial window refresh is disabled, to avoid the "ghost frame" around the partial window

--> I am going to check this!!

My statics are just some rectangles and labels to decorate the screen. But as it is the larger part, I assumed it might be good to avoid the handling every of those elements every loop cycle. So thy feel expensive, but I am too inexperienced for this to answer fact based...

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