Giter VIP home page Giter VIP logo

paperframe's Introduction

PaperFrame, an E-Paper photo frame

Photo frame built on an ESP32 with an E-Paper display. The picture shown in the frame can be changed from a smartphone over a WiFi web interface

Detailed explaination on my website.

PaperFrame is nice !

Bill Of materials

For this project, I used only existing modules from Waveshare and some spare parts from my drawers.

  • 7.5inch E-Paper (B) E-Ink from Waveshare
    • black/white/red colors
    • 480x800px resolution
  • Universal e-Paper Raw Panel Driver Board from Waveshare too
    • ESP32 MCU from Espressif
    • 4MB ROM & 512kB RAM
    • WiFi and BLE capabilities
    • 3.3v or 5v power
    • E-Paper driving circuit included
  • 3x AA battery handler
    • Provides 4.5v, enough to make it work
  • Any 13x18cm photo frame you like

Software

All the MCU software is written in C, based on the excellent ESP-IDF. To avoid all the IDF installation, I used a devcontainer on VSCode, thanks to this guy! On the Web side, I used the standard trio HTML5/CSS3/JavaSript.

Image processing

The image taken from a camera is very different from the one an E-Paper display needs. My display needs a 480×800 pixels frame, with colors encoded on 2 bits (black/white and red/non-red). As the input image can be very large, it’s difficult to send it entirely to the ESP32 to process it. Then I decided to process the image in the browser, with some Javascript code.

First the image is rotated to landscape format if it’s higher than larger. The script crops it to a 5:3 ratio as on the display then downsizes it to a width of 800 pixels. Now that the image has the right size, the last step is to convert it to our very reduced colorspace. To do so, I used the Floyd-Steinberg dithering algorithm after the quantization process to have a nice result.

© BDeliers - 2023
Under Apache-2 License

paperframe's People

Contributors

bdeliers avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.