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 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" Select your desired format and language. It needs to be installed on your device. (In 95% of cases it already is - as it's you system-langauge. If not, take a look at the 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/ePaper/run_calendar.sh acordingly)

    Make run_calendar.sh executable

    chmod +x /home/pi/ePaper/run_calendar.sh

    and add it to crontab, as follows:

    crontab -e

    and add following line:
    @reboot sleep 60 && /home/pi/ePaper/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)

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.