A Cheap Yellow Display pointed at this site's own data instead of a third-party service - no cloud weather API, no external dashboard, just the CYD's screen polling larsi.org's own weather and sensors APIs directly for one chosen station's latest readings and history.

Source at github.com/larsi-org/cyd-station. ☕ If you build one, consider sponsoring.

One Arduino sketch, cyd-station.ino - a read-only API client, no credentials required beyond WiFi. It polls one of larsi.org's weather or sensors sections for a chosen station's channel list and latest readings, and shows them on the display. Both sections speak the same API shape (channel list, then latest values), so which one a given device shows is purely a matter of which server URL it's configured with, not a compile-time choice - one sketch, flashed identically onto every board.

A Display setting picks what auto-cycles onto the screen (10 seconds per page): paginated text pages listing every channel's latest value and age, a single page with a stack of 3 mini history graphs (one full-width row per configurable channel), or both in sequence. Each graph auto-scales its own y-axis from its fetched window's min/max, and the lookback window itself is picked per section - 6 hours for sensors' faster logging rate, 3 days for weather's slower one - so both land roughly one sample per column across the graph's width. An Inverse Display option swaps the default dark background for a white one, with its own set of darker text colors chosen for contrast rather than just reusing the dark-mode palette as-is.

No secrets baked in at build time - setup happens entirely over plain web forms, no serial monitor needed, in two independent stages:

Both stages save independently and restart the device; settings persist across reboots and firmware updates.

Same CYD wiring as the Internet Radio build (GPIO 14/13/12 SPI, not the ESP32's default VSPI pins). No touch, no audio, no external parts needed - just the display. Verifies larsi.org's TLS certificate against a small curated CA bundle rather than skipping verification, copied in from the same source the sensor-node library uses.