/papercal

CalDAV for Paperd.Ink devices

Primary LanguageC++MIT LicenseMIT

PaperCal

PaperCal is a calendar application for Paperd.Ink Classic devices. It connects to a CalDAV calendar and displays the upcoming events.

PaperCal is under active development, it kind of works for me but is not production ready software.

PaperCal only works on the Paperd.Ink Classic. The Merlot is not supported (I don’t own one). Open an issue if you would like to see support for the Paperd.Ink Merlot.

Paperd.Ink Classic running PaperCal

Installation

You can use the Arduino IDE to compile and upload the sketch, but I prefer the arduino-cli. First clone this git repository:

$ git clone https://github.com/cimm/papercal.git --depth 1

Don’t forget to add you WiFi and CalDAV credentials to the sketch’ papercal/config.hpp file.

Next install and configure arduino-cli for the ESP32 board, add the required Arduino libraries:

$ arduino-cli config init
$ arduino-cli config set board_manager.additional_urls https://dl.espressif.com/dl/package_esp32_index.json
$ arduino-cli core update-index
$ arduino-cli core install esp32:esp32
$ arduino-cli lib install GxEPD2

Finaly, compile and upload the sketch:

$ arduino-cli compile --fqbn esp32:esp32:esp32 papercal/
$ arduino-cli upload -p /dev/ttyUSB0 --fqbn esp32:esp32:esp32 papercal/

The board will reboot, give it a few seconds, and if everything works you shoud see your upcoming events.

Use the Arduino Serial Monitor extra debug info:

$ arduino-cli monitor -p /dev/ttyUSB0

Known Issues

  • All day events also show on the day after the event, this is a bug.
  • Only the Synology Calendar CalDAV implementation is tested. File a bug if your CalDAV server does not work.
  • Only ASCII is supported. Full UTF-8 support would take too much of the program storage space.

Acknowledgement

A good chunk of the code is inspired on the official Paperd.Ink Library for Arduino. Besides the libraries above, it also includes a copy of the TinyXML2 parser.