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).
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.
This repo includes the software (100% python) and the STLs of the frame.
I used the following hardware:
The prerequisites are based on this waveshare instruction to get your rapi ready for the display:
sudo raspi-config
# Choose Interfacing Options -> SPI -> Yes to enable SPI interface
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz
tar zxvf bcm2835-1.60.tar.gz
cd bcm2835-1.60/
sudo ./configure
sudo make
sudo make check
sudo make install
Install wiringPi libraries
sudo apt-get install wiringpi
#For Pi 4, you need to update it:
cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
Clone the repo
git clone https://github.com/13Bytes/eInkCalendar
cd eInkCalendar
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
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.
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
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.
Stuck somewhere? \ You can contact me, or create a issue.
Louis - @LouisD - coding@13bytes.de