Inykcal is a software written in python for selected E-Paper displays.

Overview

Welcome to inkycal v2.0.0!

GitHub issues GitHub stars GitHub forks python

Inykcal is a software written in python for selected E-Paper displays. It converts these displays into useful information dashboards. It's open-source, free for personal use, fully modular and user-friendly. Despite all this, Inkycal can run well even on the Raspberry Pi Zero. Oh, and it's open for third-party modules! Hooray!

Main features

Inkycal is fully modular, you can mix and match any modules you like and configure them on the web-ui. For now, these following built-in modules are supported:

  • Calendar - Monthly Calendar with option to sync events from iCalendars, e.g. Google.
  • Agenda - Agenda showing upcoming events from given iCalendar URLs.
  • Image - Display an Image from URL or local file path.
  • Slideshow - Cycle through images in a given folder and show them on the E-Paper.
  • Feeds - Syncronise RSS/ATOM feeds from your favorite providers.
  • Stocks - Display stocks using Tickers from Yahoo! Finance.
  • Weather - Show current weather, daily or hourly weather forecasts from openweathermap.
  • Todoist - Syncronise with Todoist app or website to show todos.
  • iCanHazDad - Display a random joke from iCanhazdad.com.

News:

  • New Inkycal release published (early December 2020)
  • Added support for all 4.2", 5.83", 7.5", 9.7" waveshare E-Paper displays
  • Discord chat open now. Click here to enter

Development status

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

Preview

Hardware required

  • One of the supported ePaper displays from waveshare: 4.2", 5.83", 7.5" (all variants), 9.7"
  • Any Raspberry Pi with 40 pins and WiFi. (Raspberry Pi 3/3B/3B+/3A/4/0W/0WH - Inkycal runs just fine on the Zero W/Zero WH model!)
  • MicroSD card (min. 4GB) for flashing Raspberry Pi OS with Desktop. Lite is not supported!
  • MicroUSB cable (for power)
  • Optional, a 3D-printable case

Installing Inkycal

Configuring the Raspberry Pi

  1. Flash Raspberry Pi OS according to the instructions. Leave the SD card plugged in your computer.
  2. Create and download settings.json file for Inkycal from the WEB-UI
  3. Download the ssh text file from the WEB-UI
  4. Create and download a WiFi-configuration file (wpa_supplicant.conf) from the WEB-UI
  5. Copy these three downloaded files to the flashed microSD card. On Windows, this is the only visible directory on the SD card. On Linux, copy these files to /boot
  6. Eject the microSD card from your computer now, insert it in the Raspberry Pi and power the Raspberry Pi.
  7. Once the green LED has stopped blinking after ~3 minutes, use an SSH client to connect to the Raspberry Pi. On Windows, you can use PUTTY but you can also use an SSH App on your smartphone. Use the address: raspberrypi.local with pi as the username and raspberry as the password. Fro more detailed instructions, check out the page from the Raspberry Pi website
  8. After connecting via SSH, run the following commands, line by line:
sudo raspi-config --expand-rootfs
sudo sed -i s/#dtparam=spi=on/dtparam=spi=on/ /boot/config.txt
sudo dpkg-reconfigure tzdata

These commands expand the filesystem, enable SPI and setup the correct timezone on the Raspberry Pi. When running the last command, please select the continent you live in, press enter and then select the capital of the country you live in. Lastly, press enter.

  1. Change the passowrd for the user pi by entering passwd in the Terminal, enter your current password, hit enter, then type your new password and press enter. Please note you will have to remember this password to access your Raspberry Pi.
  2. Follow the steps in Installation (see below) on how to install Inkycal.

Installation

Open a Terminal and enter the following command:

bash -c "$(curl -sL https://raw.githubusercontent.com/aceisace/Inkycal/main/installer.sh)"

Yes, it's that simple! The above command runs the user-friendly installer. You can install, update and uninstall inkycal with ease. What's more is that it also allows starting Inkycal at every boot!

Should the installer fail, please open a issue or report the problem in Discord. In the meantime, you can try the Manual Installation

If you expierence issues with getting started, please check out the FAQ. If this doesn't help, please get help from the Inkycal Discord server, we're happy to help!

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. If you want to have some faster responses, please use Discord (link below).

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

Contact and Support

Inkycal chatroom Discord

Buy me a coffee please

Yes please :). I do drink and like my coffee, especially when developing the inkycal software :) You can donate a coffee with this QR-code (Paypal):

