This project provides a Flask-based web interface for uploading and selecting images to display on a Pimoroni Inky Impression 7.3" e-paper display. It allows users to:
- Upload images via a web interface.
- View a gallery of previously uploaded images.
- Click an image thumbnail to set it as the active display on the Inky Impression.
✅ Upload images through a web interface.
✅ Generate thumbnails for easy selection.
✅ Auto-rotate images if necessary.
✅ Web-based control for selecting images.
git clone https://github.com/hannahapuan/inky-display.git
cd inky-displayEnsure you have Python 3 installed, then run:
pip install -r requirements.txtmkdir -p uploads/thumbnails4. (Optional) Add to startup script (this specifies the impressions7.3 inky screen for resolution purposes)
Create/edit /etc/rc.local
#!/bin/bash
. /home/admin/.virtualenvs/pimoroni/bin/activate
python3 /home/admin/file_uploader.py --type=impressions73 >> /home/admin/log.txt 2>&1 &
exit 0This specifies the impression73 screen, it can be changed (refer to inky documentation for values)
source /home/admin/.virtualenvs/pimoroni/bin/activate
python3 /home/admin/file_uploader.py --type=impressions73Once the server is running, open a browser and go to:
http://<YOUR_RASPBERRY_PI_IP>:8080
Example:
http://192.168.1.100:8080
- Select an image from your computer.
- Click Upload.
- The image will be stored in the
uploads/folder, and a thumbnail will be generated.
- Click on any thumbnail from the gallery.
- The selected image will be resized and displayed on the Inky Impression.
inky-image-uploader/
│── static/ # CSS and other static assets
│── templates/
│ ├── index.html # Web interface
│── uploads/ # Stores uploaded images
│── uploads/thumbnails/ # Stores generated thumbnails
│── app.py # Flask application
│── requirements.txt # Python dependencies
|── disable.sh # Disables unnecessary Raspberry Pi hardware for battery saving
│── README.md # Project documentation
- Ensure all dependencies are installed:
pip install -r requirements.txt
- Try running Flask with
sudoif permissions are an issue.
- Make sure images are stored in
uploads/. - Restart the Flask app.
- Ensure the Inky Impression is properly connected.
- Try running:
This will confirm if the display is working.
python -c "from inky.auto import auto; inky = auto(ask_user=True, verbose=True); inky.show()"
Run:
hostname -IOr check your router's admin panel.
- 🔄 Auto-refresh gallery after an upload.
- 🛠️ Delete uploaded images from the web UI.
- 🌐 Add support for remote image uploads.
Enjoy using your Inky Impression as a dynamic e-paper display! 🎉