Skip to content

E-ink calendar based on ESP32 and Waveshare 1304×984 12.48 inch 3-color display

License

Notifications You must be signed in to change notification settings

fritsypeij/e-ink-calendar-esp32

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

e-ink-calendar-esp32

E-ink calendar based on ESP32 and Waveshare 1304×984 12.48 inch 3-color display

Design

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];
Loading

At this point no authentication is implemented. ESP32 would accept any request. You should only run this solution in a trusted LAN.

Quick start

  1. Get Waveshare 12.48 inch module: $185 link
  2. Get Waveshare ESP32 E-Paper driver: $15 link
  3. Install Arduino, add ESP32 board json, open project and upload it.
  4. Generate Google Calendar magic link
  5. Edit .env file
  6. Run pull_calendar.sh

Host program

Host program requires Ubuntu, bash, python3 or docker.

See cron/ dir for instructions.

ESP32 firmware

See esp32/ dir for instructions.

About

E-ink calendar based on ESP32 and Waveshare 1304×984 12.48 inch 3-color display

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 38.1%
  • Shell 27.8%
  • CSS 18.7%
  • C++ 8.0%
  • C 4.6%
  • Dockerfile 2.8%