Comments
  • Support, Discussion, Suggestions, Critics for v1.5

    Support, Discussion, Suggestions, Critics for v1.5

    Here you have an option to chat about improvement ideas regarding v1.5 of the E-Paper Calendar software.

    As usual, nothing and nobody is perfect, but we can strive to get closer towards that. Please post your comments in a friendly way and remember to be nice. Thanks for your understanding.

    All improvement ideas are welcome.

    enhancement good first issue outdated 
    opened by aceisace 123
  • General Discussion, Support and Improvement ideas for releases < v1.5

    General Discussion, Support and Improvement ideas for releases < v1.5

    Here you have an option to chat about improvement ideas regarding the E-Paper Calendar.

    As usual, nothing and nobody is perfect, but we can strive to get closer towards that. Please post your comments in a friendly way and remember to be nice. Thanks for your understanding.

    All improvement ideas are welcome.

    enhancement good first issue outdated 
    opened by aceisace 80
  • Support, Discussion, Suggestions, Critics for release v1.6

    Support, Discussion, Suggestions, Critics for release v1.6

    Here you have an option to chat about improvement ideas regarding release v1.6 (Mid May 2019) of the E-Paper Calendar software.

    As usual, nothing and nobody is perfect, but we can strive to get closer towards that. Please post your comments in a friendly way and remember to be nice. Thanks for your understanding.

    All improvement ideas are welcome.

    enhancement good first issue 
    opened by aceisace 70
  • Debugging help

    Debugging help

    Describe the bug No longer able to launch InkyCalendar. Process crashes fetching events from calendars

    To Reproduce Steps to reproduce the behavior: python3.5 /home/pi/Inky-Calendar/Calendar/E-Paper.py

    Expected behavior Inky-Calendar should launch and load events.

    Screenshots

    Fetching events from your calendar
    
    Traceback (most recent call last):
      File "/home/pi/Inky-Calendar/Calendar/E-Paper.py", line 527, in <module>
        main()
      File "/home/pi/Inky-Calendar/Calendar/E-Paper.py", line 345, in main
        decode = str(urlopen(icalendars).read().decode())
      File "/usr/lib/python3.5/urllib/request.py", line 163, in urlopen
        return opener.open(url, data, timeout)
      File "/usr/lib/python3.5/urllib/request.py", line 472, in open
        response = meth(req, response)
      File "/usr/lib/python3.5/urllib/request.py", line 582, in http_response
        'http', request, response, code, msg, hdrs)
      File "/usr/lib/python3.5/urllib/request.py", line 510, in error
        return self._call_chain(*args)
      File "/usr/lib/python3.5/urllib/request.py", line 444, in _call_chain
        result = func(*args)
      File "/usr/lib/python3.5/urllib/request.py", line 590, in http_error_default
        raise HTTPError(req.full_url, code, msg, hdrs, fp)
    urllib.error.HTTPError: HTTP Error 400: Bad Request
    

    Desktop (please complete the following information): Raspbian GNU/Linux 9 (stretch)

    Additional context For some reason Inky-Calendar reset to default "settings.py". I went through the Web-UI and re-created the same settings I've always had. But it's now throwing errors.

    in progress 
    opened by ericwass 55
  • Bug reports for release v1.7

    Bug reports for release v1.7

    BETA testing

    Welcome to the BETA-testing of release v1.7. Thank you for willing to test the new software. As the Installer of the new release is still work in progress, an alternate way to install the software had to be found. For now, the Inky-Calendar software is offered as a pre-configures OS image, which you can simply flash on a blank MicroSD card.

    Below is the link on where you can download the image file. Below are the steps on how to set up the OS and the Inky-Calendar software:

    1. Download and unzip the OS file (with 7z) from here: BETA-RELEASE

    2. Format an empty MicroSD card (with SD Card Formatter) with at least 8GB space and flash the OS on the card (with Balena Etcher)

    3. Open Editor (on Windows) and paste the following to setup WiFi:

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    country=US
    
    network={
     ssid="WiFi-Name"
     psk="WiFi-Password"
    }
    

    Edit the 2-letter country-code, ssid and psk with your own. Make sure you don't add spaces after the = signs. Save the file as wpa_supplicant.conf in the boot directory. If you have access to an Ethernet connection, you don't need to setup WiFi.

    1. Add the SD card in the RPi and connect via VNC Viewer (preferred) or SSH. The hostname is inkycal.local ,the username is pi and the password is raspberry (default values). You can also use the IP address of the Rpi instead of the hostname.

    2. Expand the filesystem in the Terminal with sudo raspi-config --expand-rootfs and set the correct timezone with sudo dpkg-reconfigure tzdata

    3. VNC Viewer: Go to Inky-Calendar, open the settings folder and paste your details in settings.py SSH: cd /home/pi/Inky-Calendar/settings && nano settings.py

    4. VNC Viewer: Open the modules folder inside the Inky-Calendar folder, open inkycal.py and run with the main programm file by pressing the [F5] key. SSH: cd /home/pi/Inky-Calendar/modules && python3 inkycal.py

    Once the main programm has started, you'll see the E-Paper display being refreshed.


    Updating


    For those who have installed this software already and wish to perform an update, below are the instructions:

    • Rename the current Inky-Calendar folder to anything you like, e.g. Inky-Calendar-old

    • open the Terminal and run the following command: git clone -b dev https://github.com/aceisace/Inky-Calendar This will take some time as it will download 120 megabytes of data.

    • Copy your previous settings file (in this case inside 'Inky-Calendar-old/settings/settings.py') and paste it in the settings folder of the 'new' Inky-Calendar folder. You can use this command as well: cp Inky-Calendar-old/settings/settings.py /Inky-Calendar/settings/. Replace 'Inky-Calendar-old' with the name of the old Inky-Calendar folder.

    • Create symlinks (symbolic links) for the settings file and configuration file: ln -s /home/pi/Inky-Calendar/settings/settings.py /home/pi/Inky-Calendar/modules/ ln -s /home/pi/Inky-Calendar/settings/configuration.py /home/pi/Inky-Calendar/modules/

    • Run the new software VNC Viewer: Open the modules folder inside the Inky-Calendar folder, open inkycal.py and run with the main programm file by pressing the [F5] key. SSH: cd /home/pi/Inky-Calendar/modules && python3 inkycal.py

    improvement 
    opened by aceisace 48
  • Installer not working as expected

    Installer not working as expected

    Hi, I've followed all the installation instructions but cannot get an image on my Waveshare 7.5in three color display.

    • Version info; Version: 1.5 Installer version: 1.5 (Early February 2019) configuration file: /home/pi/E-Paper-Calendar/Calendar/settings.py If the time was set correctly, you installed this software on: Tue Apr 16 16:11:34 PDT 2019

    Error output:

    Traceback (most recent call last):
      File "/home/pi/E-Paper-Calendar/Calendar/E-Paper.py", line 33, in <module>
        from icon_positions_locations import *
      File "/home/pi/E-Paper-Calendar/Calendar/icon_positions_locations.py", line 19, in <module>
        weekday = im_open(opath+'weekday.png')
    
      File "/usr/local/lib/python3.5/dist-packages/PIL/Image.py", line 2609, in open
        fp = builtins.open(filename, "rb")
    FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/Calendar/Calendar/other/weekday.png'
    ne 19, in <module>
        weekday = im_open(opath+'weekday.png')
      File "/usr/local/lib/python3.5/dist-packages/PIL/Image.py", line 2609, in open
        fp = builtins.open(filename, "rb")
    FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/Calendar/Calendar/other/weekday.png'
    Traceback (most recent call last):
      File "/home/pi/E-Paper-Calendar/Calendar/E-Paper.py", line 33, in <module>
        from icon_positions_locations import *
      File "/home/pi/E-Paper-Calendar/Calendar/icon_positions_locations.py", line 19, in <module>
        weekday = im_open(opath+'weekday.png')
      File "/usr/local/lib/python3.5/dist-packages/PIL/Image.py", line 2609, in open
        fp = builtins.open(filename, "rb")
    FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/Calendar/Calendar/other/weekday.png'
    Traceback (most recent call last):
      File "/home/pi/E-Paper-Calendar/Calendar/E-Paper.py", line 33, in <module>
        from icon_positions_locations import *
      File "/home/pi/E-Paper-Calendar/Calendar/icon_positions_locations.py", line 19, in <module>
        weekday = im_open(opath+'weekday.png')
      File "/usr/local/lib/python3.5/dist-packages/PIL/Image.py", line 2609, in open
        fp = builtins.open(filename, "rb")
    FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/Calendar/Calendar/other/weekday.png'
    Traceback (most recent call last):
      File "/home/pi/E-Paper-Calendar/Calendar/E-Paper.py", line 33, in <module>
        from icon_positions_locations import *
      File "/home/pi/E-Paper-Calendar/Calendar/icon_positions_locations.py", line 19, in <module>
        weekday = im_open(opath+'weekday.png')
      File "/usr/local/lib/python3.5/dist-packages/PIL/Image.py", line 2609, in open
        fp = builtins.open(filename, "rb")
    FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/Calendar/Calendar/other/weekday.png'
    
    • Changes made: No changes

    • Description: Unable to get it to work at all. This is the result from terminal: pi@raspberrypi:~/E-Paper-Calendar/Calendar $ sudo python3.5 E-Paper.py Traceback (most recent call last): File "E-Paper.py", line 33, in from icon_positions_locations import * File "/home/pi/E-Paper-Calendar/Calendar/icon_positions_locations.py", line 19, in weekday = im_open(opath+'weekday.png') File "/usr/local/lib/python3.5/dist-packages/PIL/Image.py", line 2609, in open fp = builtins.open(filename, "rb") FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/Calendar/Calendar/other/weekday.png'

    • Additional Notes: _There may be other issues with the display and/or drivers. I'm unable to get Waveshare demo code to work. Terminal always returns "e-Paper busy"

    I have checked and re-checked that I've installed all drivers/python/libraries, etc. I'm very new to this and bought it to learn, so please forgive something I might be missing. Appreciate your work on this._

    fixed! outdated 
    opened by ericwass 22
  • Feature: dynamic modules (no location preference, no preferred position)

    Feature: dynamic modules (no location preference, no preferred position)

    Panel order should dynamic: panels (modules) should be told their dimensions instead of determining themselves based on figuring out their position by reading from settings.py.

    Any logic that is based on the position (where a panel should know if is it at the top, middle or bottom) is yet to be determined, if to exist at all.

    This would also allow changing the number of panels (with a minimum of one of course)

    Beta branch (dev) Done! 
    opened by Atrejoe 20
  • Bug reports for release v1.7.1

    Bug reports for release v1.7.1

    Bug reports

    Here you have an option to chat about the Inky-Calendar software (v1.7.1) with the author (me) as well as other users from the community.

    This issue is mainly intented to help identify bugs/errors/problems in the software. Once something has been reported, I'll try to take care of it as soon as possible.

    P.S: Please remember to be nice :)

    improvement 
    opened by aceisace 20
  • Bug: Arrow v1.0.0 incompatible with Inkycal (dependency issue)

    Bug: Arrow v1.0.0 incompatible with Inkycal (dependency issue)

    Describe the bug I have performed a clean install on a Pi Zero WH and have a 5.83" epaper display attached. I get the following error(s) when I manually run inky_run.py:

    pi@rpiz-inky:~ $ python3 inky_run.py
    Traceback (most recent call last):
      File "/home/pi/.local/lib/python3.7/site-packages/arrow/constants.py", line 16, in <module>
        _MAX_TIMESTAMP = datetime.max.timestamp()
    OverflowError: timestamp out of range for platform time_t
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "inky_run.py", line 1, in <module>
        from inkycal import Inkycal # Import Inkycal
      File "/home/pi/Inkycal/inkycal/__init__.py", line 5, in <module>
        import inkycal.modules.inkycal_agenda
      File "/home/pi/Inkycal/inkycal/modules/__init__.py", line 1, in <module>
        from .inkycal_agenda import Agenda
      File "/home/pi/Inkycal/inkycal/modules/inkycal_agenda.py", line 10, in <module>
        from inkycal.modules.ical_parser import iCalendar
      File "/home/pi/Inkycal/inkycal/modules/ical_parser.py", line 16, in <module>
        import arrow
      File "/home/pi/.local/lib/python3.7/site-packages/arrow/__init__.py", line 2, in <module>
        from .api import get, now, utcnow
      File "/home/pi/.local/lib/python3.7/site-packages/arrow/api.py", line 12, in <module>
        from arrow.arrow import TZ_EXPR, Arrow
      File "/home/pi/.local/lib/python3.7/site-packages/arrow/arrow.py", line 34, in <module>
        from arrow import formatter, locales, parser, util
      File "/home/pi/.local/lib/python3.7/site-packages/arrow/parser.py", line 26, in <module>
        from arrow.util import next_weekday, normalize_timestamp
      File "/home/pi/.local/lib/python3.7/site-packages/arrow/util.py", line 6, in <module>
        from arrow.constants import (
      File "/home/pi/.local/lib/python3.7/site-packages/arrow/constants.py", line 25, in <module>
        else datetime(2038, 1, 18, 23, 59, 59, 999999).timestamp()
    OverflowError: timestamp out of range for platform time_t
    

    Additional context No error or warning messages were observed during install. I have limited knowledge of Python programming but can find my way around fairly quickly.

    fixed! 
    opened by phuntee 16
  • E-Paper Calendar fork from mgfcf

    E-Paper Calendar fork from mgfcf

    mgfcf's E-Paper Calendar fork

    Amongst the forkers of this software,, mgfcf (Max G.) has been working hard on the E-Paper software refactoring. Apart from some more design options, it's also modular so it's easier to modify.

    I am very thankful to Max G. for taking the time on refactoring the E-Paper software. But since there is hardly any 'perfect' software, bugs and errors can still occur. The aim of this issue is to provide a way to interface with mgfcf (for bugs, errros, etc.).

    As usual, nothing and nobody is perfect, but we can strive to get closer towards that. Please post your comments in a friendly way and remember to be nice. Thanks for your understanding.

    outdated 
    opened by aceisace 15
  • Feature Request: Todoist-API module

    Feature Request: Todoist-API module

    Is anyone working on a module to link to Todoist or equivalent? I have been looking at the various e-ink calendar systems and I think that is the critical capability. I've got my hardware ready, and this is an awesome project! Thanks!

    new feature request Beta branch (dev) Done! 
    opened by RadCLarite 14
  • Bug in Todoist Module

    Bug in Todoist Module

    Describe the bug For several projects in the project_filter, the inkycal_todoist module only imports the first project.

    To Reproduce Try to import more than one project from todoist.

    Expected behavior All tasks from all projects in the project_filter list should be imported and printed. Here, a small bug has been found: In the for-loop which is used to generate the image, the else case with break ("more todos than available lines") is lined up with "if todos:". It should line up with "if cursor < len(line_positions):". This change in the code has solved the issue for me.

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information):

    • OS: raspberry OS

    Smartphone (please complete the following information):

    • Device: [e.g. iPhone6]
    • OS: [e.g. iOS8.1]
    • Browser [e.g. stock browser, safari]
    • Version [e.g. 22]

    Additional context Add any other context about the problem here.

    additional feedback required 
    opened by Semmidemmi263 1
  • Bug in module inkycal_todoist

    Bug in module inkycal_todoist

    Describe the bug Proposed todoist package in remark is wrong.

    To Reproduce There are several packages for the todoist_api. The installed one is wrong, the correct one should be: todoist_api_python. Therefore, please change the prints following the importError exception to: print('pip3 install todoist_api_python')

    Expected behavior Installation of the used package instead of the not used package "todoist-python", which, even if installed, still raises the ImportError. Desktop (please complete the following information):

    • OS: raspberry OS

    Smartphone (please complete the following information):

    Additional context Add any other context about the problem here.

    additional feedback required 
    opened by Semmidemmi263 1
  • Add support for Inky pHAT and wHAT

    Add support for Inky pHAT and wHAT

    Release version = 2.0.0 Expected behavior = e-ink display to update with modules Actual behavior = upon start up OS works fine, no update on display Steps to reproduce the behavior = before installation input all things needed for installation and inky wHAT is already connected

    I am trying out this code today and it is not working out of the box after installation with the Inky wHAT with a 4.2 in e-ink display.

    I have not tried out the pHAT since it is a smaller 2.13 in screen.

    new feature request 
    opened by CapnBio 4
  • Duplicate ical entries from different sources

    Duplicate ical entries from different sources

    Describe the bug If two ical calendar sources contain the same event (e.g. one as invitee, one as organizer), the ical agenda shows them duplicate, even if the UID is the same.

    To Reproduce

    1. Create two ICS files with the same event (same UID)
    2. Setup agenda module with both ICS files.
    3. Start inkycal

    Expected behavior Only one instance of this event is shown

    improvement 
    opened by guerda 1
  • added a scaling factor for the weather icons

    added a scaling factor for the weather icons

    As ace and I discussed a while back (mid-2020?) the unicode weather icons report an incorrect size in the y direction. Some of the icon's sizes are off by enough that the human eye can see that they are no longer centered in the y direction.

    During another project of mine, I went through each icon and added a manual scaling factor that, when used along with the font size, can help us properly center the icons. I had difficulty integrating that scaling factor into the weather module because it's a very complicated program and ace wrote it.

    But I think I figured it out: By editing the y alignment line in the draw_icon function to factor in this size correction, all the icons are now correctly centered. That appears to be the case with my 12" screen, although I haven't yet tested it on a 7.5" screen. I would appreciate others testing this out for me and seeing if there's any ill-effects on smaller screens.

    opened by emilyboda 1
