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.
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.
+++ 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).
+++ 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”.
— 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:
Proof of working with Adafruit Library
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):
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.
Below some text size capability:
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.
WARNING WARNING WARNING
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.
How much this post worth ? 12 hours of work
Useful links & Credits for Eink display & Arduino