Weather, events, and notifications on a Waveshare e-paper display

Disclosure: This post contains affiliate links. If you click through and make a purchase, I’ll earn a commission, at no additional cost to you. Read my full disclosure here.

E-paper panels from Waveshare make the perfect display for any ESPHome project. They don’t consume much power, they’re legible under direct sunlight, and are easy to set up through the given ESPHome component. In recent years these panels have become affordable enough to allow hobbyists to use them in their projects.

Bestseller No. 1
2.9inch e-Paper Display Module, 296x128 Resolution 3.3V/5V...
  • SPI interface, Compatible with Raspberry Pi/Arduino/Nucleo, etc.
Bestseller No. 2
5.65inch E-Ink Display HAT ACeP 7-Color E-Paper Module...
  • SPI interface, for connecting with controller boards like Raspberry Pi/Jetson Nano/Arduino/STM32, etc.
Bestseller No. 3
waveshare 2.13inch E-Ink Display HAT for Raspberry Pi...
  • This is an E-Ink display HAT for Raspberry Pi, 2.13inch, 212x104 resolution, with embedded controller, communicating via SPI interface, supports red, black, and white three-color display.

That is exactly what the creator of today’s featured project did: They built a weather, events, and notifications station using an ESP32 and the largest Waveshare e-paper display available. With its 7.5-inch diagonal, it is larger than just about any smartphone and Kindle out there and even competes with the iPad mini (7.9‑inch).

The notification display using a Waveshare e-paper display and powered by ESPHome
The finished project (source: /u/gumpy5)

owenb321/eink_ambient_display

View this featured ESPHome project in Ben Owen’s repository on GitHub.

Hardware needed for the notification display

This project requires the use of an ESP32. Though generally cheaper, the ESP8266 just isn’t powerful enough to drive the second version of this large e-paper display which has a resolution of 800*480. Additionally, the creator makes use of a wakeup pin. To keep the whole thing looking clean and minimalistic, it uses a battery instead of being connected to the mains or a USB device at all time.

The insides of a notification display using a Waveshare e-paper display and powered by ESPHome
The insides (source: /u/gumpy5)

The battery used is a 2500 mAh lithium-ion polymer battery from Adafruit which can only be charged easily if you have the right ESP32 board. Luckily though, Adafruit produces exactly such a board which will make maintaining the e-paper notification display much easier. The advantage this batter has over competing products is size. Or thickness, to be more precise. At just 8.1 mm this battery could allow the project to stay about as thin as a picture frame.

As a relatively newly created project, the exact battery life isn’t known yet but I’d guess it should last for weeks and not just days. To conserve power, the ESP32 is set to sleep for 30 minutes at a time between updating the sensors and screen. Without the use of deep sleep, it would last just four days at the most.

Adafruit HUZZAH32

CPU: 240 MHz dual core Tensilica LX6

Connectivity: 802.11b/g/n Wi-Fi and Bluetooth

Flash: 4 MB in the WROOM32 module

Buy on AliExpress Amazon iconBuy on Amazon

Lithium-ion polymer battery

Capacity: 2500 mAh

Output voltage: 3.7V

Waveshare 7.5-inch e-Paper HAT

Resolution: 800*480

Interface: SPI

Operating voltage: 3.3V~5V

The chassis is something most of us won’t be able to recreate as it is laser-cut out of a piece of acrylic. Then again, something similar could be achieved using a 3D printer. Or you could build it manually out of wood. The acrylic does have the advantage of having a really smooth surface, which a 3D printer alone can’t achieve.

How the Waveshare e-paper notification display works

As mentioned, this project utilizes the deep sleep function of ESP32 boards. The e-paper notification display will wake every 30 minutes, run for 60 seconds, and will then return to deep sleep. To allow for over-the-air (OTA) updates, the creator has used a binary_sensor which, when enabled, will keep the board awake.

You will find over 100 lines controlling the text_sensor in this project’s code. To be able to display the weather as icons and not just text, the creator uses around 100 icons in the bitmap format. The icons are, just like the code, available to download from the GitHub repository.

The most complex bit of programming is found in the events. These required a long JSON list in a template sensor that pulls the next three upcoming events. As with the weather, the events also have icons next to their title.

How the notification display using Waveshare e-paper could be modified

While I’m not one to criticize someone else’s work, I do think about what changes I’d make whenever I discover a new ESPHome project. The same goes for this notification display using a Waveshare e-paper panel.

The creator has done an excellent job at keeping things neat and clean. The first change I’d make would not be beneficial to its design as it would make the whole thing thicker. Despite that, I think the convenience factor trumps the added bulk. I would replace the 2500 mAh lithium-ion polymer battery with an 18650. You can get fantastic charger modules for 18650 batteries which would allow you to place a female USB-C port somewhere on the outside of the 3D-printed chassis for easy charging. Or you could purchase a shield which has an 18650 and charging components integrated.

By replacing the LiPo battery with an 18650, I could also ditch the ESP32 board used in this project and replace it with a universal raw e-paper panel driver board. These driver boards have all the circuitry needed to drive BJ-EPower 640x384, 7.5inch E-Ink raw Display.

About Liam Alexander Colman

Liam Alexander Colman has been using Home Assistant for various projects for quite some time. What started of with a Raspberry Pi quickly became three Raspberry Pis and eventually a full-blown server. I now use Unraid as my operating system and Home Assistant happily runs in a Docker container. My personal setup includes many Zigbee devices as well as integrations with existing products such as my Android TV box. Read on to find out more on how I got started with Home Assistant.

Leave a comment