Birding edition: eBird sightings radar + data screens (FEATURE_BIRDING)#26
Merged
Conversation
A fifth compile-time product from the same boards + shared infra, alongside the radar / EAM / Spacescope / Seismic editions: notable bird sightings near you, live from the Cornell eBird API. - src/birding/: Models (eBird obs/hotspot parsers + haversine), FeedClient (one worker over three eBird endpoints -- recent notable nearby, all recent nearby, nearby hotspots -- all dist/maxResults bounded), Manager, Screens, Theme (leaf-green palette, gold accent for notable/rare). - BYO key: the user supplies their own free eBird token (config "ebird-key", sent as X-eBirdApiToken; never baked in), masked on the config page like the OpenSky secret (*-mask on GET, skip-if-masked on save). Nothing is polled until a key AND a location are set. - UI is a hybrid: dwell-timed auto-rotation that skips empty feeds + swipe nav (Space/EAM shell) PLUS a tap-to-inspect detail card (Seismic/Aviation radar). Screens: sightings Radar, Notable, Big-Day, Hotspot, Targets, Splash, Clock. Static range rings, so main.cpp gates the PPI sweep out (with EAM/Space/Seismic). - ntfy alerts on two toggles (notable sighting / target species), seeded at boot via a seen-species set so the backlog never fires. - Config #elif FEATURE_BIRDING branch (with key masking); new [env:blipscope-birding-s3-146] with its own OTA channel; CI row; docs. Verified: all five envs (birding, radar, eam, space, seismic) build clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Jun 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a fifth edition built from the same boards and shared infra as the radar / EAM / Spacescope / Seismic: notable bird sightings near you, live from eBird. Rebased onto current
main(so it stacks cleanly on the just-merged Seismic edition).UI — a hybrid (radar + cards and rotating data screens)
Dwell-timed auto-rotation that skips empty feeds + swipe-to-navigate (the Space/EAM shell) plus a tap-to-inspect detail-card overlay (the Seismic/Aviation radar). Screens:
Data — BYO eBird key, no baked-in secret
The user enters their own free eBird token (config
ebird-key, sent asX-eBirdApiToken), masked on the config page exactly like the OpenSky secret (*-mask on GET, skip-if-masked on save). One worker over three endpoints (recent notable / all recent / hotspots), alldist/maxResults-bounded. Nothing is polled until a key and a location are set.Alerts
ntfy on two toggles — a notable/rare sighting nearby, or a target species appears — seeded at boot via a seen-species set so the backlog never fires.
Integration
[env:blipscope-birding-s3-146]·#elif defined(FEATURE_BIRDING)config branch (with key masking) · own OTA channelfirmware-birding-s3-146.bin· CI matrix row · RELEASING.md + CLAUDE.md notes.Verification
All five envs build clean on this branch:
blipscope-birding-s3-146,blipscope-s3-146(radar),blipscope-eam-s3-146,blipscope-space-s3-146,blipscope-seismic-s3-146.🤖 Generated with Claude Code