Python 3 e-Paper (or any other HDMI/Composite display) Raspberry Pi Photo Frame with Google Photos and/or local storage (and more), weather information, Telegram Bot, Web User Interface, API and plugins.
- Pull photos (supports all formats including RAW, videos are ignored) from one or more albums in Google Photos (shared between users who can modify the content) and/or from local folder and automatically prepares them for attached display (automatic conversion to black-and-white or multicolor e-Paper with 6 different presets, color inversion, limited palette, etc. and various background colors)
- Non-HDMI e-Paper Waveshare/Pimoroni (black-and-white or multicolor) and SPI or any other HDMI, Composite displays supported
- With e-Paper display photo is shown even if power (or network) is down as e-Paper takes power only during refresh and doesn't have backlight - so no blank frames
- Works with Desktop or CLI (console) OS versions and even for Raspberry Pi Zero W (wireless) and offline Raspberry Pi Zero (when using local source) Raspberry Pi OS Lite
- Autonomic device, once configured can be left headless with system service supervising whole process that is auto recovering and auto starting by itself
- Simple activation for Google Photos access from ePiframe device (with guide) or any other device with Python
- No additional storage for Google Photos source or 3rd party software is required as only one and current photo is downloaded and processed per frame update
- When using local source it is possible to sync photos from almost all cloud/image hosting providers using 3rd party software
- Updating after time interval with option to change time per photo (by hot word in photo description)
- Configurable off hours (and HDMI display power control) per different days
- Photo filtering (by creation date, number of images), showing randomly, descendingly or ascendingly
- For vertical or horizontal frame position
- Can be controlled from Telegram Bot, embedded WebUI or API and can display weather information
- Can improve displayed photos on the fly (with powerful ImageMagick on board), i.e. normalization, contrast and brightness settings, gamma correction, etc.
- Extensible, customizable and open for 3rd party add-ons with ePiframe plugins
- Local source - (optional) use local folder as the photo source #16
- HDMI screens support - ePiframe with HDMI/Composite display #33
- ePiframe Plugins - (optional) install (or create yourself) custom plugins to enhance ePiframe functions #54
- Pimoroni and multicolor displays - support for Pimoroni Inky displays and all Waveshare (multicolor too) displays #73
- A Raspberry Pi with standard GPIO 40 pins (for e-Paper HAT). Models Zero (offline - when using local source), Zero W and Zero WH supported
- microSD card for Raspberry Pi OS, 4GB minimum
- e-Paper Waveshare SPI display, e-ink Pimoroni Inky display or any other HDMI, Composite display
- Raspberry Pi power supply (for e-Paper display 5V/3A is preferred as it is usually powered from RasPi HAT)
- Photo frame
You can use any photo frame for your ePiframe and cut the back to make place for the display connector and glue Raspberry Pi onto it. Also, a good passe-partout piece should frame your display and cover all unwanted elements.
Or you can 3D print a nice standing frame back with case for your Raspberry Pi and even passe-partout and assemble it with bought photo frame like I did here:
ePiframe is a very nice handmade gift idea: create an album that whole family can edit, decorate frame (e.g. decoupage) or print it, print family signatures or baby drawings on the back, put some wishes picture on the e-Paper display before handing it and many more.
Installation, configuration and API documentation can be found HERE
ePiframe supports custom plugins that can be created by anyone and can enhance ALL ePiframe functions (or even more). Check ePiframe_plugin for more information, documentation, examples, tutorial and available plugins list.
This project uses:
Google Photos API ▫️ Official Waveshare e-Paper libraries ▫️ Pandas Dataframe ▫️ ImageMagick ▫️ OpenWeather API ▫️ pyTelegramBotAPI ▫️ Flask ▫️ WTForms ▫️ FlaskWTF ▫️ Flask-Login ▫️ Bootstrap ▫️ bootstrap-dark-5 ▫️ jQuery ▫️ Dropzone.js ▫️ SQLite ▫️ RRDtool ▫️ javascriptRRD ▫️ Flot ▫️ FBI framebuffer imageviewer ▫️ Sortable ▫️ Official Pimoroni e-Paper libraries