Releases(v2.0.1-beta)
  • v2.0.1-beta(Jan 5, 2021)

    Info

    This pre-release is a full-OS based on Raspberry Pi OS Lite. It contains several additions and improvements to the web-ui, greatly improving the user-expierence.

    The latest version of Inkycal has been installed, drivers for the 9.7" E-Paper display have also been installed. Driver files for the 12.48" E-Paper displays have been added, but testing could not be carried out.

    Please note that this release is not meant to be modified via SSH. It should work out-of-the-box and the web-ui has been updated to allow a ssh-free setup for the first time.

    Setup

    To get started, please do the following:

    • Download and unzip the OS file from below (1GB download file, 3.22GB file after unzipping)
    • Flash the OS on a microSD card with at least 4 GB space
    • Add the wpa_supplicant.conf file to the microSD card after generating one from the web-ui with your wifi details
    • Eject the microSD card and add the microSD card in the Raspberry Pi
    • Wait for 3 minutes after powering up the Raspberry Pi, then type the following in a browser: http://inkycal.local/

    Using the web UI

    • Add the opened website to your home screen of your phone. This will make it look (and act) just like any app.
    • login with the default details: username: admin password: admin
    • Please change your password in the [change password] section, keeping default passwords is a very bad idea and a security risk. It's not possible to restore the password, so be sure to remember or write down the new password
    • Identify which display your have in the [Display test] section
    • Add your details via the [customize] section. Previous settings file from older releases will not work, then click save
    • Head over to the [Control] section and press on [start Inkycal]
    • If everything went well, you'll see Inkycal updating. If not, check the log file of Inkycal via the button

    Check out the video tutorial

    https://user-images.githubusercontent.com/29558518/103938752-0a1c4300-512b-11eb-8eaf-f9198d4abf00.mp4

    Source code(tar.gz)
    Source code(zip)
    InkycalOS-mid-january.zip(1140.50 MB)
  • v2.0.0(Dec 7, 2020)

    [2.0.0] Early December 2020

    This release is a major release, it will not work with a previous version of Inky-Calendar. Please use a fresh Image of Raspberry Pi OS to get started. And previous settings file will not be usable with this release, please create a new one from the web-UI. A special thank you to all the BETA testers of this release! Thank you all for your great help and support! Your names have been added on the contributors list

    Concluding the major highlights of this release:

    • Greatly improved the user-expierence, including but not limited to a brand new web-UI, easier setup instructions, easier configuration..
    • Various bugfixes and improvements in several modules
    • Improved stability, logging, handling of images
    • Added several new modules (Jokes, Todoist, Slideshow, Stocks..)

    It is highly recommended you upgrade to this release to benefit from long-term support. Support for any previous releases will be dropped with this release.

    Added

    • Added fully re-written web-UI running on flask
    • Added Documentation
    • Added wifi configuration file creator for setting up wifi before first boot
    • Added Discord Server for faster support, exchanging ideas, getting help etc.
    • Added logging capabilites
    • Added tests for testing various configurations at once.
    • Added official support for 9.7" E-Paper display
    • Added setup.py file to allow installing via pip3
    • Added Display class which controls the E-Paper displays
    • Added local copy of web-ui allowing to run the web-ui locally
    • Added option to add/remove third party modules
    • Added built-in logging to file
    • Added Stocks Module, showing stocks from Yahoo!
    • Added Slideshow module, showing images from a given folder
    • Added Todoist module, showing events from Todoist API or via the Todoist APP
    • Added jokes module, fetching joke from iCanHazDad
    • Added support for weather location lookup by name in weather module
    • Added official support for recurring events in Calendar and Agend module

    Changed

    • Switched from pyowm v2 to v3 (latest)
    • Switched from ics library to icalendar library
    • Changed from saving images to returning images in all modules
    • Changed default font to NotoSansUI
    • Switched to Gitflow
    • All configurable settings are now saved in the settings.json file after entering details in the web-ui
    • Changed structure of folders and sub-folders for better categorizing.
    • Modules can now generate images for any given size
    • No preferred position of modules or preferred height
    • Changed format of logging to include time, date, module name and message
    • Changed name of repo from Inky-Calendar to Inkycal

    Removed

    • Removed single-line installer in favor of pypy package, allowing install via pip3 instead of git clone
    • Removed settings validator as all configuration is managed via the web-ui.

    Fixed

    • Fixed issues with calendar: 31 not in list
    • Fixed issue in iCalendar parser not loading iCalendars correctly from files
    • Fixed issues with Feeds module not showing feeds correctly (with HTML tags), these are now removed by default
    • Fixed issue with overlapping events
    • Fixed issue where manually changing heights for some modules would result in disorted images
    • Fixed stability issues
    • Fixed several issues with recurring events and iCalendar parser in general
    Source code(tar.gz)
    Source code(zip)
  • 1.7.2(Feb 16, 2020)

    [1.7.2] Mid February 2020

    Added

    • Added option to show generated image upside down
    • Each section will display a short Error message on the E-Paper if something went wrong. Previously, the section would remain empty

    Changed

    • Middle section (calendar, agenda) can now use the entire display if other sections are empty
    • Changed the way images are transferred to the display. Now, two images are required, one for black pixels, the other for red/yellow pixels.

    Removed

    • Removed function to split generated image into 2 (by colour)

    Fixed

    • Fixed problem with weather module not showing forecasts for certain timezones (switched from local time to UTC)
    • Fixed problem where leaving a section empty would cause problems
    • Fixed a problem where all-day events would be shown to start at 12.00 hours
    • Fixed a problem where the all-day string would not be shown
    • Fixed a slight problem where lines would have varying line heights
    • Fixed rendering issues with text: Text will no longer have mixed colours (3-colour dislays) and is easier to read
    Source code(tar.gz)
    Source code(zip)
  • v1.7.1(Jan 18, 2020)

    [1.7.1] Mid January 2020

    Added

    • Added support for 4.2", 5.83", 7.5" (v2) E-Paper display
    • Added driver files for above mentioned E-Paper displays

    Changed

    • Slight changes in naming of generated images
    • Slight changes in importing module names (now using dynamic imports)
    • Changed driver files for all E-Papers with the latest ones from waveshare (v4)
    • Slightly changed the way modules are executed

    Removed

    • Removed option for selecting colour from settings file

    Fixed

    • Fixed a problem where the calibration function would only update half the display on the 7.5" black-white E-Paper
    • Implemented a possible bugfix for 'begin must be before end' error.
    Source code(tar.gz)
    Source code(zip)
  • v1.7(Dec 18, 2019)

    [1.7] Mid December 2019

    Added

    • Added support for sections (top-,middle-,and bottom section)
    • Added support for weather forecasts.
    • Added support for moon phase
    • Added support for events in Calendar module
    • Added support for coloured negative temperature
    • Added support to automatically rotate the image if required
    • Added support for wind direction in weather module
    • Added support for decimal places in weather module
    • Added extra customisation options (see configuration file)
    • Added support for recurring events
    • Added forecasts in weather module
    • Added info about moon phase in weather module
    • Added info about sunrise and sunset time in weather module
    • Added support for colour-changing temperature (for coloured E-Paper displays, the temperature will red if it drops below 0°Celcius)
    • Added support for decimal places in weather section (wind speed, temperature)
    • Added beaufort scale to show windspeed
    • Added option to show wind direction with an arrow
    • Added new event and today icon in Calendar module
    • Added sections showing upcoming events within Calendar module
    • Added configuration file for additional configuration options
    • Added new fonts with better readability
    • Added support to manually change fontsize in each module
    • Added more design customisation (text colour, background colours etc.)

    Changed

    • Changed folder structure (Full software refactoring)
    • Split main file into smaller modules, each with a specific task
    • Changed layout of E-Paper (top_section, middle_section, bottom_section)
    • Changed settings file, installer and web-UI
    • Black and white E-Papers now use dithering option to map pixels to either black and white

    Removed

    • Removed non-readable fonts
    • Removed all icons in form of image files. The new icons are generated with PIL on the spot
    • Removed option to reduce colours for black and white E-Papers

    Fixed

    • Fixed problem with RSS feeds not displaying more than one feed
    • Fixed image rendering
    • Fixed problems when setting the weekstart to Sunday
    Source code(tar.gz)
    Source code(zip)
    Inky-Calendar-master.zip(44.49 MB)
  • v1.7(BETA)(Dec 7, 2019)

    As there have been many back-end changes in the Inky-Calendar software, futher testing is required to debug and fix errors. Due to this, this release is clearly marked as experimental.

    Right now, only beta testers are invited to test the new release. Pleas wait until the green light is given and this can be pushed on the main branch. Thank you for your understanding.

    Source code(tar.gz)
    Source code(zip)
    inkycal-v1-7-1.7z(892.26 MB)
  • v1.6(May 18, 2019)

    [1.6] Mid May 2019

    Added

    • Added new design option: Agenda-View, which displays events in the next few days with timings
    • Added support for multi-day events
    • Added support for multiple languages
    • Added support for localisation options (dates will be shown in the set language now)
    • Added new fonts (NotoSans Semi & Noto Sans CJK) which support many languages (without displaying tofus)
    • Added dynamic space management to minimise empty space on the generated image
    • Added support for RSS-feeds. It is now possible to display them in the bottom section
    • Added image pre-processing operation to allow displaying the generated image correctly on the E-Paper
    • Added limit (in days) when fetching events from the iCalendar
    • Added option to select the display-update interval*
    • Added user-friendly Web-UI (webpage) for entering personal details easily (Credit to TobyChui)
    • Added support for continuing the loop even if some details are missing in the settings file (api-key, rss-feed)
    • Added support for relative path and removed explicit path
    • Added support for timezones. events timings will be shown correctly using the system's set timezone
    • Added support for 12/24 hours format for events

    Changed

    • Changed E-Paper layout by splitting the image into three section: top-, middle, bottom.
    • Changed the way the installer checks if a required package is installed (by test-importing it in python3)
    • Changed the function which displays text on the Calendar
    • Merged e-paper driver files (initially epd7in5b and epd7in5) into a single one (e_paper_drivers)
    • Switched from image-based translations to text-based translation
    • Changed algorithm for filtering events

    Removed

    • Removed (older) fonts which were not suitable for multiple languages
    • (Temporary) removed support of recurring events due to some known bugs
    • (Temporary) dropped support of the installer on Raspbian Jessie Lite due to some known bugs
    • Removed image-based translations for month names

    Fixed

    • Fixed problems with iCalendar triggers by removing them altogether when parsing the iCalendar
    • Fixed problems with outdated events

    (*) Updating too frequently can cause ghosting, a problem specific to E-Paper displays where parts of the previous image can be seen on the current image. Ghosting can be fixed by 'calibrating' the E-Paper (displaying a single colour on the entire display) and is done by default. As a rule of thumb, one 'calibration' should be done for every 6 display-updates to maintain a crisp image.

    Source code(tar.gz)
    Source code(zip)
  • v1.5(Feb 3, 2019)

    [1.5] Early February 2019

    Added

    • Added option to update or uninstall the software via the Installer. To uninstall, just re-run the Installer.
    • Added feature to display upcoming events from the current month and next month on the bottom section.
    • Added support for 12 hour/ 24 hours (sunrise- and sunset-timings can now be adjusted via the settings file)
    • Added support for imperial units (wind speed can now be shown as mph as well)
    • Added option to choose metric/imperial units
    • Added option to save the generated image in the 'Calendar' folder to help debugging.

    Changed

    • Changed a lot of icon sizes, positions and locations.
    • Changed the file format for nearly all icons. Icons should now be in JPEG format.
    • Chnaged the way icons are displayed. The software now uses the correct coordinates of icons
    • Icons are no longer rotated
    • Changes a few values in 'epd7in5b' to improve the readability of icons on the display
    • Changed the 'current day' and 'event' icon with slightly better ones
    • Changed the folder structure in the 'Calendar' folder for better navigation and overview

    Removed

    • Removed the Installer without debug
    • Removed the calibration.py file by merging the calibrations for the 3-Colour and 2-Colour display.
    • Removed a few font files as only 1 is required.
    • Removed the monocolour-converter.py file as the conversion is no longer required
    Source code(tar.gz)
    Source code(zip)
  • v1.4(Dec 24, 2018)

    Added

    • Added short weather description in the top section
    • Added wind speed (in km/h) and an icon for wind speed
    • Added sunrise icon and time of sunrise
    • Added sunset icon and time of sunset
    • Added memory limits on both log files (output file and error file) to 1 MB

    Fixed

    • Fixed an issue where text would not fit on screen
    • Fixed an issue where the script would fail after every network error from openweathermap API
    • Fixed an issue where text would not be centered
    • Fixed an issue with decoding the calendar url

    Changed

    • Changed the position of the weather icon to the top left corner
    • Changed the way text is displayed on the display by adding a function named 'write_text'
    • Split the main script to form a new file with icons and their position and locations

    Removed

    • Removed the explicit date from the top left corner
    Source code(tar.gz)
    Source code(zip)
  • v1.3(Oct 19, 2018)

    Added

    • Added a seperate configuration file for the main script named settings.py
    • Added option to choose display within the setting.py file
    • Added German language support
    • Added option to choose language within the settings file
    • Added a working RGB to 3-Colour/2-Colour converter for jpegs, pngs and bmps for easier conversion of custom icons

    Fixed

    • Fixed some issues with a new bmp files which were not displayed correctly on the display

    Changed

    • Combined the software for the 2-colour and 3-Colour version
    • Split the main script into a settings file and the main programm itself.
    Source code(tar.gz)
    Source code(zip)
  • v1.2(Oct 6, 2018)

    [1.2] Early October

    Added

    • Added option to choose E-Paper version (2/3-Colour) at beginning of install
    • Added a file 'Info.txt' (home/pi/E-Paper-Master/Info.txt) which contains some basic info of the install on your system
    • Created a new folder in this repo named 'For-developers-only' to give access to developer stuff
    • Added an converter (in developers folder) for converting .jpeg, .png and .bmp files to useable .bmp files. (Currently in ALPHA phase!)
    • Created a Changelog
    • Created contribution guidelines

    Fixed

    • Fixed a critical problem to prevent further burn-ins (ghosting) and damage due to over-voltages.
    • 2-Colour E-Paper now uses specific (driver) files for the 2-Colour version

    Changed

    • Changed the main script slightly (stable.py) to allow easier input of personal variables
    • Improved the single-line installers (with and without debug)
    Source code(tar.gz)
    Source code(zip)
