EPiframe
ePiframe is an e-Paper (or HDMI, Composite display) Raspberry Pi Photo Frame with Google Photos and more
Install / Use
/learn @MikeGawi/EPiframeREADME
ePiframe
<img align="right" src="https://github.com/MikeGawi/ePiframe/blob/master/docs/assets/logo.png">❗❗❗ Due to changes to the Google Photos API, only the option to display photos from a local source is currently available. More on this in issue #114. ❗❗❗
<img src="https://github.com/MikeGawi/ePiframe/blob/master/docs/assets/badge.svg"> <img src="https://github.com/MikeGawi/ePiframe/blob/master/docs/assets/cc_badge.svg"> <img src="https://github.com/MikeGawi/ePiframe/blob/master/docs/assets/black_badge.svg">
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.
Main features
- 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
Newest features 🎉
- 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
Hardware required
<a href="http://www.raspberrypi.org"><img width="100" align="right" src="https://github.com/MikeGawi/ePiframe/blob/master/docs/assets/RPi-Logo.png"></a>
- 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
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:
<div align="center">|<img src="https://github.com/MikeGawi/ePiframe/blob/master/docs/assets/frame1.jpg" width="500"/>| |:--:| |Printed back (black) of 13x18cm (5"x7") frame for 7.5" screen with passe-partout (white)|
</div>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
Installation, configuration and API documentation can be found <font size="+2"><b>HERE</b></font>
Plugins
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.
Resources
This project uses:
Google Photos API :white_small_square: Official Waveshare e-Paper libraries :white_small_square: Pandas Dataframe :white_small_square: ImageMagick :white_small_square: OpenWeather API :white_small_square: pyTelegramBotAPI :white_small_square: Flask :white_small_square: WTForms :white_small_square: FlaskWTF :white_small_square: Flask-Login :white_small_square: Bootstrap :white_small_square: bootstrap-dark-5 :white_small_square: jQuery :white_small_square: Dropzone.js :white_small_square: SQLite :white_small_square: RRDtool :white_small_square: javascriptRRD :white_small_square: Flot :white_small_square: FBI framebuffer imageviewer :white_small_square: Sortable :white_small_square: Official Pimoroni e-Paper libraries
