Post

E-Paper Calendar Ep.2 — The E-Paper Display

E-Paper Calendar Ep.2 — The E-Paper Display

This article is migrated from Medium and translated by Gemini pro 2.5.


Driving the E-Paper

The e-paper display finally arrived! I’ve never played with this kind of screen before, but thankfully, Waveshare’s documentation is quite complete, and they provide demo code for several platforms.

E-Paper Screen Specifications

Official Waveshare Documentation

When I learned this screen uses SPI communication, I originally wanted to use an STM32 to run the demo. But after not being able to find my STM32 test board, I thought I’d use an ESP32 S3 (since I’ll need Wi-Fi functionality later anyway). However, the official ESP32 demo code they provide doesn’t cover this specific screen model.

Not wanting to waste too much time just getting the demo to work, I decided to just go with a Raspberry Pi 4.

Raspberry Pi 4 Environment Setup

There are a ton of tutorials for this online, so I won’t go into detail. The process is just: install Pi OS, set up SSH, and control the RPi4 via SSH after it boots.

Next up was wiring. The SPI adapter module that Waveshare included can be installed directly onto the Raspberry Pi’s header pins. You just press it right in. Then, connect the screen’s flat cable. You have to pay attention to the direction—I installed it backward at first, and the screen had no reaction at all. I almost thought I had received a defective product.

Waveshare module installed on the Raspberry Pi

First Time Lighting Up the Screen

After that, I just followed the official documentation: enable the SPI peripheral, install the Python environment, download the demo code, and run it.

First screen refresh

Demo video

As you can see from the video, a full screen refresh takes over ten seconds, which is pretty close to the 16 seconds stated in the official specs. The display quality is actually quite beautiful, and the 800x480 resolution should be sufficient.

I took a brief look at the demo code; it’s simple and easy to understand. Modifying it later shouldn’t be difficult.

The most fortunate part was seeing Mandarin characters displayed. This was the bottleneck I was most worried about, and it seems to be half-solved already.

The next step will be to start controlling the screen to display my own specified images and text. After that, I’ll start working on a rough layout, and then move on to the next research phase: how to fetch data from Google Calendar.

This post is licensed under CC BY 4.0 by the author.