// the find
lmarzen/esp32-weather-epd
A low-power E-Paper weather display powered by an ESP32 microcontroller. Utilizes the OpenWeatherMap API.
A firmware project for a 7.5" e-paper weather display driven by an ESP32, pulling data from OpenWeatherMap's One Call API and a local BME280 sensor. This is a polished maker project — not a library, not a framework — aimed at people who want to build a specific physical thing and are comfortable with PlatformIO and basic soldering.
The power management is genuinely well-engineered: 14μA sleep current and 6–12 months on a 5000mAh cell is real, not aspirational, and the tiered low-battery sleep intervals (30min → 120min → hibernate) show someone actually thought through the failure modes. Multi-panel support across Waveshare and Good Display variants, including 7-color ACeP, is handled cleanly without forking the codebase. The setup documentation is unusually thorough for a maker project — wiring diagrams, switch positions, JST polarity warning, download-mode troubleshooting — the kind of stuff that saves hours of forum-diving. The icon and font pipeline (SVG → PNG → Adafruit GFX header) is scripted and reproducible, so changing the display assets isn't a manual nightmare.
Hard dependency on OpenWeatherMap One Call 3.0 is the biggest adoption risk — that API requires a separate billing subscription with a credit card on file, even for free-tier usage, and OWM has a history of breaking API compatibility. No abstraction layer means swapping to an alternative weather provider (Open-Meteo, Pirate Weather) requires touching core fetch logic throughout. The configuration is split across two files (config.cpp and config.h) with WiFi credentials and API keys stored in source — fine for a personal build, terrible if you ever want to share a binary or submit a PR without scrubbing secrets. The build produces a single monolithic firmware with no OTA update path, so iterating on config changes means physically connecting USB every time.