iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
To reduce ghosting on an ESP32 e-paper display, use the driver and waveform for the exact panel, perform the initialization and first full update that panel requires, reserve partial or differential refresh for documented small changes, and schedule standard full refreshes at the interval specified by the panel maker. There is no universal refresh count or API call: controller revisions, panel size, color technology and library drivers all change the correct procedure.
What ghosting is and why refresh mode matters
Ghosting is a faint remnant of an earlier image that remains after a new frame is drawn. E-paper pixels move by an electrical waveform rather than being continuously illuminated, so a refresh is a controlled sequence of pulses that changes the particles in each capsule. A waveform optimized for speed or low flicker may not drive every pixel through the complete sequence needed to erase the previous state.
Partial and differential refreshes update only a region or use a shorter waveform. They are useful for clocks, counters and other small, frequent changes because they are faster and less disruptive, but residual images can accumulate. A supported full-screen refresh applies the panel’s complete waveform and is intended to remove that accumulated trace. The clearing behavior is panel-specific; a full refresh on one model is not proof that the same call or timing is correct for another.
Waveshare’s 2.13-inch e-Paper V4 specification describes the visible trade-off directly: a standard full refresh flashes several times, a fast refresh flashes once, and a partial refresh does not visibly flicker but can accumulate residual images. Treat those descriptions as characteristics of that model and its supplied waveform, not as a specification for every ESP32 display.
#1 Best Overall
- 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.
Identify the exact panel before changing code
Start with the complete display part number, revision and controller board marking. Two modules can use the same controller IC while requiring different initialization bytes, waveform data, buffer formats or color handling. Select a library driver by the panel model, not by a similar-looking product or controller name.
- Read the model and revision printed on the panel, flex cable, rear label or product documentation.
- Confirm that your library version contains a driver for that exact model and revision.
- Check whether the panel supports partial or differential refresh at all. Some monochrome displays support only full-screen updates, and color panels commonly have more restrictive modes.
- Use the panel maker’s controller and waveform when judging image quality, speed or electrical behavior. The 2.13-inch V4 specification says its listed electrical and optical characteristics are guaranteed only with the supplied controller and waveform.
If the image is mirrored, incorrectly colored, mostly gray or otherwise corrupted, stop tuning SPI speed first. An incorrect driver class can produce those symptoms even when wiring is perfect.
Understand the available refresh modes
| Mode | What changes | Advantages | Ghosting and operating considerations |
|---|---|---|---|
| Standard full refresh | The complete screen is driven with the panel’s normal full waveform. | Best option for removing accumulated afterimages when the panel supports it. | Usually flashes several times and takes longer; use the exact timing and wake sequence documented for the model. |
| Fast full refresh | The whole screen is updated with a shortened waveform. | Less time and typically one visible flash. | May leave a trace that a standard full waveform would remove. Availability and quality differ by panel. |
| Partial or differential refresh | Only a window or changed pixels are driven, often with a reduced sequence. | Fast updates, minimal visible flicker and lower disruption for small changes. | Residual images can accumulate; some panels do not support it, and large fonts or broad changes can look uneven. |
Choose a mode by comparing the supported panel mode, cleanliness of the resulting image, refresh time, tolerance for flicker, update area, color capability, operating temperature and the waveform supplied for that panel. A differential waveform is a compromise, not simply a faster version of a full refresh.
Free tools Windows power users keep installed
One-click scans. No signup required.
Initialize correctly and make the first update a full update
On relevant differential-refresh panels, the GxEPD2 project notes that the first refresh should be a full update because the display can differ from the contents the library assumes are in its previous-image buffer. If the panel was powered down, disconnected or updated by another device, that assumption is especially unsafe.
- Construct the GxEPD2 display object for the exact panel driver.
- Call the initialization method and use the reset, busy and power settings required by that board.
- After initialization or wake, draw a complete-screen frame and send the library’s full-window or full-update sequence.
- Only after that baseline frame is complete, begin documented partial or differential updates.
The exact method names vary by driver. In a GxEPD2-based sketch, a typical mode selection is:
Rank #2
- 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.
display.init();
display.epd2.selectFastFullUpdate(false);
// Draw and send a complete frame using the full-update sequence
The call shown above is from a Waveshare ESP32 guide example. It disables the example’s fast-full mode so the standard full waveform is used; it is not a universal command and may not exist for another driver. Keep the full-frame drawing and page-loop calls recommended by your installed driver.
Use partial refresh only where the panel documents it
After the initial full update, partial refresh is appropriate for small, localized changes such as a single numeric value. It is a poor default for repeatedly replacing a large text block, changing most of the screen or rendering large fonts, because every incomplete transition increases the chance of visible residue.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesKeep an update counter or an equivalent scheduling rule in firmware. Increment it only after a successful fast or partial operation, and reset it after a successful standard full refresh. Do not reset the counter merely because a frame was prepared in RAM; the panel must have received the full waveform.
A model-specific example: Waveshare 2.13-inch V4
The Waveshare 2.13-inch e-Paper V4 specification recommends a full-screen refresh after five consecutive fast or partial operations. That is a recommendation for that cited panel and its specified controller and waveform. It must not be promoted to a universal ESP32 rule. Another revision may specify a different count, prohibit partial updates or require a different wake and sleep sequence.
Do not merge refresh schedules from different examples
Waveshare’s ESP32-S3-ePaper-3.97 demonstration uses its own example cadence. Its timing and cadence cannot be combined with the 2.13-inch V4 five-operation recommendation simply because both products are e-paper modules. Read the refresh section of the exact product documentation and implement that model’s interval.
Rank #3
- 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.
If a full refresh still leaves an earlier image
- Verify the selected driver. Recheck the entire panel part number and revision, then confirm the library class. Matching only the controller IC is insufficient.
- Check whether the “full” operation is actually fast full. Some libraries select a fast-full waveform by default. If the panel provides a standard full waveform, select that mode after initialization. In the cited Waveshare example,
display.epd2.selectFastFullUpdate(false)switches away from fast full. - Confirm the panel supports standard full refresh. A mode absent from the panel’s documentation cannot be created safely by changing a flag.
- Perform the documented complete sequence. Include the panel’s reset, power-up, busy wait, full-window transfer and ending power or sleep commands. A frame sent while the controller is still busy can be incomplete.
- Only then investigate transport problems. Check BUSY polarity and timing, reset wiring, SPI mode and clock, supply voltage, ground continuity and cable length against the board documentation.
A slower multi-flash refresh can remove a trace that remains after a one-flash fast-full update, but only when that standard waveform is supported by the exact panel.
Recommended Free Tools
Measured timing: use it as an example, not a promise
For a particular Waveshare ESP32-S3-ePaper-3.97 example, the 2026 ESP32 guide measured waveform times of 370 ms for partial refresh, 1.70 s for fast full refresh and 2.10 s for standard full refresh. The guide also reports end-to-end example times affected by image transfer and driver power-up. Those figures describe that panel, firmware and test setup; they are not general ESP32 e-paper performance ratings.
| Measurement from the cited example | Reported time | How to interpret it |
|---|---|---|
| Partial waveform | 370 ms | Panel-specific measurement for the ESP32-S3-ePaper-3.97 example. |
| Fast full waveform | 1.70 s | One-flash mode in that example; may leave more residue. |
| Standard full waveform | 2.10 s | Slower multi-flash mode in that example; intended to clean the image more completely. |
When estimating battery life or user-interface responsiveness, measure transfer time, power-up, busy wait and sleep overhead as well as the waveform. A specification that quotes only the waveform duration does not describe the complete ESP32 transaction.
Library and firmware checks
The Waveshare guide says its examples were verified with arduino-esp32 v3.3.10 and GxEPD2 v1.6.9, and it names higher minimum GxEPD2 versions for certain example boards. These are version facts for those examples and can change as board support evolves. Match the guide’s required minimum for your board, then check the current library’s supported-panel list before changing code.
- Remove stale driver files or duplicate libraries that could cause the compiler to select a similarly named class.
- Review the driver notes for buffer depth, color planes and whether a full-screen window is mandatory.
- Ensure the display object uses the correct panel dimensions and rotation; an apparently ghosted edge can actually be an incorrectly sized or positioned window.
- Keep the library’s busy-wait behavior intact. Do not start a second transfer merely because the SPI write completed.
Design a refresh policy for your application
Clock, sensor or status display
Use partial updates for the small changing region if the model documents that mode. Batch related changes into one window where possible, count each completed partial operation and invoke the specified full refresh before residue becomes visible.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Rank #4
- 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
Menus, dashboards and large text
Prefer full refreshes when most of the screen changes or when large glyphs expose uneven particle movement. A fast-full mode may be acceptable for an intermediate interaction state, followed by a standard full update when the screen settles.
Battery-powered devices
Do not choose the shortest waveform solely to save energy. A failed or repeated update can consume more energy than one correct standard full refresh. Follow the panel’s power-up and sleep sequence, and account for the controller’s busy time in your power budget.
Color e-paper
Color panels often use separate color planes and have different refresh limitations. Verify color capability and partial-refresh support explicitly; do not apply a monochrome panel’s counter, window size or waveform to a color model.
Temperature and operating conditions
Refresh behavior is also affected by the operating-temperature range stated for the panel. Waveforms are tuned for that range, so a mode that looks clean on a room-temperature bench may leave more residue outside the documented conditions. Check the panel specification before choosing a partial-refresh cadence for an outdoor or unheated device, and do not treat the 370 ms, 1.70 s or 2.10 s example measurements as valid at every temperature.
Implement a counter without hiding failures
A safe scheduler associates the counter with completed controller operations, not calls made by the application. Record whether the library accepted the frame, wait for BUSY to deassert, and increment the fast or partial count only then. When the model-specific limit is reached, send the documented standard full update and clear the counter only after that operation completes. If power is lost or the controller is reset, discard the old counter and perform the required initialization full update; the physical panel may no longer match the software’s previous-image buffer.
Best Value
- 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.
Diagnostic checklist by symptom
| Symptom | Most useful first checks | Likely corrective action |
|---|---|---|
| Faint previous image after several partial updates | Update count, panel’s partial-refresh limit and whether a full refresh was scheduled. | Run the documented standard full refresh and reset the counter after it completes. |
| Trace remains after a “full” update | Whether the library selected fast full; whether standard full is supported. | Switch to the supported standard waveform, such as the Waveshare example’s fast-full disable call. |
| First frame is already dirty | Whether initialization was followed by a full update and whether the panel was previously used. | Perform the required initial full refresh before any differential update. |
| Screen is mirrored, gray, or wrongly colored | Exact driver class, panel revision, dimensions, rotation and color-plane configuration. | Correct the panel driver and initialization before changing SPI settings. |
| Random corruption or a stuck BUSY state | BUSY polarity, reset timing, power rail, ground, SPI mode and cable connections. | Restore the wiring and timing required by the model’s documentation, then retest with a full frame. |
A practical decision sequence
- Write down the panel’s complete model and revision.
- Find the matching driver in the library’s supported-panel documentation.
- Determine whether partial or differential refresh is supported and whether color or temperature limits apply.
- Implement the prescribed initialization, busy handling and first full update.
- Use partial refresh only for small changes and only at the documented window and waveform.
- Count completed fast or partial operations and apply the maker’s full-refresh interval.
- If residue survives a fast full update, select the supported standard full waveform.
- If the image is still wrong, revisit driver and initialization before investigating SPI or hardware.
What not to assume
- There is no refresh count that applies to every ESP32 e-paper module.
- A controller IC match does not guarantee a driver or waveform match.
- A fast full update is not equivalent to a standard full update.
- A timing measured on one display cannot be used as a performance promise for another.
- Partial refresh support is not implied by the presence of an ESP32 or by a library’s generic API.
The reliable remedy for ghosting is therefore panel-specific: establish the correct driver and waveform, initialize with the required full sequence, limit differential updates to their documented use, and schedule the exact full-refresh interval specified for your display.
Frequently Asked Questions
How often should I run a full refresh?
Use the interval in the exact panel specification. Waveshare’s 2.13-inch V4 document recommends a full-screen refresh after five consecutive fast or partial operations, but that number is not universal.
Why does a fast full refresh still show the old image?
Fast full uses a shortened waveform. If the panel supports standard full refresh, select that mode and run its complete reset, power, BUSY and full-window sequence.
Can I use the same GxEPD2 driver for panels with the same controller IC?
No. Panel revisions can require different initialization, waveform data, dimensions or color encoding even when the controller IC is identical.
Does every ESP32 e-paper display support partial refresh?
No. Some models support only full-screen updates, and color panels often have stricter limits. Confirm support in the model’s documentation and driver notes.
Are the 370 ms, 1.70 second and 2.10 second timings typical?
They are measurements from a specific Waveshare ESP32-S3-ePaper-3.97 example: partial, fast full and standard full respectively. Transfer, power-up, BUSY time, firmware and temperature can change end-to-end results.
What should happen after a reboot or wake from deep sleep?
Follow the panel’s initialization sequence and perform the required first full update before issuing partial or differential updates, because the physical image may not match the library’s previous buffer.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
The Bottom Line
Ghosting is controlled by matching the exact panel driver and waveform, starting with the required full update, limiting partial refresh to documented use, and scheduling the maker’s model-specific full-refresh interval. When a trace survives a fast update, verify that standard full refresh is supported and actually selected before troubleshooting SPI or wiring.
Quick Recap
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.

