ESP32 E-Paper Partial Refresh: Full Updates & Ghosting Fixes

Partial refresh changes a supported area of an e-paper display without using the same full-screen update sequence as a cleaning refresh. It can be useful for a clock or changing sensor value, but it is not a universal fast mode for every panel. Match the panel, controller and software before enabling it.

GDEY042T81 4.2-inch e-paper product reference; choose the panel or kit package that matches your project.
GDEY042T81 4.2-inch e-paper product reference; choose the panel or kit package that matches your project.

Full, fast and partial refresh are different

Mode Purpose Important distinction
Full refresh Initialize or update the whole screen using the panel-supported full sequence May be part of managing residual image patterns
Fast full update Use a faster whole-screen sequence where the panel and driver support it Not automatically the same as a partial window
Partial update Update a supported region or use the panel-supported partial sequence Needs matching driver state, waveform and operating conditions

“Full screen” and “full refresh” are also different ideas: a full-screen drawing region does not by itself describe which physical refresh waveform will run.

Identify the exact panel first

The following examples correspond to products with existing ESP32 tutorials:

Panel Resolution Controller Matching GxEPD2 class
GDEY029T94 296×128 SSD1680 GxEPD2_290_GDEY029T94
GDEY042T81 400×300 SSD1683 GxEPD2_420_GDEY042T81

The current GxEPD2 definitions for these named panels declare partial-update support. This does not establish support for another display with the same size or controller family. The driver revision, panel marking and supplied adapter still matter.

Use the 2.9-inch panel tutorial or the 4.2-inch panel tutorial for wiring and the first image before adding partial updates.

A safe development sequence for partial updates

  1. Confirm a reliable first full image with the exact panel class.
  2. Start with one small text field and a simple monochrome layout.
  3. Follow the selected library example's initialization and update sequence.
  4. Clear and redraw the complete intended field, including the background left by the old value.
  5. Check whether the driver aligns or expands update windows and allocate space around text.
  6. Observe several value changes before adding network updates or sleep.

Do not assume that a retained picture means controller memory is initialized after power loss or deep sleep. Re-establish the display state as documented by the driver before resuming partial updates.

Why old digits or shapes remain visible

Residual patterns can involve both application drawing and physical display behavior. If changing “100” to “9” leaves a sharp “00,” the application may not have cleared the old text area. If a faint previous shape remains after a correctly drawn update, examine the supported refresh sequence, operating conditions and full-refresh strategy.

Symptom Next check
Old characters remain sharply visible Clear and redraw the old field/background; check update-window coverage
Faint previous content remains Use the recommended full-refresh strategy and matching driver
First partial update after wake fails Check initialization and previous/current framebuffer state
Only one region changes or is clipped Check rotation, window coordinates and library alignment rules
BUSY timeout or no new image Resolve power, wiring, reset and exact driver selection first

How often should a full refresh run?

There is no single cleaning interval appropriate to all panels. Follow the panel guidance, then evaluate the actual image content, temperature and update schedule. Do not apply a monochrome demonstration's interval to a color panel without matching documentation.

Likewise, do not promise one universal update time from a product's fastest quoted mode. A complete device cycle can also include waking the MCU, fetching data and waiting for the display.

Grayscale and power considerations

A panel advertising grayscale does not make every black/white GxEPD2 example a grayscale application. Use a supported mode and matching software for that purpose. Keep the first partial-refresh test monochrome so you can diagnose one variable at a time.

Measure energy for the complete device, including the ESP32, regulator and adapter. Partial refresh is not by itself a guarantee of longer battery life if Wi-Fi retries or powered peripherals dominate consumption.

Which product package do I need?

A bare FPC panel requires compatible drive circuitry. The GDEY029T94 listing identifies the 2.9-inch panel, while GDEY042T81 options distinguish panel, adapter and demonstration-kit packages. Match the selected hardware to the Wiki before wiring.

Frequently asked questions

Does every e-paper support partial refresh?

No. Select a panel and driver that explicitly support the intended mode.

Can software promise no ghosting forever?

No. Use the supported update strategy and assess the actual application rather than relying on a universal promise.

Can I use the same class for every SSD1680 or SSD1683 screen?

No. The panel-specific definition and physical revision must match, not only the controller family.

Driver references

Related Posts
Start typing to see products you are looking for.
Shopping cart
Shop
Wishlist
0 items Cart
My account
Rates by ExchangeRate-API