This app runs on a TickerXL, a nice piece of hardware by Veeb. It's a Raspberry Pi Zero WH that controls an e-paper screen of 1448 x 1072 pixel with 16 levels of gray, driven by the IT8951.
It's inspired by and partially forks the following projects.
- veebch/stonks (GPL-3.0) for the code to properly manage the IT8951 controller and the button. It seems to have moved to veebch/btcticker.
- speedyg0nz/MagInkCal (Apache-2.0) for the idea and code to create HTML pages, render them in a headless browser and create a screenshot that is finally displayed on the e-paper screen.
Some resources:
- Updating your TickerXL.
- gnzzz/IT8951. node.js package for e-papers controlled by IT8951.
- speedyg0nz/MagInkCal. E-Ink Magic Calendar that automatically syncs to Google Calendar.
- Simple e-ink dashboard.
- txoof/epd_display. E Paper Display Loop
Install Raspberry Pi OS on the microsd card. Pre-configure it to connect to the WiFi network and allow SSH connections.
Once it is running:
# Update the OS
sudo apt-get update
sudo apt-get upgrade
sudo apt install git python3-pip chromium-chromedriver
sudo apt remove python3-rpi.gpio
# Install the screen library
sudo raspi-config nonint do_spi 0
git clone https://github.com/GregDMeyer/IT8951.git
cd IT8951
sudo pip3.10 install ./[rpi] --break-system-packages
cd ..
# Clone and install dependencies
git clone https://github.com/qligier/Screeny
cd ~/screeny
pip install -r requirements.txt --break-system-packages
cp config_example.yaml config.yaml
# We can now run Screeny!
python main.py
Add autostart:
cat <<EOF | sudo tee /etc/systemd/system/screeny.service
[Unit]
Description=screeny
After=network.target
[Service]
ExecStart=/usr/bin/python -u /home/quentin/screeny/main.py
WorkingDirectory=/home/quentin/screeny/
StandardOutput=inherit
StandardError=inherit
Restart=always
User=quentin
[Install]
WantedBy=multi-user.target
EOF
Start the service
sudo systemctl enable screeny.service
sudo systemctl start screeny.service