E-ink calendar based on ESP32 and Waveshare 1304×984 12.48 inch 3-color display
Turned out, Waveshare displays are shit 💩, after about 4 months of using, the red color became light-pink and can barely seen at all.
I don't recommend building this project until I upgrade it to something more reliable.
A real wall-mounted e-ink calendar from my kitchen:
See more pictures in the pictures/ dir
The most complicated part was to get all the electronic parts together. The display requires a specific driver board which is only sold by Waveshare and can only be ordered by directly inquiring sales. Then the wiki page incorrectly specifies that the cable is 24-pin. It is not. It is 30-pin. Waveshare sent wrong cables twice. After that I realized that you cannot fit a standard ESP32 dev module into the driver board, because Waveshare made it incompatible (different size and two pins swapped), you must order a special Waveshare braded ESP32 board.
It took 6 months for me to get all the needed parts. If you decide to assemble this project, I recommend you to get a module set which includes everything you need.
After everything gets connected, the data flows as following:
graph TD;
A[Cron]-->|magic link|B[Google];
B-->|iCal|A
A-->|write|C[Generate PNG];
C-->|read|A
A-->|Send packets|D[Display];
At this point no authentication is implemented. ESP32 would accept any request. You should only run this solution in a trusted LAN.
Waveshare 12.48 inch module
: $185 linkWaveshare ESP32 E-Paper driver
: $15 linkESP32 board json
, open project and upload it.Google Calendar
magic link.env
filepull_calendar.sh
Host program requires Ubuntu, bash, python3 or docker.
See cron/ dir for instructions.
See esp32/ dir for instructions.