13Bytes / eInkCalendar

A small desk-calendar, portal-themend. It display the current date, the next few events in your calendar and whether a person in your contact list has a birthday
Creative Commons Attribution 4.0 International
183 stars 17 forks source link

Portal eInk Calendar

A small desk-calendar with the theme of a portal chamber info.
It displays the current date, the next few events in your calendar and whether a person in your contact list has a birthday (inc. their name).

Table of Contents
  1. About The Project
  2. Getting Started
  3. Frame
  4. Questions
  5. Contact
  6. Acknowledgments

About The Project

The finished project on my desk:

The pie is displayed when a person in your contacts has a birthday (along with the name below it). The other three icons are currently displayed randomly.

(back to top)

Components

This repo includes the software (100% python) and the STLs of the frame.

I used the following hardware:

Getting Started

Prerequisites

The prerequisites are based on this waveshare instruction to get your rapi ready for the display:

Installation

  1. Clone the repo

    git clone https://github.com/13Bytes/eInkCalendar
    cd eInkCalendar
  2. Install requirements

    sudo apt-get update
    # requirements by waveshare
    sudo apt-get install python3-pip python3-pil python3-numpy RPi.GPIO python-spidev
    # requirements by this repo
    sudo python3 -m pip install -r requirements.txt
  3. Create config-file

    cp settings.py.sample settings.py

    Now edit settings.py and set all your settings:

    LOCALE: "en_US" (or e.g. en-GB.UTF-8) Select your desired format and language. It needs to be installed on your device (which 95% of time is already the case - as it's you system-language. You can list all installed local-packages with locale -a. If the desired one is missing, add it in this menu sudo dpkg-reconfigure locales (for Raspberry Pis) or take a look at the general Debian Wiki).

    WEBDAV_CALENDAR_URL = "webcal://p32-caldav.icloud.com/published/2/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" The address of your shared wabdav calendar. (It needs to be publicly accessible by this URL)

    WEBDAV_IS_APPLE = True Is the calendar hosted on icloud?

    CALDAV_CONTACT_USER = "louis" Username for logging into your CALDAV contact-list.

    CALDAV_CONTACT_PWD = "secret" Password for logging into your CALDAV contact-list.

    ROTATE_IMAGE = True This will rotate the image 180° before printing it to the calendar. True is required if you use my STL, as the dipay is mounted upside-down.

  4. Add the start-script to your boot-process:\ (You might need to adapt the path /home/pi/eInkCalendar/run_calendar.sh acordingly)

    Make run_calendar.sh executable

    chmod +x /home/pi/eInkCalendar/run_calendar.sh

    and add it to crontab, as follows:

    crontab -e

    and add following line:\ @reboot sleep 60 && /home/pi/eInkCalendar/run_calendar.sh

(back to top)

Frame

The STLs of the frame can be found in hardware. It's designed for 3D-printing. The two parts can be screwed together in three of the four corners.

The raspi is held in place by threaded heat set inserts.

(back to top)

Questions

Stuck somewhere? \ You can contact me, or create a issue.

(back to top)

Contact

Louis - @LouisD - coding@13bytes.de

(back to top)

Acknowledgments

(back to top)