E-Ink Displays Explained: How They Work, When to Use Them, and an Arduino Example

E-ink, also called e-paper, is a reflective display designed to show information clearly without continuously powering a backlight or pixels. It is popular in e-readers, shelf labels, and battery-powered instruments because an image can remain visible after the display has been updated.

That makes e-ink a strong choice for mostly static information, but a poor choice for video, animation, or interfaces that must react instantly. The right question is not “Is e-ink low power?” but “How often will this screen change, and how quickly must it respond?”

How E-Ink Works

Most small e-paper panels use electrophoretic ink: tiny capsules contain charged black and white pigment particles. Electrical fields move the particles toward the viewing surface to form dark or light pixels. Color panels use additional pigment layers or color filters, depending on the technology.

The panel reflects ambient light, much like paper. It does not need a backlight to remain readable, and its image is bistable: after an update, the panel can continue showing that image without continuously refreshing it. A front light may be added for reading in the dark, but that light uses power while turned on.

  • Very low static display power: the panel does not need continuous power just to hold an image.
  • Readable in bright light: it reflects light instead of competing with sunlight using a backlight.
  • Comfortable for text: the paper-like appearance works well for long-form reading and simple labels.
  • Battery-friendly for occasional updates: status can be refreshed periodically while the rest of the device sleeps.

The panel is only part of the power budget. A microcontroller, regulator, sensors, and display controller can still consume power, so a battery product needs to sleep between updates.

When to Use It

Use e-ink when information changes occasionally and should remain visible between updates:

  • E-readers, electronic shelf labels, and reusable price tags
  • Room signs, meeting-room schedules, and equipment labels
  • Battery-powered weather stations, sensor readouts, and utility meters
  • Shipping labels, asset tags, and status indicators
  • Dashboards that update every few minutes rather than continuously

Avoid it for video, games, smooth scrolling, rapidly changing graphs, or controls that need immediate visual feedback. Refreshes take noticeably longer than LCD or OLED updates, and some panels briefly flash during a full refresh.

E-Ink vs. Other Displays

Display typeHow it shows an imageStatic-image powerRefresh and motionBest fit
E-ink / e-paperReflects ambient light; bistable imageVery low at the panel while holding an imageSlow; full refresh may flashText, labels, infrequently updated data
LCD / TFT LCDModulates a backlightBacklight and panel stay poweredFast; good for motionGeneral-purpose color interfaces
OLEDPixels emit their own lightPixels use power while litFast; good contrast and motionCompact, colorful interfaces and wearables
Memory LCDReflective LCD with pixel memoryVery low for mostly static imagesFaster updates than typical e-paper, usually monochromeWatches and always-on instruments

Exact power depends on panel size, brightness or lighting, controller, update frequency, and board design. E-ink is not automatically the lowest-power system: frequent refreshes or a development board that never sleeps can erase much of its advantage.

Interface and Module Basics

Many Arduino-compatible e-paper modules use SPI. A typical module exposes:

  • SCK and DIN/MOSI for serial data
  • CS to select the display
  • DC to distinguish commands from image data
  • RST to reset the display controller
  • BUSY so the microcontroller can wait for an update to finish

SPI sends image data and commands to a controller on the display module; the controller drives the panel’s specialized waveforms. The panel itself is not usually connected directly to Arduino GPIO pins. Some modules use other interfaces, so check the module’s datasheet before wiring it. Many bare modules require 3.3 V supply and logic: do not connect their data pins directly to a 5 V Arduino Uno. Use a level shifter, or verify that the specific breakout board includes one. Some Waveshare driver boards do include level conversion, but do not assume every module does.

Arduino Example: Update a 2.9-Inch Black-and-White Panel

This example uses a Waveshare-compatible 2.9-inch black-and-white panel with the GxEPD2 library. Install GxEPD2 and its Adafruit GFX Library dependency in the Arduino IDE Library Manager. The exact GxEPD2 driver class depends on the panel revision and controller; GxEPD2_290_T94_V2 below is for a compatible 2.9-inch V2 panel. Check your module’s documentation and the library’s supported-display list before compiling.

Typical wiring for an Arduino Uno:

Display pinArduino Uno
DIN / MOSID11
CLK / SCKD13
CSD10
DCD8
RSTD9
BUSYD7
GNDGND
VCCAs specified by the module
#include <GxEPD2_BW.h>

// Replace this driver with the one that matches your panel revision.
GxEPD2_BW<GxEPD2_290_T94_V2, GxEPD2_290_T94_V2::HEIGHT> display(
  GxEPD2_290_T94_V2(/*CS=*/ 10, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)
);

void setup() {
  display.init();
  display.setRotation(0);
  display.setFullWindow();
  display.firstPage();

  do {
    display.fillScreen(GxEPD_WHITE);
    display.setTextColor(GxEPD_BLACK);
    display.setTextSize(2);
    display.setCursor(8, 24);
    display.println("Workshop");
    display.setTextSize(1);
    display.setCursor(8, 56);
    display.println("Temperature: 22.4 C");
    display.setCursor(8, 76);
    display.println("Humidity: 48%");
    display.setCursor(8, 104);
    display.println("Updated from Arduino");
  } while (display.nextPage());

  display.hibernate();
}

void loop() {
  // The image stays visible; a real project can sleep here and wake to update.
}

The library’s page loop renders the full image in sections, which is useful on microcontrollers with limited RAM. For a battery-powered product, also put the microcontroller into a suitable sleep mode and wake it on a timer or sensor event. Measure the complete device’s current; do not assume the display’s standby behavior describes the whole system.

Practical Trade-Offs

  • Refresh time: full updates can take seconds. Partial updates may be quicker, but can leave ghost images and are not supported equally by every panel.
  • Temperature: refresh behavior and speed can change significantly in cold or hot conditions. Check the operating range and temperature guidance in the datasheet.
  • Color and contrast: monochrome panels are common and crisp; color panels tend to cost more and refresh more slowly.
  • Power: updates consume energy, and the controller or breakout may draw power between updates. Deep-sleep the rest of the system when appropriate.
  • Driver compatibility: panels that look alike may use different controllers or waveforms. Match the software driver to the exact module revision.

E-ink is a useful design choice when the screen behaves more like a printed label than a live monitor. If the content is mostly text or measurements and changes only now and then, the combination of sunlight readability and low static display power is hard to beat. For a broader comparison of panel technologies and embedded display interfaces, see Display Technologies Explained.