https://github.com/tsbarnes/epdtext
A simple display manager app for the WaveShare 2.7in e-Paper Display
https://github.com/tsbarnes/epdtext
affirmations archlinuxarm calendar e-paper epaper epaper-hat epd epd2in7b fortune-cookies python python3 raspberry-pi raspberrypi raspbian system-information tasks waveshare
Last synced: about 2 months ago
JSON representation
A simple display manager app for the WaveShare 2.7in e-Paper Display
- Host: GitHub
- URL: https://github.com/tsbarnes/epdtext
- Owner: tsbarnes
- Created: 2021-08-29T22:53:32.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-06-19T20:31:39.000Z (over 3 years ago)
- Last Synced: 2025-06-28T17:07:36.012Z (4 months ago)
- Topics: affirmations, archlinuxarm, calendar, e-paper, epaper, epaper-hat, epd, epd2in7b, fortune-cookies, python, python3, raspberry-pi, raspberrypi, raspbian, system-information, tasks, waveshare
- Language: Python
- Homepage:
- Size: 3.7 MB
- Stars: 20
- Watchers: 4
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# epdtext
A simple display manager app for the [WaveShare 2.7in e-Paper HAT](https://www.waveshare.com/2.7inch-e-paper-hat.htm)

## Screens
The app provides a number of screens that can be displayed on the e-paper HAT, and allows switching between them with the builtin buttons.
The included screens are:
* `dashboard` - a dashboard widget showing the current weather, next calendar event, and next task

* `uptime` - a system info viewer

* `affirmations` - display positive affirmations (or whatever kind you want, really)

* `fortune` - shows a random fortune from the fortune database (requires the `fortune-mod` package)
* Install `fortune-mod` with this command: `sudo apt install fortune-mod`
* `calendar` and `tasks` - shows a list of upcoming events or todos from your calendars (see `local_settings.py.example`)
* `weather` - shows the current weather
## Making your own
The framework is extensible, so you can write your own screens as well, each screen is a Python module providing a `Screen` class that inherits from `AbstractScreen`.
For more information on how to create your own screens, check the wiki.
## Message queue
There's also a message queue interface to control the screen from other apps. (example command line client available in `cli.py`)
## Setup on Raspberry Pi OS
* First, enable the SPI inferface on the Pi if you haven't already.
* Then, install the Python requirements```shell
sudo apt install python3-pip python3-pil python3-numpy python3-gpiozero
```* Then install the drivers for Python
```shell
git clone https://github.com/waveshare/e-Paper ~/e-Paper
cd ~/e-Paper/RaspberryPi_JetsonNano/python
python3 setup.py install
```* Check out the code if you haven't already:
```shell
git clone https://github.com/tsbarnes/epdtext.git ~/epdtext
```* Install the remaining Python dependencies
```shell
cd ~/epdtext
sudo pip3 install -r requirements.txt
```* Then (optionally) create local_settings.py and add your settings overrides there.
* You can copy `local_settings.py.example` to `local_settings.py` and edit it to configure `epdtext`
* **NOTE**: if you're using a different Waveshare screen, you can use the `DRIVER` setting to configure it
* See the wiki for more configuration help* Also optional is installing the systemd unit.
```shell
cp ~/epdtext/epdtext.service /etc/systemd/system
sudo systemctl enable epdtext
```## Setup on Arch Linux ARM
* First, enable the SPI inferface on the Pi if you haven't already.
* Then, install the Python requirements```shell
sudo pacman -S python-pip python-pillow python-numpy python-gpiozero
```* Then install the drivers for Python
```shell
git clone https://github.com/waveshare/e-Paper ~/e-Paper
cd ~/e-Paper/RaspberryPi_JetsonNano/python
python3 setup.py install
```* Check out the code if you haven't already:
```shell
git clone https://github.com/tsbarnes/epdtext.git ~/epdtext
```* Install the remaining Python dependencies
```shell
cd ~/epdtext
sudo pip install -r requirements.txt
```* Then (optionally) create local_settings.py and add your settings overrides there.
* You can copy `local_settings.py.example` to `local_settings.py` and edit it to configure `epdtext`
* **NOTE**: if you're using a different Waveshare screen, you can use the `DRIVER` setting to configure it
* If you don't set the `LOGO` setting, it defaults to the Arch logo on Arch Linux ARM
* See the wiki for more configuration help* Also optional is installing the systemd unit.
```shell
cp ~/epdtext/epdtext.service /etc/systemd/system
```You'll need to edit the `/etc/systemd/system/epdtext.service` file and change `/home/pi` to `/home/alarm`
(or the home directory of the user you checked it out as) and change the User line to root.Also of note, on Arch Linux ARM, epdtext must be run as root.
## Usage
To start up the app without `systemd`, run this command:
```shell
cd ~/epdtext
python3 app.py
```To start the app with ´systemd´, run this:
```shell
sudo systemctl start epdtext
```To reload using the CLI client:
```shell
cd ~/epdtext
./cli.py reload
```To switch to the uptime screen with the CLI:
```shell
cd ~/epdtext
./cli.py screen uptime
```## epdtext-web
There's now a web frontend to epdtext! Check out [epdtext-web](https://github.com/tsbarnes/epdtext-web)