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