A 3D-printable frame for a 7.5-inch e-ink display, plus a website to control what it shows.
Upload images through the website's calendar interface and choose one image for each day.
- 7.5-inch Waveshare e-ink display
- Raspberry Pi 3B+ with power supply and Wi-Fi connection
- 3D printer
- A server for the website
- Four screws to attach the Pi to the frame (head diameter: 5 mm, thread diameter: 3 mm, length: 5 mm)
Start the server with Docker and mount a directory to store the images:
docker run -d -p 80:1313 -v /your-inkday-data:/data ghcr.io/jflessau/inkday:latestImages will be resized to fit the frame (800x480 px).
- Create a new directory on your Pi.
- Copy
./frame/frame.pyand./frame/default.jpginto it. - Download this repository and place its
RaspberryPi_JetsonNano/python/libdirectory and all of its contents next toframe.pyanddefault.jpg. - Run
raspi-config, enable I2C under Interface Options → I2C, and then reboot the Pi. - Set the
SERVER_URLenvironment variable to the URL of the server (for example,http://localhost:80). - Run
python3 frame.py.
Your Pi should fetch images from the server and update the image shown on the e-ink display once per day.
If there is no image for the current day, the default image will be displayed.
In case you want to start frae.py`` on boot, have a look at ./frame/inkday.service. Replace the SERVER_URLand adjust the path inExecStartand then copy the file to/etc/systemd/system/` on your Pi.
Load the service with sudo systemctl daemon-reload and start it with sudo systemctl start inkday.
Inspect the status with sudo systemctl status inkday.
Print ./frame/inkday-frame.stl (it is a single piece; supports are optional).
- Slide the screen into the frame with its cable pointing downward.
- Connect the screen's cable to the driver.
- Attach the Pi to the frame with four screws.
- Connect the driver to the Pi.
- Connect the Pi to a power source.