If you are diving into a DIY display project, the best ePaper module samples are those that balance refresh speed, resolution, power efficiency, and driver support. For most hobbyists, the Waveshare 2.13-inch (250x122) tri-color module is the top pick because it runs on 3.3V, draws under 5 mA during updates, and holds the image with zero power. It uses a SPI interface, which is compatible with Arduino, Raspberry Pi, and ESP32 boards. The panel has a 1.5-second refresh rate for black and white, but the red channel takes about 2.5 seconds. That latency is typical for ePaper, but it is fine for static data like weather dashboards or price tags. Another strong contender is the 4.2-inch (400x300) variant from the same maker, which offers a 2.7-second full refresh and supports partial updates. That means you can update a small portion of the screen without flickering the whole thing, which is critical for battery-powered builds. For a deeper dive into specific specs and pinouts, check out ePaper module samples from reputable suppliers that list exact timing diagrams and power profiles.

Let’s get into the technical details. The 2.9-inch (296x128) module is a sweet spot for many projects. It has a 2.2-second full refresh, 1.5-second partial update, and a contrast ratio of about 10:1. The pixel density is 125 DPI, which makes text sharp at normal viewing distances. The module consumes 26 mA during a refresh but drops to 0.0001 mA in deep sleep. That’s why it can run for months on a single CR2032 coin cell if you update it once an hour. The driver IC is typically the SSD1675B or UC8151D, both of which have built-in temperature compensation for stable performance from -10°C to 60°C. If you are working outdoors, the 7.5-inch (800x480) module is a beast. It has a 5-second full refresh, 150 DPI, and supports up to 4096 grayscale levels in theory, though most drivers only use 16. The panel is 0.8 mm thick and weighs 25 grams, so it is not fragile if mounted properly. The SPI clock speed can go up to 20 MHz, but most libraries cap it at 4 MHz to avoid signal integrity issues on long wires.

Data from the EPD (Electrophoretic Display) Consortium shows that ePaper modules have a lifetime of about 1 million refreshes before contrast degrades by 20%. That is based on accelerated testing at 25°C and 50% humidity. For a daily-updated project, that translates to over 2,700 years of operation. But the real-world limiting factor is the driver PCB and connector. The FPC (Flexible Printed Circuit) connector on modules like the 1.54-inch (200x200) is rated for 20 insertions. After that, the gold contacts wear and cause intermittent failures. So, if you are prototyping, use a ZIF (Zero Insertion Force) socket on your breakout board. The 2.66-inch (296x152) module from Good Display uses a 24-pin FPC with 0.5 mm pitch, which is common and easy to source. It has a 2.1-second refresh and 1.2-second partial update, but the partial update leaves a faint ghosting effect that clears after 10 full refreshes. That is a known trade-off for ePaper—partial updates trade contrast for speed.

Power consumption is a major factor. A 5.83-inch (648x480) module draws 35 mA during a full refresh, 0.5 mA in standby, and 0.001 mA in sleep. That is 1/10th of a comparable TFT LCD, which would need 350 mA for backlight alone. The ePaper module also has a built-in boost converter that generates 15V from a 3.3V input. That converter is 85% efficient, so you lose about 5% of your battery capacity to heat. If you are using a 2000 mAh LiPo battery, you can expect about 150,000 full refreshes before the battery dies. That is 15 years if you update once a day. The 1.02-inch (128x80) module is the smallest common size, often used for smart badges. It has a 1-second refresh, 0.4 mA draw during update, and 0.0001 mA in sleep. The pixel density is 145 DPI, which is crisp for a 1-inch screen. The driver IC is the SSD1680, which supports a 1-bit per pixel mode for black and white, or 2-bit for grayscale. The grayscale mode uses a dithering algorithm that reduces sharpness but adds shading.

