Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk11 min

How to Reduce Ghosting and Refresh Artifacts on an ESP32 E-Paper Display

Ghosting is usually a panel-specific refresh problem. Match the exact driver and waveform, initialize with a full update, limit partial refreshes and schedule the full cleans your panel documents.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Ghosting on an ESP32 e-paper display is usually caused by refresh policy or panel configuration, not by the ESP32 drawing the wrong pixels. Partial and differential updates trade flicker and speed for a higher chance of residual images. The reliable fix is panel-specific: select the driver for the exact panel revision, initialize it with the full sequence it requires, use partial refresh only where documented, and schedule the maker’s recommended full refreshes.

There is no universal refresh count or API call that works for every e-paper module. Controller chips can be shared by several panels while their waveforms, color encoding, initialization order and supported refresh modes differ.

As an Amazon Associate I earn from qualifying purchases.

What ghosting is and why it appears

An e-paper pixel does not change like an LCD pixel. Its particles are moved by a waveform supplied by the panel controller. A full waveform deliberately drives the display through several transitions, which causes the visible flashing associated with a clean refresh. A partial or differential waveform uses a shorter sequence for a smaller region or a modest change. It is faster and less distracting, but it leaves more of the previous state behind.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

After repeated partial or fast operations, those small residual errors accumulate as pale text, outlines or blocks from older frames. A supported full refresh normally removes the accumulation. The important qualification is “supported”: the waveform and timing must match the exact panel.

#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter | 4Pack Type C Female to A Male Cable Converter for Apple Duo 17 16 15 14 Plus,iWatch Watch 12 11 10,iPad 9 8 Air,Airpods 5 4
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
  • Partial refresh: updates a defined area with little or no visible flicker. It is useful for clocks, counters and other small changes, but residual images can build up.
  • Differential refresh: calculates or applies a change between image states. The method depends on the library and panel and has the same accumulated-ghosting trade-off.
  • Fast full refresh: refreshes the whole screen more quickly, often with a single visible flash, but may not clear a long sequence of partial updates as completely as the standard full waveform.
  • Standard full refresh: flashes several times and is intended to restore a clean image when afterimages have accumulated.

Some panels provide only full-screen refresh, while color panels and other specialized modules impose different limits. Never enable a mode merely because another module uses the same controller IC.

Start with the exact panel and revision

Before changing refresh code, identify the complete display part number, board revision and panel size from the module label and its documentation. Record the controller board as well as the glass panel. A library driver is selected for the panel’s electrical and waveform requirements, not simply for a familiar controller name.

Check Why it matters What to do
Panel part number and revision Two revisions can use different waveforms or color encoding. Photograph the label and match the complete number in the maker’s panel list.
Library driver class An incorrect class can produce ghosting, grey output, mirroring or corrupted geometry even when SPI communication works. Choose the class named for the exact panel, not the closest-looking size.
Partial-refresh support Some displays do not support differential or partial operation at all. Confirm the supported modes in the panel and library documentation before writing partial-refresh code.
Software versions Examples and minimum versions change as board support evolves. Check the current board and library requirements. A Waveshare ESP32 example was verified with arduino-esp32 3.3.10 and GxEPD2 1.6.9; those version details are example-specific and may change.

The GxEPD2 project lists panels with no differential refresh and panels that support only full refresh. If your model is in one of those categories, repeated partial-refresh experiments will not make it behave like a different model.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose the refresh mode deliberately

Decide first whether the application values low latency, low flicker or the cleanest image. The following comparison is a decision aid, not a promise that every panel implements all four modes.

Mode Visible behavior Best use Main risk
Standard full Several flashes; slowest of the common modes Startup, recovery from ghosting and occasional screen-wide changes Flicker and longer update time
Fast full Usually one flash; faster than standard full on supported hardware Whole-screen changes when the panel’s fast waveform is documented as adequate May leave traces after many partial updates
Partial Little or no visible flicker; updates a region Small, frequent changes such as a value or status field Residual images accumulate; may be unsupported
Differential Changes are based on image differences or a prior buffer Fast changes on panels with a documented differential waveform Ghosting and rendering trade-offs, including problems with some large text or complex transitions

Also compare the panel’s supported update area, color capability, operating-temperature range and supplied waveform. A mode that looks attractive in a library example is unsuitable if the panel maker does not specify it for your model.

Initialize the display with the required full sequence

On a cold boot, reset or wake from a deep-sleep cycle, perform the complete initialization prescribed for the panel. For panels that use differential refresh, GxEPD2 notes that the first refresh should be a full update because the screen may not match the library’s previous-image buffer. Starting with a partial update can leave the first frame contaminated by an unknown prior state.

