DIY e-paper Display with Raspberry Pi Zero & Waveshare e-Paper HAT

Recently, I found a relatively cheap e-paper display browsing a Raspberry Pi shop. Texts or images are permanently displayed by colored pigments, without the need for a maintenance voltage. You may know this from e-book readers. Since I happened to have a Raspberry Pi Zero left, I quickly tried a DIY e-paper project.

List of used hardware

Alternatively, you can also take the € 5 cheaper Raspberry Pi zero W and solder on a header yourself.
The display can easily be plugged directly into the GPIO pin of the Pi Zero.

A waveshare 2.7 inch e-Paper HAT, mounted on a Raspberry Pi 3

 

Software

On waveshare’s website there is a sporadic manual and a GitHub link. The code examples on GitHub seem to be more up-to-date than those linked on the manufacturer’s site. Also, this DIY blog article helped me a lot.

Let’s start with a few “apt-gets”:
sudo apt-get update
sudo apt-get install python3-pip python3-pil python3-numpy
sudo pip3 install RPi.GPIO

Next, we download the display drivers and libraries from the manufacturer. There is no universal driver, each display has an associated driver.
First, we simply copy the complete GitHub repo:
git clone https://github.com/waveshare/e-Paper

This should have created a new directory that contains the complete folder structure of the GitHub repo. We change to the directory containing the Raspberry Pi Python3 examples:
cd e-Paper/Raspberry Pi/python3/examples

and execute the matching python script for the display:
python3 epd_2in7_test.py

Now the demo code should run and render pictures and texts on the display! Cool!
You notice that the refresh cycle takes a while. But for a “clock” which refreshes every minute, it is enough.

As an an example

here’s my “clock” script on GitHub.

It is a “work-in-progress”, currently these functions are implemented:

  • Show date and time (wow)
  • Show the temperature of the Raspberry Pis
  • Read my ThingSpeak-channel (shows temperature and humidity)
  • read my Google Calendar (displays birthdays of friends / family)
  • Show the track ID (artist & song name) of the current song on my Volumio multiroom audio player