A simple display manager app for the WaveShare 2.7in e-Paper HAT
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 thefortune-mod
package)- Install
fortune-mod
with this command:sudo apt install fortune-mod
- Install
calendar
andtasks
- shows a list of upcoming events or todos from your calendars (seelocal_settings.py.example
)
weather
- shows the current weather
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.
There's also a message queue interface to control the screen from other apps. (example command line client available in cli.py
)
- First, enable the SPI inferface on the Pi if you haven't already.
- Then, install the Python requirements
sudo apt install python3-pip python3-pil python3-numpy python3-gpiozero
- Then install the drivers for Python
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:
git clone https://github.com/tsbarnes/epdtext.git ~/epdtext
- Install the remaining Python dependencies
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
tolocal_settings.py
and edit it to configureepdtext
- 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
- You can copy
-
Also optional is installing the systemd unit.
cp ~/epdtext/epdtext.service /etc/systemd/system
sudo systemctl enable epdtext
- First, enable the SPI inferface on the Pi if you haven't already.
- Then, install the Python requirements
sudo pacman -S python-pip python-pillow python-numpy python-gpiozero
- Then install the drivers for Python
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:
git clone https://github.com/tsbarnes/epdtext.git ~/epdtext
- Install the remaining Python dependencies
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
tolocal_settings.py
and edit it to configureepdtext
- 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
- You can copy
-
Also optional is installing the systemd unit.
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.
To start up the app without systemd
, run this command:
cd ~/epdtext
python3 app.py
To start the app with ´systemd´, run this:
sudo systemctl start epdtext
To reload using the CLI client:
cd ~/epdtext
./cli.py reload
To switch to the uptime screen with the CLI:
cd ~/epdtext
./cli.py screen uptime
There's now a web frontend to epdtext! Check out epdtext-web