Rank #2
Sale
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
  1. Reset and initialize the display using the exact driver selected for the panel.
  2. Send the library’s required first full update before attempting a partial or differential update.
  3. Only after that clean baseline is established, use the panel’s documented fast or partial mode.

Keep the initialization step separate from ordinary drawing logic. A program that redraws graphics correctly but skips the panel-specific startup sequence can still show persistent traces.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use the panel’s standard waveform when cleaning the screen

If a fast full update does not remove an afterimage, determine whether the library is still using a fast-full waveform. In the cited Waveshare ESP32-S3-ePaper-3.97 example, the standard mode is selected after initialization with:

display.init();
display.epd2.selectFastFullUpdate(false);

This call belongs to that driver and example; it is not a universal GxEPD2 command for every panel. On a driver that exposes the option, setting it to false selects the standard full waveform. The resulting multi-flash operation is slower but is intended to clear accumulated traces more thoroughly.

If your driver does not expose that method, use the full-refresh procedure documented for your panel rather than copying an API call from another model. A “full” operation in one library can mean a fast full waveform, while another driver may provide only the standard waveform.

Schedule full refreshes instead of guessing a universal count

Maintain a counter for fast and partial operations, or another policy that guarantees a full refresh at the interval specified for your panel. The interval is a panel specification, not an ESP32 rule.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For example, the Waveshare 2.13-inch e-Paper V4 specification recommends a full-screen refresh after five consecutive fast or partial operations. That number applies to the cited V4 panel and should not be transferred to a different size, revision or color model.

Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

A generic policy looks like this:

initialize_with_required_full_update();

if (partial_or_fast_count >= panel_documented_limit) {
    perform_standard_full_refresh();
    partial_or_fast_count = 0;
} else {
    perform_documented_partial_or_fast_refresh();
    ++partial_or_fast_count;
}

Replace panel_documented_limit and both refresh routines with the names and limits supplied by your driver. If a panel’s documentation gives no partial-refresh support, remove the partial branch rather than inventing a cadence.

Count consecutive operations according to the maker’s wording. If the specification says “five consecutive fast or partial operations,” a standard full refresh resets the sequence; a fast full may or may not reset it depending on the documentation. Do not assume that every whole-screen update is equivalent to a cleaning waveform.

Understand the timing trade-off with a real example

Waveshare’s ESP32-S3-ePaper-3.97 guide measured these waveform times in one example setup:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Operation Measured waveform time Qualification
Partial refresh 370 ms Measurement for that example panel and software setup
Fast full refresh 1.70 s Measurement for that example panel and software setup
Standard full refresh 2.10 s Measurement for that example panel and software setup

The same guide’s end-to-end examples also include image transfer and driver power-up. Consequently, these figures are not general ESP32 e-paper performance targets. Measure your own transfer, BUSY wait and waveform time if latency matters.

The Waveshare 2.13-inch V4 specification describes the user-visible compromise directly: a standard full refresh flashes several times and is intended to remove afterimages; a fast refresh flashes once; a partial refresh does not visibly flicker but can accumulate residual images.

A practical implementation sequence

1. Establish a known-good baseline

Run the manufacturer’s example for the exact panel and revision before adding application graphics. Confirm that the panel clears correctly after power-up and that text is upright, correctly colored and positioned. This separates hardware and driver problems from application logic.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

2. Perform a clean startup refresh

After reset or wake, run the documented initialization and first full update. Do not begin with a clock tick, sensor value or partial window until that baseline is complete.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Use partial refresh only for genuinely small changes

Limit partial updates to the regions and content types the panel documentation supports. A full-screen redraw disguised as a partial operation defeats the purpose of the waveform and increases the chance of residual structure.

4. Track the documented cadence

Increment a counter after each fast or partial operation and invoke the required full refresh at the maker’s interval. Keep the counter in application state so a loop, screen change or sleep cycle cannot silently bypass the policy.

5. Prefer standard full for recovery

When an operator requests a clean screen, or when your counter reaches the documented limit, use the panel’s standard full waveform if available. Treat fast full as a speed option, not as a guaranteed ghost-removal operation.

6. Reinitialize after unusual power states

If the panel loses power, is reset independently or resumes from deep sleep, follow the wake-up sequence in its documentation. The library’s previous-image buffer and the physical screen can then be out of sync, which is precisely the condition that makes an initial full update important.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot by symptom

Residual images appear after several partial updates

  • Run the documented standard full refresh.
  • Check your operation counter against the panel’s specified interval.
  • Verify that the panel actually supports partial refresh.
  • Reduce the partial region and frequency if the application can tolerate it.

