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.
- SPI interface, Compatible with Raspberry Pi/Arduino/Nucleo, etc.
- SPI interface, for connecting with controller boards like Raspberry Pi/Jetson Nano/Arduino/STM32, etc.
- 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).
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 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.
CPU: 240 MHz dual core Tensilica LX6
Connectivity: 802.11b/g/n Wi-Fi and Bluetooth
Flash: 4 MB in the WROOM32 module
Lithium-ion polymer battery
Capacity: 2500 mAh
Output voltage: 3.7V
Waveshare 7.5-inch e-Paper HAT
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.