/device-epd

E-Paper Display Device

Primary LanguageCMIT LicenseMIT

paperdash.io

Software License Generic badge Generic badge Generic badge Generic badge MadeWithVueJs.com shield

ForTheBadge built-with-love

Open Source E-Paper Display Platform

  • 🌍 Website - Learn more about paperdash.io
  • 📡 Discover - Find devices in your local network
  • 🛠 Case - 3D Model
  • 👍 Like us on Instagram

Face Calendar Face Picture APP

Goals

  • Make E-Paper displays accessible to all kind of developers
  • Easy and always update able
  • Usable also without developer background
  • Deliver the best user experience
  • Should work Out-of-the-box
  • Using standard parts to built

Features

Firmware

  • OTA update
  • REST API
  • JPEG decoder (some limitations)
  • PNG decoder (work in progress)
  • Out-of-the-box faces
    • Current weather condition and forecast (https://openweathermap.org/ api key requried)
    • Calendar view with random picture
    • Today view with fullscreen random picture
  • Wifi STA fallback if connection failed

Web APP

  • ESP-32 optimized vue.js Web APP
  • Material Design Framework
  • First run setup wizard
  • Screen preview of epd
  • Basic PWA possibility

API examples

# Get device stats as json
$ curl http://paperdash-epd.local/stats

# Download current image display
$ curl http://paperdash-epd.local/api/device/screen > current.bmp

# Send an image to display
$ curl -F '=@data/faceToday.jpg;filename=dithering' http://paperdash-epd.local/api/device/screen

Getting started

Necessary parts to build the project

ESP-32 firmware

The whole architecture was inspired from the arduino concept with a setup() and loop() function. This is the reason why everything is broken down into separate modules below /lib. Each module has basically a setupXXX() and loopXXX() method.

Build (with PlatformIO)

$ pio run --environment esp32

# update esp
$ platformio run --target upload

Web APP

Based on state of the art technologie Vue.js + Vuetify + Webpack

Build

$ yarn --cwd app
$ yarn --cwd app build

# update esp
$ platformio run --target uploadfs

# alternative, create spiffs.bin
$ platformio run --target buildfs