For the 2.13-inch V4 example, five consecutive fast or partial operations is the manufacturer’s stated point for adding a full-screen refresh. Do not apply that number to another panel without its own documentation.

Best Value
Sale
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display | 85W Max PD, 1 Powered USB-C 5Gbps & 2 Powered USB-A 3.0 5Gbps Data Ports, for MacBook Pro, MacBook Air, Dell and More (Black)
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

The old frame remains after a “full” refresh

  • Check whether “full” currently selects a fast-full waveform.
  • On drivers that support it, switch to the standard waveform, as in the cited example’s selectFastFullUpdate(false) setting.
  • Confirm that the driver class matches the exact panel revision.
  • Repeat the test from a correctly initialized state rather than after an unknown sleep or reset sequence.

The image is grey, mirrored, shifted or incorrectly colored

Re-check the panel driver and initialization before changing SPI settings. An incorrect driver class is associated in the Waveshare guidance with abnormal display content. Only after the driver is confirmed should you investigate wiring, BUSY handling, SPI clock, reset timing or supply quality using the model’s hardware documentation.

The first image after boot is dirty

Perform the required initial full update. On relevant differential-refresh panels, the library’s previous buffer may not describe what is physically on the glass, so the first differential operation cannot be trusted to establish a clean image.

Partial refresh never behaves consistently

Confirm that the display is not a full-refresh-only model, and check whether the supplied waveform supports the requested mode. Color panels often have different refresh constraints. If the mode is unsupported, use full refreshes and redesign the UI around the available latency.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Test a refresh policy instead of judging one frame

Ghosting is cumulative, so a single successful update is not a meaningful test. Use a repeatable sequence on the actual hardware:

  1. Cold-boot the module and record the result of the required initial full refresh.
  2. Display a high-contrast screen containing small text, large text, fine lines and filled areas.
  3. Change only a small region repeatedly using the documented partial or differential operation.
  4. At the panel’s specified interval, run a standard full refresh and inspect the old region, edges and large characters.
  5. Repeat the sequence with fast full enabled, then with the standard waveform, if the driver offers both.
  6. Record elapsed time separately for image transfer, BUSY wait and the visible waveform.

GxEPD2 documentation cautions that differential refresh involves trade-offs that can show up as ghosting or poor rendering of large fonts. Include the typography and transitions your product actually uses rather than testing only a blank rectangle.

How to choose a policy for common applications

Application pattern Preferred approach Reasoning
Infrequent dashboard changes Standard full refresh for each major screen change Clean output matters more than saving a few seconds.
Clock or counter updated often Documented partial updates for the changing field, with scheduled full refreshes Reduces flicker while bounding accumulated ghosting.
Large screen-wide image changes Fast full only if the panel documents it; otherwise standard full Whole-screen content may exceed the safe use of a partial waveform.
Color display Follow that model’s color and waveform instructions, often favoring full refresh Color particles and waveforms impose different constraints.
Battery device waking periodically Perform the required wake initialization and full baseline, then use only supported partial operations Sleep and power loss can invalidate the prior-image state.

Do not judge performance outside the supplied controller and waveform

The 2.13-inch V4 specification states that its listed electrical and optical characteristics are guaranteed only with the provided controller and waveform. A custom controller, altered waveform or different library mode can therefore change contrast, timing and ghosting. When comparing products or diagnosing a replacement panel, use the maker’s specified controller and waveform first; otherwise you are measuring a different system.

This qualification also explains why two modules with similar dimensions or the same controller IC can produce different results. The panel glass, revision, waveform tables and initialization sequence are part of the display system.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Checklist before shipping firmware

  • Exact panel part number and revision are recorded.
  • The selected library driver is explicitly listed for that panel.
  • Startup and wake paths perform the required full initialization.
  • Partial or differential refresh is enabled only when documented for the model.
  • A counter or equivalent policy schedules full refreshes at the maker’s interval.
  • Standard full refresh is available as a recovery path when fast full leaves traces.
  • Tests include repeated updates, large fonts, fine lines and all supported colors.
  • Measured timings are labeled as hardware- and software-specific rather than universal ESP32 figures.
  • Abnormal output is diagnosed through driver, initialization and BUSY handling before arbitrary SPI changes.

Bottom line

Reduce ghosting by treating the panel, driver and waveform as one matched system. Start with the exact module’s documented initialization and a clean full update. Use partial or differential refresh only for supported content, count those operations, and insert the model-specific full refreshes the manufacturer requires. If a fast full update leaves an old frame, switch to the panel’s standard full waveform when available. The right cadence is the one specified for your exact panel—not a universal ESP32 setting.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.