Perl Modules for Raspberry Pi
Version 0.91 - released 25 February 2024

E-Paper and E-Ink Displays

While exploring E-Paper Displays with Perl on Raspberry Pi a few aspects became clear that are worth pointing out here.

E-Paper Displays are Expensive

The displays I tested and support in the HiPi modules are expensive. At £17.00 for the black white 1.54 inch display to £24.00 for the 2.9 inch display, they represent a high cost to add to your project.

It is probably possible to purchase for around 60% of this price if you order direct from China.

The Displays are Easy to Damage

In development testing one of the displays I used the wrong settings as I forgot to change them after switching display types. I now have a 2.13 inch display with a permanent fixed white streak across it. It may have been coincidence that the display failed at the precise moment I ran it with the wrong settings. But I doubt it.

As a test, I set it to refresh once every minute using the correct settings to see if the damage became worse. At 5000 refreshes there was no further deterioration.

The Displays have Limited Applications

The displays have a slow refresh rate. This ranges from 2 seconds for the black / white only displays up to 30 seconds for one of the black / white / yellow displays. The black / white / red displays have refresh times of between 8 and 15 seconds.

Waveshare specify a minimum wait between refreshes for their tri-colour displays of 180 seconds. ( that's a specified wait. You can, of course, refresh more often but I assume that would reduce the lifetime of the display somewhat.

Pimoroni don't appear to give minimum refresh times for the Inky pHAT but reading through the support forum they suggest a reasonable norm for considering an E-Paper display is where the application will do a full refresh perhaps once every 15 minutes.

The full refresh process involves a fair amount of screen flicker throughout the refresh period. This alone makes the displays unsuitable for any application that requires frequent screen updates.

Generally the displays retain the last update state for a long time even when disconnected from the Pi. The Waveshare black / white displays offer a partial update mode that allows you to update without flicker, more regularly and apparently using less power. The trade off is that the display is stable when partial updates are used. Partial updates reduce this time so it is recommended that full refreshes are applied periodically.

The Waveshare partial update capable displays can perform partial updates without flicker in around 0.3 seconds. The manufacturer's demo code includes a partial update that updates a seconds based clock display once with a 0.5 second delay. I have not found any detail on how this rate of refresh would affect the display's lifetime.


If you have an application where screen updates at a rate of around once every 15 minutes at a minumum is acceptable, then the Pimoroni Inky pHAT looks a good choice and comes with an active user-base in the Raspberry Pi community plus real after sales support.

If you can't use a pHAT format or have a particular need for a different size display, the various Waveshare tri colour modules have worked Ok for me so far in testing.

For an application that requires more frequent updates the Waveshare partial update capable displays look interesting. I have no idea how the display would perform using partial updates at a rate of say once every 10 seconds with full refreshes say once an hour. The manufacture's datasheets and demo code suggest this is a use case within specification.