Go to file
2020-05-29 04:09:15 +02:00
.github Update CONTRIBUTORS.md 2020-05-23 01:31:15 +02:00
docs Added documentation 2020-05-07 20:17:32 +02:00
fonts Improved folder structure 2019-12-12 22:52:57 +01:00
Gallery Add files via upload 2020-05-18 20:00:19 +02:00
images Added image merging script 2020-05-18 18:34:19 +02:00
inkycal Fixed imports 2020-05-29 04:01:13 +02:00
.gitignore Ignored files having to to with venv 2020-05-16 20:20:08 +02:00
Changelog.md Updated file 2020-02-13 15:55:16 +01:00
dev_tests.py minor improvements 2020-05-21 01:00:37 +02:00
Installer.sh Removed non-required file 2020-02-13 16:45:27 +01:00
LICENSE Update LICENSE 2019-12-19 16:38:28 +01:00
README.md Added note about tests 2020-05-21 01:37:44 +02:00
readthedocs.yml Added documentation 2020-05-07 20:17:32 +02:00
requirements.txt Updated requirements 2020-05-29 04:09:15 +02:00
settings-UI.html Added configurable section heights 2020-05-17 21:32:50 +02:00
wpa_supplicant.conf Rename wpa_applicant.conf to wpa_supplicant.conf 2018-08-28 03:02:53 +02:00

Refactoring branch. Work in progress!

Please do not use this branch as this is in pre-alpha stage. It it only intended for development purposes.

Short Summary

Aim of refactoring:

  • Use settings.json file instead of .py file
  • Fully dynamic images (changable section sizes)
  • No preferred module positions or sizes
  • Switch from scripts to classes
  • Allow using pip3 install .... to install inkycal
  • Update dependencies
  • Switch from ics to icalendar library for better parsing of iCalendars
  • Allow using on windows (no-render mode)
  • Implement features from dev branch
  • Implement testing for each module

Testing

While the main file is incomplete, you can still try out a few tests. To run these tests, please follow the steps below:

  • Clone this branch: git clone -b dev_ver2_0 https://github.com/aceisace/Inky-Calendar inkycal
  • Navigate to inkycal directory: cd inkycal
  • run tests: python3 dev_tests.py

Info

The main folder is now inkcal.

Folder structure:

|   Inkycal.py               -main file (work in progress)
|   __init__.py
|
+---config       
|       layout.py            -handles layout of image (size, section-sizes)
|       parser.py            -parse the settings.json file
|       settings.json        -JSON file for all the user-config
|       __init__.py
|
+---custom
|       functions.py         -custom functions of inkycal-software (writing text, etc..)
|       __init__.py
|
+---display
|   |   __init__.py
|   |
|   \---drivers              - drivers....
|           epdconfig.py
|           epd_4_in_2.py
|           epd_4_in_2_colour.py
|           epd_5_in_83.py
|           epd_5_in_83_colour.py
|           epd_7_in_5.py
|           epd_7_in_5_colour.py
|           epd_7_in_5_v2.py
|           epd_7_in_5_v2_colour.py
|           __init__.py
|
\---modules                   - folder containing all modules
        ical_parser.py        - parses icalendars
        inkycal_rss.py        - parses rss feeds
        inkycal_weather.py    - parses weather from openweathermap
        __init__.py

Version Python Licence Donate

A python3 software for displaying events (from iCalendars), weather (from openweathermap) and RSS feeds on selected E-Paper displays (4.2", 5.83", 7.5"(v1), 7.5"(v2)) from Waveshare/GoodDisplay.

Main features

  • Monthly Calendar that shows events from your Google (or other) iCalendar/s
  • Live weather info and forecasts for next 9 hours (openweathermap)
  • Agenda to show what is on your shedule (from your iCalendar/s)
  • RSS feeds from various providers to keep up to date with news, quotes etc.

News:

  • Looking for a server-only solution? This repo offers a server-only solution (Credit to Atrejoe)
  • Discord chat open now. Click here to enter
  • Version 1.7.1 released with support for 4.2", 5.83", 7.5" (v1) and 7.5" (v2) E-Paper displays (Mid January 2020)
  • Added support for Debian Buster, Buster Lite is not supported!

Development status

This software is in active development. To see the current development status, [Click here].