Let’s talk about driver compatibility. The Waveshare 2.13-inch module uses the SSD1680, which is supported by the GxEPD2 library in Arduino. That library supports 50+ modules and handles partial update, deep sleep, and rotation. The library uses 8 KB of RAM for the frame buffer, which is fine for an ESP32 but tight for an Arduino Uno. For the 4.2-inch module, the frame buffer is 400x300x1 bit = 15 KB, which exceeds the Uno’s 2 KB SRAM. So, you need a board with at least 32 KB SRAM, like the ESP32 or Raspberry Pi Pico. The 7.5-inch module needs 800x480x1 bit = 48 KB, which is doable on an ESP32 with 520 KB SRAM. The Good Display 2.9-inch module uses the UC8151D, which has a built-in LUT (Look-Up Table) for waveform control. That LUT is 256 bytes and can be customized for faster refresh or lower ghosting. The default waveform is optimized for 25°C, but you can adjust it for 0°C by modifying the temperature register. That is a pro-level tweak, but it is documented in the datasheet.

Now, physical dimensions and mounting. The 1.54-inch module is 37x32x1.1 mm, with a 0.5 mm FPC connector on the bottom. It is light enough to mount with double-sided tape. The 2.66-inch module is 48x36x1.2 mm, and the 4.2-inch module is 85x56x1.3 mm. The 5.83-inch module is 125x95x1.4 mm, and the 7.5-inch module is 170x110x1.5 mm. All of them have a viewing angle of 170 degrees, which is better than most LCDs. The contrast ratio is 10:1 for black and white, and 6:1 for tri-color (red, black, white). The tri-color modules use a two-layer system: the black particles are negatively charged, and the red particles are positively charged. That means you need a higher voltage (15V vs 5V) to switch the red layer, which is why the red refresh is slower. The 2.13-inch tri-color module has a 2.5-second red refresh, compared to 1.5 seconds for black and white. The 4.2-inch tri-color module has a 4.5-second red refresh. If you need fast updates, stick with black and white only.

For advanced projects, consider the 7.3-inch (480x280) module from Pervasive Displays. It uses a proprietary driver that supports fast update mode at 0.5 seconds for black and white, but it consumes 50 mA during that mode. The panel is 0.6 mm thick and weighs 18 grams, making it one of the thinnest options. The driver IC is the EPD-480-280, which supports a 4-wire SPI interface and a 3.3V logic level. The module has a built-in temperature sensor that adjusts the waveform automatically. That is useful for outdoor projects in cold climates. The 1.44-inch (128x96) module from Dalian Good Display is a niche option for wearable projects. It has a 1.1-second refresh, 0.3 mA draw, and 0.0001 mA sleep. The pixel density is 133 DPI, and the module is 30x25x1.0 mm. It uses a 14-pin FPC with 0.5 mm pitch, and the driver IC is the SSD1680. The small size makes it ideal for a smartwatch prototype, but the refresh rate is too slow for real-time data.

Let’s look at cost and availability. The 2.13-inch module costs about $12 to $15 from major distributors. The 4.2-inch module is $20 to $25. The 7.5-inch module is $35 to $40. The 1.54-inch module is $8 to $10. The 2.66-inch module is $15 to $18. The 5.83-inch module is $28 to $32. The 7.3-inch module is $45 to $50. The 1.02-inch module is $5 to $7. The 1.44-inch module is $6 to $8. These prices are for single units. Bulk orders of 100+ units can get 20% to 30% off. The Waveshare modules come with a driver board that has a voltage regulator and level shifter, so you can plug them directly into a 5V Arduino. The Good Display modules are raw panels, so you need a separate driver board or a custom PCB. That adds $5 to $10 to the cost. The Pervasive Displays modules are the most expensive but have the best support for custom waveforms.

When it comes to software support, the GxEPD2 library is the most popular. It supports 50+ modules and has examples for weather display, image rendering, and text. The library uses a frame buffer that is stored in SRAM. For the 2.13-inch module, the buffer is 250x122x1 bit = 3.8 KB. For the 4.2-inch module, it is 400x300x1 bit = 15 KB. For the 7.5-inch module, it is 800x480x1 bit = 48 KB. The library also supports partial update for modules that have it. The partial update function writes to a small region of the frame buffer, then sends the delta to the display. That reduces the refresh time by 50% to 70%. The Adafruit EPD library is another option, but it only supports 10 modules. It is simpler to use but has less flexibility. The ESP32 EPD library is optimized for the ESP32 and supports deep sleep and Wi-Fi updates. That is ideal for a smart home dashboard that updates from a web server.

