An open API service indexing awesome lists of open source software.

https://github.com/arthurgassner/time-teller

A literature clock displaying a quote every minute, powered by a Raspberry Pi Zero 2W and an e-ink screen.
https://github.com/arthurgassner/time-teller

3d-printing clock literarture-clock literature python raspberry-pi-zero-2-w waveshare-eink

Last synced: 9 months ago
JSON representation

A literature clock displaying a quote every minute, powered by a Raspberry Pi Zero 2W and an e-ink screen.

Awesome Lists containing this project

README

          

# :clock10: Time Teller


πŸš€ Detailed write-up πŸš€



This repo contains the code powering the _Time Teller_, a literature clock driven by a Raspberry Pi Zero 2W.

---

# How to install

> [!IMPORTANT]
> This script is meant to be run on a RPi Zero 2W hooked to a Waveshare’s 7.5inch e-Paper screen.
> To prepare the RPi correctly, please follow the [detailed write-up](https://time-teller.arthurgassner.ch).

1. Install [`uv`](https://docs.astral.sh/uv/)
2. Create a virtual environment with `uv venv --system-site-packages`

> [!IMPORTANT]
> The `--system-site-packages` gives our virtual environment access to system-wide packages.
> This is necessary because this script relies on the RPi's GPIO, and hence on `gpiozero` -- a system-wide package.

3. Install the necessary libraries with

```bash
uv pip install -r requirements.txt
```

4. Ensure you're able to print to the screen by running `uv run hello_world.py`

# Content

```bash
β”œβ”€β”€ data/ # Where the fonts & quotes are stored, sourced from https://github.com/JohannesNE/literature-clock and https://fonts.google.com/
β”œβ”€β”€ 3d-models/ # 3D models of the cases
β”œβ”€β”€ notebooks/ # Notebooks used to prepare the data and develop
β”œβ”€β”€ utils/ # Utils for the script to run
β”œβ”€β”€ tests/ # pytest
β”œβ”€β”€ main.py # Main script
β”œβ”€β”€ hello_world.py # Script displaying "Hello World" on the screen
β”œβ”€β”€ full_refresh.py # Script performing a full refresh on the screen (see https://time-teller.arthurgassner.ch/#step-3-display-something-on-the-screen)
β”œβ”€β”€ partial_refresh.py # Script performing a partial refresh on the screen (see https://time-teller.arthurgassner.ch/#step-3-display-something-on-the-screen)
β”œβ”€β”€ clear_screen.py # Script clearing the screen
└── README.md
```