Preview

Hardware required

  • 7.5" 3-Colour E-Paper Display (Black, White, Red/Yellow) with driver hat from waveshare or
  • 7.5" 2-Colour E-Paper Display (Black, White) with driver hat from waveshare
  • Raspberry Pi Zero WH (with headers) (no soldering iron required)
  • Or: Raspberry Pi Zero W. In this case, you'll need to solder 2x20 pin GPIO headers yourself
  • MicroSD card (min. 4GB)
  • MicroUSB cable (for power)
  • Something to be used as a case (e.g. a RIBBA photo-frame or a 3D-printed case)

Setup

Getting the Raspberry Pi Zero W ready

  1. After flashing Raspbian Buster (with Desktop), set up Wifi on the Raspberry Pi Zero W by copying the file wpa_supplicant.conf (from above) to the /boot directory and adding your Wifi details in that file.
  2. Create a simple text document named ssh in the boot directory to enable ssh.
  3. Install the SD card and boot your Raspberry Pi. Connect to it over the network with ssh and login.
  4. Expand the filesystem in the Terminal with sudo raspi-config --expand-rootfs
  5. Enable SPI by entering sudo sed -i s/#dtparam=spi=on/dtparam=spi=on/ /boot/config.txt in the Terminal
  6. Set the correct timezone with sudo dpkg-reconfigure tzdata, selecting the correct continent and then the capital of your country.
  7. Reboot to apply changes
  8. Optional: If you want to disable the on-board leds of the Raspberry, follow these instructions: Disable on-board-led

Installing required packages for python 3.x

Execute the following command in the Terminal to install all required packages. Please use Raspbian Buster with Desktop (preferably the latest version). Raspbian Buster LITE is not supported.

bash -c "$(curl -sL https://raw.githubusercontent.com/aceisace/Inky-Calendar/master/Installer.sh)"

Installing tagged versions: If you want to install a different version than the master branch, insert the tag name into the above URL, e. g. bash -c "$(curl -sL https://raw.githubusercontent.com/aceisace/Inky-Calendar/v1.7.1/Installer.sh)"

Upgrading from old versions:: If you were using a previous version, please use the web-ui for generating a new settings file. Settings files from previous versions are not compatible.

If you get some red lines, please run pip3 install Pillow.

If the installer is broken, please follow the instructions here manual installation

If the Installer should fail for any reason, kindly open an issue and paste the error. Thanks.

Preview of Installer:

Adding details to the program

When you run the installer, you can add details in the last step. For new-users, it is recommended to use the 'web-UI' option.

You can also manually edit the settings file like this: nano /home/$USER/Inky-Calendar/settings/settings.py

Once your details are added, run the software with: python3 /home/$USER/Inky-Calendar/modules/inkycal.py. If everything is working correctly, you'll see some lines being printed on the console (not red ones). Lastly, the E-Paper display will show a fresh image.

If you encounter any issues, please leave a comment in the issues or via email. Thanks in advance.

iCalendar

Although Google Calendar is strongly recommended, iCalendars from other providors may work. Support for iCalendar requiring authentification (e.g. Owncloud) has been added, however this is still experimental.

Event names will be truncated until they fit in their allocated space/line. Try avoiding too long event names.

If you encounter errors related to your iCalendar, please feel free to report the error either by opening an issue or by sending a mail.

Updating

Before updating, re-name the current Inky-Calendar folder e.g. Inky-Calendar-old and then run the installer again (see above), choosing the update option.

Contributing

All sorts of contributions are most welcome and appreciated. To start contributing, please follow the Contribution Guidelines.

The average response time for issues, PRs and emails is usually 24 hours. In some cases, it might be longer.

Setting up VS Code Remote development in WSL

In order to speed up development, most development tasks (apart from the actual rending to E-Ink display) can be developed on more powerful machines and in richer environments than running this on a Pi zero. In case of Windows PC the most convenient way is to use VS Code Remote development in Windows Subsystem for Linux (WSL), please follow Tutorial.

To disable the eInk functionality set the flag to "image_only" (in /settings/settings.py):

render_target = "image_only"

Don't forget to check out the Wiki. It contains all the information to understanding and customising the script.

P.S: Don't forget to star and/or watch the repo. For those who have done so already, thank you very much!

Contact