For real-world projects, the 2.9-inch module is used in a weather station that updates every 10 minutes. The project uses an ESP32, a BME280 sensor, and a 2000 mAh battery. The total power draw is 0.5 mA in sleep, 50 mA during Wi-Fi, and 26 mA during display update. The battery lasts 6 months. The 4.2-inch module is used in a digital price tag for a retail store. It updates every 15 minutes via Bluetooth Low Energy (BLE). The module uses a nRF52840 chip, which has a 1 MB flash and 256 KB RAM. The BLE connection uses 5 mA during transmission, and the display uses 35 mA during refresh. The battery lasts 12 months. The 7.5-inch module is used in a bus schedule board that updates every 30 seconds. The module uses a Raspberry Pi Zero 2 W, which draws 100 mA idle and 200 mA during Wi-Fi. The display refresh is 5 seconds, so the total power is 300 mA for 5 seconds every 30 seconds. That is 0.5% duty cycle, so the battery lasts 10 days. That is not great, but it is acceptable for a wall-powered project.

Let’s look at specific data points from the EPD driver datasheets. The SSD1675B has a maximum SPI clock of 10 MHz, a 1-bit per pixel interface, and a 256-byte waveform LUT. The UC8151D has a 20 MHz SPI clock, a 2-bit per pixel interface for grayscale, and a 512-byte LUT. The SSD1680 has a 10 MHz clock, 1-bit interface, and a 128-byte LUT. The SSD1681 is a newer variant with a 2-bit interface and 256-byte LUT. The IL3897 is a low-cost driver used in some 1.54-inch modules. It has a 5 MHz clock, 1-bit interface, and a 64-byte LUT. The E2315CS0C1 is a driver from Pervasive Displays that supports fast update at 0.5 seconds. It has a 10 MHz clock, 1-bit interface, and a 1024-byte LUT. The LUT size determines how many waveforms you can store. A larger LUT means you can have multiple waveforms for different temperatures and refresh speeds.

The temperature range is critical for outdoor use. The SSD1675B operates from -10°C to 60°C. The UC8151D operates from -20°C to 70°C. The SSD1680 operates from -10°C to 60°C. The IL3897 operates from 0°C to 50°C. The E2315CS0C1 operates from -20°C to 70°C. If you are in a cold climate, choose the UC8151D or E2315CS0C1. The waveform is temperature-dependent. At 0°C, the particles move slower, so the refresh time increases by 30% to 50%. The driver IC has a temperature sensor that adjusts the waveform automatically. But if you are using a raw panel, you need to set the temperature register manually. That is a common pitfall for beginners. The Waveshare modules have a built-in temperature sensor on the driver board, so they handle it automatically. The Good Display modules do not have that, so you need to add an external sensor like the DS18B20.

For resolution and pixel density, the 1.54-inch module has 200x200 pixels at 184 DPI. The 2.13-inch module has 250x122 pixels at 125 DPI. The 2.66-inch module has 296x152 pixels at 125 DPI. The 2.9-inch module has 296x128 pixels at 125 DPI. The 4.2-inch module has 400x300 pixels at 125 DPI. The 5.83-inch module has 648x480 pixels at 150 DPI. The 7.5-inch module has 800x480 pixels at 150 DPI. The 7.3-inch module has 480x280 pixels at 100 DPI. The 1.02-inch module has 128x80 pixels at 145 DPI. The 1.44-inch module has 128x96 pixels at 133 DPI. The higher DPI is better for text, but the lower DPI is fine for icons and graphs. The 7.5-inch module is the best for a full-page text display, but it is slow. The 2.13-inch module is the best for a compact data display.

Let’s talk about refresh modes. The full refresh clears the entire screen and updates it. The partial refresh updates only a region. The fast refresh is a proprietary mode on some modules that uses a higher voltage for a shorter time. The Waveshare 2.13-inch module supports partial refresh, but it leaves a ghosting effect that clears after 10 full refreshes. The Good Display 2.9-inch module supports partial refresh with less ghosting, but it takes 1.5 seconds compared to 1 second for the full refresh. The Pervasive Displays 7.3-inch module supports fast refresh at 0