Skip to content

Frontend + backend for Waveshark's Esp32 driver board & E Ink display utilizing PlatformIO & Angular

Notifications You must be signed in to change notification settings

FloppySoft/esp32-waveshark-epd-display-angular-wifi-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Esp32 + E Ink Picture Frame

Features

  • Upload pictures from any device in your network
  • Incl. dithering: Preview & adjust images before uploading
  • Image processing optimized for E Ink displays
    • Histogram equalization increases the look on E Ink displays
    • Exposure and contrast sliders can adjust any kind of suboptimal photos
  • Soon: Image Gallery and slide show mode

Overview

  • Picture frame webapp + server
  • More IOT! Deploy this honeypot easily in your own network!
  • Components
  • Frameworks
  • All files to be served are stored within the ESP32's SPIFFS
  • This project allows easily building all frontend artifacts into pre-compressed files with just one command, see build angular

TODO: Work in Progress

  • Embed more E Ink displays: Currently for the 7.5" 800x480 Waveshare display only.
  • Refactor hard coded parameters into system settings section
  • Implement an image gallery and slide show mode
  • Enable energy saving as well as self power off

Developer Setup

Arduino IDE

This project is migrated to PlatformIo. It allows using better tools and still uses the Angular framework and libraries. To setup the "Arduino" part of this project, see Setup PlatformIO

Setup PlatformIO

  • Install VSCode
  • Install the PlatformIO Plugin for VSCode
  • Install the ESP32 libs called "Espressif 32" in the PlatformIO Plugin section Platforms
  • No need to install other libs like driver, server etc. Platformio does it all. Awesome!
    • If you wanna maintain these dependencies, look for "lib_deps" in the platformio.ini file.
  • Change your ESP32's COM-Port in platformio.ini. You can't find a GUI menu for that settings unlike in the arduino ide.

Setup Angular

  • Install newest LTS Version of node.js from here
  • Install VSCode or your preferred editor
  • Install Angular CLI: Open the src/angular folder with VSCode and go into a terminal with ctrl + j and enter
    npm install -g @angular/cli
    
  • Install all dependencies for the angular project
    npm install
    
  • If commands are failing because 'ng.ps1 cannot be loaded because running scripts is disabled on this system', run
    Set-ExecutionPolicy Unrestricted -Scope CurrentUser
    

Local config files

Create a file src/arduino/epd_server/local_dev_config.h and fill with settings as follows.

#define wifiSettings

const char* ssid = "Your Wifi Name";
const char* password = "Your Wifi Password";

Build

Build Angular Frontend

Make sure your terminal is on the angular root path - that is src/angular/picture-frame-frontend - and run

npm run build-arduino

Arduino / Esp32

Debugging the ESP32

The following holds true using a FTDI2232HL "Minimodule", in this case a cheap $10 breakout with the device name Dual RS232-HS.

Notice that debugging won't work with the display/spi being enabled.

  • Install the platformio-ide plugin in VSCode.

  • Import the project into PlatformIO

  • Download & use Zadic to install the Dual RS232-HS (Interface 0) Device as WinUSB driver.

  • Edit platformio.ini to contain

    [env:esp32dev]
    platform = espressif32
    board = esp32dev
    framework = arduino
    upload_port = <YOUR COM PORT OF ESP32>
    monitor_speed = 115200
    upload_speed = 921600
    debug_tool = minimodule
    
  • Run Debugging once (F5) and let it fail. If it fails and does not find your debugger, change the debugger name in

    C:\Users\YOURNAME\.platformio\packages\tool-openocd-esp32\share\openocd\scripts\interface\ftdi\minimodule.cfg

    to

    ftdi_device_desc "Dual RS232-HS"
    

Debugger Connection

Although some docs indicate to only connect GND, debugging only works also connecting 3V3. Please check your own setup for this.

JTAG Name FTDI 2232HL Pin ESP32 Pin
TCK FTDI AD0 GPIO13
TDI FTDI AD1 GPIO12
TDO FTDI AD2 GPIO15
TMS FTDI AD3 GPIO14
RESET FTDI AC2 EN
GND FTDI GND GND
3V3 3V3

Dependencies

ESP32 Dependencies

Angular Dependencies

See package.json and 3rdpartylicenses.txt for details on the angular dependencies.

About

Frontend + backend for Waveshark's Esp32 driver board & E Ink display utilizing PlatformIO & Angular

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages