EPDs have unique characteristics that set them apart from other types of displays, as well as a particular operating mode that can be complex. One of the most challenging aspects is the refresh process, a topic that often raises questions when studying these displays.
In the second part of this tutorial, we explored the anatomy of an EPD and the role of driver boards. In this third part, we’ll dive into how images are formed on the display, explain what waveforms and LUTs are, and review the different types of refresh.
WaveformsOn an OLED display, turning a pixel on or off is simple. In contrast, with an EPD, controlling each pixel is much more complex, since it requires precise handling of the movement of pigments inside the microcapsules.
In EPDs, it’s not enough to just apply a fixed voltage to display a white or black pixel. You need to use sequences of electrical pulses called waveforms, which vary in voltage, polarity, and duration.
Waveforms are applied even when the pixel’s color doesn’t change, since they help maintain image quality and prevent ghosting—a shadow or residue effect from previous images, caused by immobile pigments or accumulated electric charge.
The image below shows a simple waveform with the voltages applied to the pixel relative to the common electrode.
It consists of three stages: erase, which brings the pixel to a known state; activation, which alternates pulses to remove accumulated charges and move the pigments; and write, which sets the final color.
The visible color changes during these stages cause the characteristic flickering of EPD screens.
Waveforms are generated automatically by the display’s driver chip, based on “recipes” stored as tables in its internal memory called LUTs (Look Up Tables). These tables specify which voltage sequences to apply to the electrodes depending on the color of each pixel.
The number and complexity of the LUTs depends on the driver and the colors supported: simpler drivers use just a few tables, while multicolor ones can have many more. For example, the SSD1680 driver has 5 LUTs, each with multiple steps that can be configured for duration and repetition.
The different parameters that define the waveforms are usually set by the manufacturer after a process of tuning and testing. These values are stored in OTP (One Time Programmable) memory during production to ensure the best image quality for each batch of panels. When the display powers up, the driver loads this data from the OTP into the internal LUTs, so it uses the “official recipes” to manage the pixels.
It’s also possible to replace the original LUTs with custom LUTs, created by the user to modify certain aspects of the panel’s behavior—for example, to increase speed.
Continuing with the basic concepts before diving into the refresh process, in this section we’ll see how an image is built on the panel of an EPD.
The driver updates the image on the panel using an internal memory called the image buffer, which stores the state of each pixel. This buffer is a RAM organized as a matrix of bits, with a direct correspondence between each bit and a pixel on the panel.
In the simplest case, the value of the bit defines the color (for example, 0 for black and 1 for white). The way the buffer bits are assigned to the physical positions on the screen depends on the driver, and can vary or be modified through its internal registers
On EPDs with more than two colors, each pixel requires more than one bit of memory to define its color. In three-color models, it’s common for the driver to use two image buffers: one for black and white, and another for the additional color.
For example, the SSD1680 driver handles three colors using two separate 176 × 296 bit memories: one for black/white and another for the extra color. It combines both buffers and the corresponding LUTs to determine the final color of each pixel.
The following image shows the result you would get on the screen using the example values stored in each of the image buffers.
The following block diagram shows, in a simplified way, the relationship between the different components we have discussed in the previous paragraphs:
- The LUT can be loaded with values from OTP memory or with user-supplied values (custom LUTs).
- Based on the information stored in the image buffer, the corresponding LUT is selected to control the generation of the waveform.
- Waveform control applies the correct voltages and pulses for each pixel color by acting on the TFT matrix through the Gate, Source, and VCOM drivers.
- In the TFT matrix, the pigments are moved to display the selected colors.
Now, with all these concepts in mind, let’s dive into how EPD refreshing works and the different ways it can be performed.
Refreshing an EPDThe refresh is the process by which the driver chip updates the image on the screen using the information stored in its image buffer.
As we’ve seen, it’s not a trivial process: it requires selecting the right LUT for each pixel, generating the correct waveform to move the pigments, and controlling the panel’s TFT matrix. All these operations take time, and depending on the procedure used, there are three types of refresh.
Full RefreshIn a full refresh, the entire screen is updated, changing the value of every pixel. Generally, the “official” waveforms provided by the manufacturer are used for this process, and these are usually stored in OTP memory.
These waveforms perform what’s called a compensation cycle, which means moving all the pigments inside the microcapsules. This can be done in various ways depending on the driver. Sometimes, it consists of driving all the pixels to white, then all to black several times before finally displaying the new image, or it may include inverting the image during intermediate steps.
The following image illustrates these two alternatives for going from image “A” to image “B”.
This process ensures good image quality and prevents ghosting, but it also makes the refresh take much longer and causes a flickering effect that can be annoying.
The time required for a full refresh depends on the driver and the number of colors, but it’s usually measured in seconds.
Fast RefreshFast refresh updates all the image pixels as well, but uses a quicker procedure with modified waveforms that skip some steps of the compensation cycle, making it shorter or skipping it altogether.
To help with this process, drivers usually have two image buffers instead of just one: one holds the information for the image currently displayed on the panel, and the other holds the new image to be shown. By comparing the two buffers, the driver can determine which pixels change and act only on those. Pixels that don’t change are left untouched or receive minimal processing.
This allows the entire screen to be refreshed much faster, but there are trade-offs: ghosting may appear, and the panel’s lifespan can be reduced if this mode is used for long periods.
The required time also varies a lot, but is usually measured in tenths of a second.
In many applications, it’s not necessary to update the entire screen, but only a small section. This is achieved using partial refresh.
The technique consists of defining a window within the visible area and refreshing only that region, leaving the rest of the screen unchanged. Usually, this window is updated with a fast refresh to make the process even quicker.
However, not all displays support partial refresh, since this depends on the capabilities of the driver chip and the electrophoretic panel.
As we’ve seen, ghosting mainly occurs with fast refresh modes because the compensation process isn’t fully completed: in areas where the color hasn’t changed for a long time, the pigments can end up “halfway, ” leaving visible traces of the previous image.
To reduce this effect, it’s recommended to perform a full refresh every certain number of fast or partial refreshes (the frequency depends on the screen model—typically every 10 or 20 refreshes). This helps “clean” the panel completely and restore image quality.
As with many other electronic components, temperature affects how an EPD works:
- At low temperatures, the viscosity of the fluid where the pigments are suspended increases, which directly impacts the refresh speed. The slower movement can cause ghosting, since some pigments may not reach their final position.
- At high temperatures, the pigments move faster, but their movement can also become less precise.
In general, EPDs operate within a temperature range of 0 to 50 degrees Celsius. Some displays have an extended range, allowing them to work from around -20 to 60 degrees.
For outdoor applications, it’s crucial to measure the ambient temperature and adjust the EPD’s refresh to avoid display errors. To help with this, some screens include temperature sensors, and the manufacturer stores different sets of LUTs in OTP memory, each adapted to a specific thermal range. During operation, the appropriate LUTs are selected based on the panel temperature to compensate for changes in pigment mobility.
Technical SpecificationsThe datasheet for an EPD includes a lot of technical specifications, but not all of them are equally relevant.
Below, we’ll review the most important features you should consider when choosing an EPD for your project.
In the next part of this tutorial, we will see how to program EPDs






Comments