- Raspberry Pi - Header pins are needed to connect to the E-Ink display
- Waveshare 12.48" Tri-color E-Ink Display - Unfortunately out of stock at the time this was published, so I adapted the code to work with the 7.5" Display
- Since I had the luxury of using red for the E-Ink display, I used it to highlight the current date, as well as recently added/updated events.
- Given limited space (oh why are large E-Ink screens still so expensive!) and resolution on the display, I could only show 3 events per day and an indicator (e.g. 4 more) for those not displayed
- The calendar always starts from the current week, and displays the next four (total 35 days). If the dates cross over to the new month, it's displayed in grey instead of black.
- Timeline added to the bottom to closely honor the original concept
-
Start by flashing Raspberrypi OS Lite to a MicroSD Card.
-
After setting up the OS, run the following command in the RPi Terminal, and use the raspi-config interface to setup Wifi connection, enable SSH, I2C, SPI, and set the timezone to your location.
sudo raspi-config
- Run the following commands in the RPi Terminal to setup the environment to run the Python scripts.
sudo apt install chromium-chromedriver libatlas-base-dev
- Clone the repo and create and activate a virtual environment and install dependencies
cd mcal/
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
-
Download the files in this repo locally to your computer (not the pi).
-
In order for you to access your Google Calendar events, it's necessary to first grant the access. Follow the instructions here on your PC to get the credentials.json file from your Google API. Don't worry, take your time. I'll be waiting here.
-
Once done, copy the credentials.json file to the "gcal" folder in this project. Run the following command on your PC. A web browser should appear, asking you to grant access to your calendar. Once done, you should see a "token.pickle" file in your "gcal" folder.
python3 quickstart.py
-
Copy all the files over to your RPi using your preferred means.
-
Run the following command in the RPi Terminal to open crontab.
crontab -e
- Specifically, add the following command to crontab so that the MagInkCal Python script runs every 5 minutes.
*/5 * * * * cd /home/pi/mcal/ && /home/pi/mcal/venv/bin/python /home/pi/mcal/maginkcal.py
- MagInkCal: Built out the initial concept and is the backbone of this code
- Bootstrap Calendar CSS: Stylesheet that was adapted heavily for the calendar display
- emagra: For adding in new features, such as 24hr display and multiple calendar selection.
- /u/aceisace: For the tips on E-Ink development and the InkyCal repo (worth checking out even though I didn't use it for this project).