InkCast

Description
Open-source firmware + 3D-printed enclosure for a 3.97" e-paper weather display. Built around a LILYGO T-Energy-S3 with an 18650 cell.

Highlights

  • Large 3.97" 800x480 e-paper display
  • Long battery life with a default 2-hour refresh cycle, designed for about 5-6 mAh/day and up to about 1 year on a 2000 mAh cell
  • Current weather, 48-hour temperature/precipitation chart, and 6-day forecast
  • Built-in web admin for Wi-Fi, coordinates, weather provider, API key, and sleep interval
  • Two weather backends: OpenWeatherMap One Call 3.0 and Open-Meteo
  • Browser-based WASM simulator built from the real C++ display renderer
  • Graceful failure handling on e-ink: the last valid weather screen stays visible if an update fails
  • 30-day sunny-days counter stored in NVS
  • 3D-printed enclosure with external access to USB-C and the power switch

Technical Notes

  • The display renderer is shared between firmware and simulator: the same C++ layout code compiles to WebAssembly via Emscripten
  • The firmware uses real low-power sleep behavior rather than just delaying between updates
  • Display GPIOs are held through deep sleep to reduce parasitic current on the e-paper interface
  • If saved Wi-Fi fails, the device can fall back to AP mode for recovery and setup
  • The UI is a real dashboard layout, not just a text readout: current conditions, chart, forecast, battery, Wi-Fi, pressure trend, wind, sunrise, and sunset

Hardware

  • LILYGO T-Energy-S3
  • GDEM0397T81P 3.97" e-paper (800x480)
  • DESPI-C02 adapter board
  • 18650 cell
  • 3D-printed enclosure

Needs

  • 4x M3 heat-set inserts
  • 4x M2x6
  • 4x M3x8 + 4x M3x10 or 8x M3x8
  • Thick transparent 3M double-sided mounting tape for attaching the DESPI-C02 board to the support frame

Project
https://github.com/Blisart/InkCast