Eink Paper Display for Arduino

How to use and choose an Eink paper display for Arduino family boards.


Eink paper display: what is this?

EPD (Electronic Paper Display) is a bunch of microsphere filled with two, or more, pigments elettrostaically charged.

When you change polary of voltage applied to the display the pigments change position and therefore a pixel has been created.

Eink paper display for Arduino - eink two color technology
Eink display two color technology

This is from producer Eink: “The two pigment electronic ink system is made up of millions of tiny microcapsules, each about the diameter of a human hair. Each microcapsule contains negatively charged white particles and positively charged black particles suspended in a clear fluid. When a positive or negative electric field is applied, corresponding particles move to the top of the microcapsule where they become visible to the viewer. This makes the surface appear white or black at that spot“.

Why is called paper display?

Because this kind of display has been massively used on e-paper reader like Kindle and Kobo. This e-reader is mainly used to read e-book in a black and white display like an old fashioned paper book.

Limitations and special property of Eink technology

In the past was able to display two color only: black and white. Now in the market is coming a multi color EPD display.

Eink paper display for Arduino - eink multicolor technology
Eink multicolor display technology

+++ Low energy consumption

No power needed to hold an image. No backlight needed (it is sunlight visible). Wide view angle (near 170° like OLED displays).

Eink paper display for Arduino - EPD power consumption
EPD power consumption comparison
Eink paper display for Arduino - Power Consumption
Eink paper display Power Consumption

+++ Static image duration

“E Ink’s technology is commonly referred to as “bistable”. Bistablility refers to the fact that an image on an E Ink screen will be retained even when all power sources are removed. This means that the display is consuming power only when something is changing”.

+++ Flexyble

— High display refresh time

In the FAQ of Eink producer has been stated a 120 ms refresh rate. Adafruit EPD display have, at least, 180 seconds recommended refresh rate. WaveShare state 0,3 seconds for partial refresh. An e-paper display will use around 2 seconds each time it updates entirely its contents.

This new poducer claim a 30 Frame per Second refresh rate for full RGB colors display: ClearInk

Library for Arduino

From hardware point of view EPD display, like Eink producer, needs up to 15 Volt power supply. A special driver must be used to drive electrostatic charge that change the pixels status (Bi-stable). For Arduino application purposes we need an all in one, ready to use solution.

SPI port is mainly used to up-date the display image.

This are links to some library ready to use with an Arduino board:

WaveShare products

– Adafruit products

– ZinggJM

– Adafruit LEARN

– Open source e-paper

Eink paper display for Arduino - wiring

Proof of working with Adafruit Library

Arduino UNO

I’m using the EPDTest file included into the example folder provided with the Adafruit Arduino Library. As a quick reference you can find Arduino UNO pinout diagram below:


This are the pins for setting data exchange (CONNECT the D12 pin to the display otherwise could not be work properly):

Eink paper display for Arduino - EPD Adafruit 2_7 inch tricolor - pin connections 01

You must uncomment some code line related to the display size and type are you programming. In my case I’m going to use a 2,7 inch tri-color display.

Eink paper display for Arduino - EPD Adafruit 2_7 inch tricolor - display size selection


Below some text size capability:

Eink paper display for Arduino - EPD 2_7 inch tri color text.png

Velocity for refreshing are:

How much Arduino UNO resources I need ?

The sketch use 12186 byte (37%) of total avalaible program space. Maximum is 32256 byte.
Globals variable uses 990 byte (48%) of the dinamic memory.


Please set the e-Paper to sleep mode or power off it directly, otherwise, the e-Paper is damaged because of working in high voltage for long time.

You need to update the content of three-color e-Paper at least one time every 24h to avoid from burn-in problem.

Partial refresh: It don’t flicker if you use partial refresh (only some of the two-color e-paper support partial refresh). Note that you cannot use Partial refresh all the time, you should full refresh e-paper regularly, otherwise, ghost problem will get worse even damage.

What maker market offer ?

You can buy from 1’44 to 10’2 inch, in monochrome (Black and White) to 3 chrome (B+W+Yellow or Red). Some size of flexible are avalaible too.

Eink paper display for Arduino - sizes

How much this post worth ? 12 hours of work

Useful links & Credits for Eink display & Arduino

Eink company

Eink Blog

New technology fast rate refresh and full color EPD display

VIDEO Tutorial 7.5 inch

11 Myths about paper displays


Produttore Europeo

Eink display IL0373-UC8151 driver controller

EPD display Driving Application Note

PiMoroni shop

WaveShare 1.54inch_e-paper_module_user_manual_en

How to make a font

Arduino blog

15 Projects


Autore dell'articolo: Lucio Sciamanna