Skip to content

ePiframe is an e-Paper (or HDMI, Composite display) Raspberry Pi Photo Frame with Google Photos and more

License

Notifications You must be signed in to change notification settings

MikeGawi/ePiframe

Repository files navigation

ePiframe

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

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:

Printed back (black) of 13x18cm (5"x7") frame for 7.5" screen with passe-partout (white)

Thing files

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 HERE

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 ▫️ 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