Encouraging The Office Quotes on an E Ink Display

E Ink display with ESP32

I got an E Ink Display sometime last year and connected it to a Raspberry Pi Zero to use it as a low-power device to show the weather information for the day, perhaps some other stuff like calendar appointments. The list goes on.

There are a few projects out there to get started with this whole thing.

I even got the PiSugar to connect the Pi Zero with a battery. I managed to keep the Pi Zero powered with the battery for about 30 days on a schedule to turn it on once a day, fetch the information and update the display. After recharging it once, interest faded at some point and the thing ended up in a closet.

The initial plan was to power the E Ink display with an ESP32 Driver board for months or even years at a time without ever recharging. Since the ESP32 controllers can go in a deep-sleep mode and use basically no power at all. All this Arduino and ESP32 stuff failed on me since I couldn’t get the right C code working, that’s why I went for the whole Raspberry Pi route to get something running.

At some point during the holidays I finally got the stuff back out wanting to try all this again. Started the Arduino IDE and tried to gather all the C code I need to update the E Ink display with some basic information from a remote API.

Shouldn’t be too hard, right? Connect to Wi-Fi, fetch some JSON, place it in the right spot, update the display, and go back to sleep for a day.

Since weather information is boring, always wrong anyway, and there are way better methods out there to get a report, I decided to display a random quote from The Office to help me get through the day.

News flash: You are not special. — Stanley Hudson

Display and ESP32 Board

For beginners like myself, I just got the E-Ink display and ESP32 driver board with the correct interfaces out of the box, so there’s no need to solder anything or do some other fancy stuff. This board can directly connect to the display and has USB for power and data. Below is what I got and used for this project, but there are tons of different brands and versions out there:


I gathered everything in this GitHub Repository, the only thing required here is to install the Arduino IDE, update the Wi-Fi credentials and perhaps change the display library to another one if you’ve got different hardware.

I’m using the GxEPD2 Display Library which covers a lot of different e-Paper/E-Ink displays and has the model numbers listed (Good Display and Waveshare models seem to be the same). The code on my GitHub repo is set up to the use 800x480 7.5" display I linked above.

tl;dr version:

  1. clone the GitHub repository
  2. add it to your Arduino IDE
  3. update the Wi-Fi credentials
  4. (update the display configuration if you’re using another one)
  5. upload it to your ESP32 through the Arduino IDE

Case and Battery

This is the frame / case I got from thingiverse to store everything and put it on the wall. You can then get yourself a battery holder with some jumper wires or solder this stuff on, or use the USB plug. There’s a nice calculator available as well to figure out how long the system might be lasting.

Everything should fit into the case, so it’ll look like a picture frame on the wall.

In my case the display and board require about ~500 mW when it’s updating and ~80–100 mW in deep sleep. So if it’s updated once a day with a 2500 mAh battery connected, it should last about 1.5 years, which is fine, I guess.

More Things to Do

Since there’s still a lot of space left on the display, there are a few things one could add, perhaps the date, a reminder, whatever. For me this was mostly to finally learn at least a bit about how to do all this with the Arduino IDE, writing C and uploading this to a super low powered device.

More Resources