Owner
Ace
University student and maker. Hard- and software developer
Ace
It is a program that displays the current temperature of the GPU and CPU in real time and stores the temperature history.

HWLogger It is a program that displays the current temperature of the GPU and CPU in real time and stores the temperature history. Sample Usage Run HW

Xeros 0 Apr 5, 2022
Get input from OLED Joystick, Runs command, Displays output on OLED Screen (Great for P4wnP1)

p4wnsolo-joyterm Gets text input from OLED Joystick Runs the command you typed Displays output on OLED Screen (Great for P4wnP1 - even better on Raspb

PawnSolo 7 Dec 19, 2022
The software that powers the sPot: a 4th generation

This code is meant to accompany this project in which a Spotify client is built into an iPod "Classic" from 2004. Everything is meant to run on a Raspberry Pi Zero W.

Guy Dupont 683 Dec 28, 2022
a fork of the OnionShare software better optimized for lower spec lightweight machines and ARM processors

OnionShare-Optimized A fork of the OnionShare software better optimized for lower spec lightweight machines and ARM processors such as Raspberry Pi or

ALTPORT 4 Aug 5, 2021
OpenStickFirmware is open source software designed to handle any and all tasks required in a custom Fight Stick

OpenStickFirmware is open source software designed to handle any and all tasks required in a custom Fight Stick. It can handle being the brains of your entire stick, or just handling the bells and whistles while your Brook board talks to your console.

Sleep Unit 23 Nov 24, 2022
Poupool is an overflow swimming pool control software

Poupool - The swimming pool controller Poupool is a swimming pool control software. It is based on Transitions, Pykka and Paho MQTT. The user interfac

Cyril Jaquier 8 Jul 18, 2022
Mycodo is open source software for the Raspberry Pi that couples inputs and outputs in interesting ways to sense and manipulate the environment.

Mycodo Environmental Regulation System Latest version: 8.12.9 Mycodo is open source software for the Raspberry Pi that couples inputs and outputs in i

Kyle Gabriel 2.3k Dec 29, 2022
Python code written to utilize the Korlan usb2can hardware to send and receive data over the can-bus on a 2008 Nissan 350z

nissan_ecu_hacking Python code written to utilize the Korlan usb2can hardware to send and receive data over the can-bus on a 2008 Nissan 350z My goal

Liam Goss 11 Sep 24, 2022
A python library written for the raspberry pi.

A python package for using certain components on the raspberry pi.

Builder212 1 Nov 9, 2021
A dashboard for Raspberry Pi to display environmental weather data, rain radar, weather forecast, etc. written in Python

Weather Clock for Raspberry PI This project is a dashboard for Raspberry Pi to display environmental weather data, rain radar, weather forecast, etc.

Markus Geiger 1 May 1, 2022
A simple portable USB MIDI controller based on Raspberry-PI Pico and a 16-button keypad, written in Circuit Python

RPI-Pico-16-BTn-MIDI-Controller-using-CircuitPython A simple portable USB MIDI controller based on Raspberry-PI Pico, written in Circuit Python. Link

Rounak Dutta 3 Dec 4, 2022
An open source operating system designed primarily for the Raspberry Pi Pico, written entirely in MicroPython

PycOS An open source operating system designed primarily for the Raspberry Pi Pico, written entirely in MicroPython. "PycOS" is an combination of the

null 8 Oct 6, 2022
Scapy: the Python-based interactive packet manipulation program & library. Supports Python 2 & Python 3.

Scapy Scapy is a powerful Python-based interactive packet manipulation program and library. It is able to forge or decode packets of a wide number of

SecDev 8.3k Jan 8, 2023
Hook and simulate global mouse events in pure Python

mouse Take full control of your mouse with this small Python library. Hook global events, register hotkeys, simulate mouse movement and clicks, and mu

BoppreH 722 Dec 31, 2022
A module for cross-platform control of the mouse and keyboard in python that is simple to install and use.

PyUserInput PyUserInput is a group project so we've moved the project over to a group organization: https://github.com/PyUserInput/PyUserInput . That

Paul Barton 1k Dec 27, 2022
A Python class for controlling the Pimoroni RGB Keypad for Raspberry Pi Pico

rgbkeypad A Python class for controlling the Pimoroni RGB Keypad for the Raspberry Pi Pico. Compatible with MicroPython and CircuitPython. keypad = RG

Martin O'Hanlon 43 Nov 11, 2022
The ABR Control library is a python package for the control and path planning of robotic arms in real or simulated environments.

The ABR Control library is a python package for the control and path planning of robotic arms in real or simulated environments. ABR Control provides API's for the Mujoco, CoppeliaSim (formerly known as VREP), and Pygame simulation environments, and arm configuration files for one, two, and three-joint models, as well as the UR5 and Kinova Jaco 2 arms. Users can also easily extend the package to run with custom arm configurations. ABR Control auto-generates efficient C code for generating the control signals, or uses Mujoco's internal functions to carry out the calculations.

Applied Brain Research 277 Jan 5, 2023
Python Keylogger for Linux

A keylogger is a program that records your keystrokes, this program saves them in a .txt file on your local computer and, after 30 seconds (or as long as you want), it will close the .txt file and send you an email with everything that has been recorded. once the program is run, this cycle will last infinitely if you don't stop it.

Darío Mazzitelli 4 Jul 31, 2021
A Python script to monitor the latest block on an LCD.

PiHole-Monitoring A Python script to monitor the latest block on a lcd display. The first number represents the dns queries from the last 24h, the sec

Maxi 4 Dec 5, 2022