Repository navigation
EchoScope 0.16.0 — standalone original and radar visitors
The original EchoScope now offers aircraft photos, maps, airports, routes and
weather without running Docker. Each feature automatically prefers a capable
information server when one is configured. Both knobs also gain four optional
animated radar visitors.
Original EchoScope: more without a server
- Aircraft photos: look up the selected aircraft by registration through
Planespotters.net, decode baseline and progressive JPEG thumbnails locally,
and fit the picture alongside the existing aircraft details. Photographer
credit stays on screen;http://KNOB-IP/photolinks to the original photo. - Bounded photo caching: keep eight recent thumbnails in PSRAM for reuse for
one hour, with shorter negative/error caching and rate-limit backoff. Fetch
only for a visible details/logbook photo page, separate metadata/image work
between aircraft polls, and discard obsolete display results. Missing photos
leave the full text layout. The cache resets on reboot and does not use flash. - Maps: fetch OpenStreetMap tiles on demand for the current radar or airport
approach view. Project and colour them on the device, using the same subdued
palette as the information server. Circular edges blend into the radar
background, without the earlier square-edge patches. - Persistent map cache: retain PNG tiles in the existing LittleFS data
partition across reboots and application updates. Fresh tiles are kept for at
least seven days. “Preparing map” reports progress while radar remains usable;
tiles are not prefetched for unused ranges. OSM attribution remains visible. - Airports: include 1,153 worldwide large scheduled-service airports, with
runway geometry where available. Configure up to 32 custom locations using
CODE: longitude/latitude; custom entries override matching built-in codes.
The nearby menu includes up to nine airports within 300 km, and explicitly
selected airports remain accessible. Markers and the 20 km approach radar
work without the server. - Routes: query adsbdb directly for the selected callsign and cache recent
lookups. Unresolved callsigns or registrations show unavailable. These are
route records, not flight plans, scheduled arrivals or live ETAs. - Weather/clouds: query Open-Meteo for next-hour, today, three-day and
next-night cloud information. Standalone forecast times are labelled UTC. - Automatic provider choice: no “internal mode” switch is needed. An absent
server capability uses its local provider; failed photo, airport, weather and
route requests can fall back locally. Maps choose their provider through
server capability/health discovery.
Hold the original's knob for five seconds to open Setup. Leave Info server URL
blank for standalone operation, or retain it to prefer the server. Map and
built-in/custom airport settings are grouped under Maps and airports.
Space stations/pass predictions, the logbook, family-flight tracking/pickup and
the separate stargazing page still require the optional information server.
Cloud forecasts remain available in standalone Weather. Mini retains its smaller
standalone feature set; it does not gain the original's photos/maps/weather.
Both knobs: optional radar visitors
Add any of dr evil, nyan cat, santa or ufo to the callsign watchlist for
random appearances roughly one to three hours apart:
- Dr Evil's green-outline rocket with a faint trail.
- Nyan Cat with an animated rainbow trail.
- Santa's sleigh and moving reindeer, available year-round when enabled.
- A UFO that crosses, hovers with a faint beam, then accelerates away.
Each visit lasts 20 seconds. One visitor appears at a time, stays inside the radar
circle, and stops when leaving radar or sleeping. Visitors never enter aircraft
counts, alerts, MQTT data or the logbook, and never wake the screen.
Manual triggers work independently of the watchlist and do not require Setup:
curl -X POST -H 'X-EchoScope-Fun: nyan-cat' http://KNOB-IP/easter-eggUse dr-evil, santa or ufo for the other visitors. The radar must be awake and
visible; manual triggers share a 30-second cooldown. This is a LAN novelty
endpoint, separate from authenticated device control and firmware uploads.
See the visitor guide.
Information server
The existing server remains compatible; no database migration or mandatory Docker
update is needed for these features. Logbook encounter tests now use fixed UTC
fixtures so CI results do not depend on the time of day. The existing seven-day
server photo cache and logbook storage are unchanged.
Downloads and upgrading
Choose the image for your hardware. Original ESP32-S3 and Mini ESP32-C3 images
are not interchangeable.
| Device | Settings-preserving update | First installation | Checksums |
|---|---|---|---|
| Original ESP32-S3, 466×466 | echoscope-app-0.16.0.bin |
echoscope-merged.bin |
SHA256SUMS |
| Mini ESP32-C3, 240×240 | echoscope-mini-app-0.16.0.bin |
echoscope-mini-merged.bin |
MINI-SHA256SUMS |
Unversioned *-app.bin assets contain the same applications. Use application
images for updates that retain settings and map storage. Merged images are for
first installation and overwrite the configuration area. There is no partition
layout change in this release.
From an up-to-date checkout of main:
git switch main
git pull --ff-only
# Original: hold the knob for five seconds to unlock Setup first.
make upload IP=192.168.2.151
# Mini: use its actual USB data port; keep the knob released during reset.
make mini-upload PORT=/dev/ttyACM0Build only with make firmware or make mini-firmware. If updating the optional
server, run git pull --ff-only then make docker on its host and retain its
existing volumes. Publishing this release does not reflash either device.
Validation and limits
Both release firmware targets build. Original model, JSON/protocol, standalone
provider/photo, visitor and network-tool tests pass, as do Mini input/feed/feature
tests and the 55 information-server tests. Decoder tests cover progressive and
baseline JPEGs, colour/byte order, resizing, damaged/oversize inputs, attribution
and cache eviction/expiry. A real provider thumbnail decoded successfully on the
host, including under AddressSanitizer/UndefinedBehaviorSanitizer; photo hosts
verified with the device's trust roots and TLS settings.
Development firmware ran on both devices. The original's standalone maps were
exercised and its latest photo build was uploaded, booted and resumed live data.
Direct photo rendering/performance on the physical knob and the complete matrix
of provider failures, all map ranges and sleep during downloads have not yet been
recorded. See validation details.
Standalone maps use a conservative 2.64 MiB tile-cache budget. Only expired tiles
are pruned; if fresh tiles fill the cache, a new map may be unavailable until space
can be reclaimed. Nonempty unmountable storage is not automatically formatted.
Polar maps outside the supported Mercator area are unavailable. Public data and
thumbnail coverage depend on their providers. Provider terms and attribution
continue to apply; Open-Meteo's free hosted service is intended for non-commercial
use. No API keys are required by the standalone providers in this release.