E-ink calendar based on ESP32 and Waveshare 1304×984 12.48 inch 3-color display
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.
- Get
Waveshare 12.48 inch module
: $185 link - Get
Waveshare ESP32 E-Paper driver
: $15 link - Install Arduino, add
ESP32 board json
, open project and upload it. - Generate
Google Calendar
magic link - Edit
.env
file - Run
pull_calendar.sh
Host program requires Ubuntu, bash, python3 or docker.
See cron/ dir for instructions.
See esp32/ dir for instructions.