Skip to content

EchoScope 0.16.0 — standalone original and radar visitors

Latest

Choose a tag to compare

@MrPsyware MrPsyware released this 05 Oct 22:08

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/photo links 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-egg

Use 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/ttyACM0

Build 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.

Standalone guide ·
Mini guide ·
All changes since 0.15.0