Code Monkey home page Code Monkey logo

einkcalendar's Introduction

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:

(back to top)

Getting Started

Prerequisites

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

  • Enable the SPI interface on your raspi
    sudo raspi-config
    # Choose Interfacing Options -> SPI -> Yes  to enable SPI interface
  • Install BCM2835 libraries
    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

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 - @Louis_D_ - [email protected]

(back to top)

Acknowledgments

(back to top)

einkcalendar's People

Contributors

13bytes avatar guysimard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

einkcalendar's Issues

Google Calendar

Hey there,

I didn't want to make this an issue but the contact me button just did not want to work for me lol.

I have a few programs that auto-import into my Google Calendar, Is there any way that I could add my GCal to this program?

I was unable to find a webcal link for my GCal.

Is there anyway in hell I could use Google Calendar for this?

Thanks!

datetime: offset-naive and offset-aware

I'm giving this a shot and running into an issue - it doesn't render any calendar events for me. I think it's because some events on my iCal calendar have time zone information associated with them.

Any ideas?

$ ./run_calendar.sh
INFO:app:2022-09-26 00:10:13.529526
INFO:app:Retrieving calendar infos
CRITICAL:app:can't compare offset-naive and offset-aware datetimes
INFO:app:Exporting finial images
INFO:app:Init display
INFO:app:Writing on display
INFO:app:Set display to sleep-mode

CALDAV without SSL / run on a different display?

I tried to run you application with a 5in83b_V2 display. So I adapted the few lines (see hansu@309d411).

As I am running the CalDAV server on the local network I get a SSLError which complains about the certificate (what was to be expected).

So I tried http:// instead in the CALDAV_CONTACT_URL which makes the application run without errors or warnings.

My question at this point - does your application display something even with no connection or no data from the calendar?

And can you please clarify why I need I WEBDAV_CALENDAR_URL and I CALDAV_CONTACT_URL ?
THanks!

RuntimeError regarding GPIO.setmode

I am having trouble running "run-calendar.sh" as it gives the following error:

RuntimeError: Please set pin numbering mode using GPIO.setmode(GPIO.BOARD) or GPIO.setmode(GPIO.BCM)

Please forgive me ahead of time if this is a stupid question.

Sincerely,
David.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.