-
Notifications
You must be signed in to change notification settings - Fork 0
Missileer
The Missileer turns your Valar Scope into an EAM monitor β a desk readout for the U.S. Air Force High Frequency Global Communications System (HFGCS) and the Emergency Action Messages (EAMs) and Skyking broadcasts that move across it. (STRATCOM β U.S. Strategic Command β is the authority these messages are issued under.) Instead of plotting aircraft, the screen becomes a command-console display of the latest traffic, how busy the net is, recent Skyking codewords, HF propagation, military air activity, and more.
It's a separate firmware build for the same Valar Scopes hardware: flash the Missileer firmware and the device boots into the monitor instead of the radar. Everything else you already know carries over β Wi-Fi setup, the web config page, persistent storage, over-the-air updates, and ntfy alerts. The big round AMOLED is its natural home, but it scales to any Valar Scopes display.
Where the data comes from. The EAM build is feed-agnostic: it polls one backend service (the valar-eam-feed, set by URL in config) that has already collected and normalised the data, over a handful of endpoints β
/eam/latest,/eam/skykings,/eam/tempo,/eam/stats,/eam/codewords,/propagation,/launches/icbm, and/status/milair. The device itself doesn't run an SDR or decode HF β it displays what the feed reports. Each endpoint has its own polling interval, bounded retention, and exponential backoff (capped at 10 minutes) that keeps the last good data on screen through a hiccup. The one exception to "feed-agnostic" is the optional command-post watch, which can query your own OpenSky account directly from the device.
The monitor auto-rotates through the screens below (dwelling ~8 s on each, pausing ~30 s after any touch). Swipe left / right to move between them; a screen whose feed has no data is skipped until there's something to show, and each one degrades gracefully β if its endpoint is empty or unreachable it simply says "no data".
| Screen | What it shows |
|---|---|
| π Ticker | The latest EAM. A header line gives the frequency, how long ago it was heard, and its length; the body is the message broken into its phonetic groups, one per line, auto-scrolling if it's long. A fresh message shows a blinking NEW badge for a short window. A Skyking broadcast shows the word SKYKING and its codeword instead of a group body. A questionable copy is flagged "Β± copy?". |
| π Tempo | How many EAMs have gone out today versus the normal baseline, drawn as a dial, labelled quiet / normal / elevated / high with a ratio like "~3Γ normal" β a restrained colour shift, not a klaxon. Below the dial, a per-channel bar strip shows today's count on each HFGCS frequency (in MHz), the busiest highlighted and an accent caret marking the channel the Propagation screen currently recommends. |
| π Activity (24H UTC) | A polar histogram of today's EAM count by UTC hour-of-day β hour 00 at the top, growing clockwise, the current hour drawn in the accent colour, with the day's total in the hub. A glance shows when the net is busy. |
| π€ Codewords | Recent Skyking codewords, with the ones that are new to your device marked (others show a "ΓN" repeat count), and a running "seen this month" count. |
| π©οΈ Command post | Whether an airborne command post (E-4B "Nightwatch" / E-6B Mercury) is currently broadcasting β its type, callsign, and rough bearing/distance when a position is known. "None up" otherwise. See below. |
| How many notable military aircraft are transmitting ADS-B right now, with a paginated list (3 at a time, rotating) of category (e.g. AWACS (E-3)), callsign, and bearing/range. Footer caveat "(ADS-B only)"; "none up" when the picture is empty. | |
| π» Propagation | The best HFGCS frequency to listen on right now and why, plus the solar flux index and K-index, crediting the solar-data source. When conditions are disturbed, a space-weather banner appears across the top β RADIO BLACKOUT / HF DEGRADED or GEO STORM Gn β warn- or alert-tinted. |
| π ICBM window | The next scheduled missile-test ("Glory Trip") window β designation, a live Tβ countdown to the window opening, the site, and a source credit. Reads IN WINDOW once it opens; hidden when nothing is upcoming. |
| π Reference | A static "what am I looking at" card: the HFGCS primary frequencies (4724 / 8992 / 11175 / 15016 kHz), what EAM and SKYKING mean, and the tempo legend. Always available (no feed needed), so the rotation is never empty. |
| π Zulu clock | The idle screen β a six-digit red seven-segment UTC clock (HH:MM:SS, 24-hour), drawn as real segments so it reads like an LED panel. Honours the auto-dim at night, and the colons can blink (off by default). Between ticks it rotates a brief ambient line β today's EAM count, the longest quiet gap, your logbook total ("N logged"), and two bundled sample HFGCS heritage notes (placeholder text, not live or dated). |
The command-post screen tracks whether an airborne command post is up. You choose where that comes from:
| Source | What it does | Setup |
|---|---|---|
| adsb.lol β via the feed (default) | The backend reports command-post status for you, already normalised (/status/abncp). |
None. |
| OpenSky β your account | Your device queries OpenSky directly for a hex watchlist (it falls back to a built-in E-4B "Nightwatch" seed list when you leave the watchlist blank; add E-6B hexes as you like). | Enter your own OpenSky client ID and secret. |
The OpenSky option uses your credentials only β the query goes straight from your device to OpenSky, never through the feed backend, and there is no shared key. Select it but leave the credentials blank and the screen just says it needs them, making no calls at all.
This watch can only see aircraft that are transmitting ADS-B. A command post airborne with its transponder off won't appear β "none broadcasting" isn't the same as "none up".
The EAM monitor can push phone notifications via ntfy (see Alerts and Watchlist for how ntfy works). Set a topic and pick which of four triggers fire β each independently toggleable, and each edge-seeded so a condition already true at boot or after a config save never fires retroactively (and POSTs are throttled to one every few seconds):
- New EAM β a genuinely new message reaches the top of the ticker.
- Tempo elevated/high β the day's activity crosses up into the elevated or high band.
- Command post airborne β the watch flips from "none up" to an airborne E-4B/E-6B.
- Space weather β an HF radio blackout turns on, or a geomagnetic storm crosses up into G2+ (priority bumps higher at R3+/G3+).
Leave the topic blank to disable all alerts.
The monitor keeps a small log (persisted across reboots, in its own NVS namespace) of the EAMs and codewords it has seen. That's what powers the "new to this device" codeword marks, the running "seen this month" / "N logged" counts, and the de-dupe behind the New-EAM alert. It's bounded, so it never fills the device's storage. You can download it from the config page as /eam-log.csv or /eam-log.json (served read-only).
Everything is set from the same web page as the radar β Configuration Reference explains how to open it. The EAM build's page offers:
| Setting | Description |
|---|---|
| EAM feed base URL | The backend the device polls (defaults to the build's baked-in feed URL; the runtime value overrides it). |
| Latitude / Longitude | Optional β used for the propagation day/night localisation, the command-post bearing/distance, and the solar auto-dim. |
| Command-post source | adsb.lol via the feed (default) or OpenSky β your account, with the OpenSky client ID / secret and ICAO24 watchlist shown when OpenSky is selected. The secret is masked on the page and only re-saved if you type a new one. |
| ntfy.sh topic + triggers | Phone-alert topic and the four per-trigger toggles (new EAM, tempo, command post, space weather). |
| Palette | Green or amber command-console colours. |
| Clock colon blink | Blink the Zulu clock's colons (default steady). |
| Refresh | How often the device polls β Normal (1Γ), Relaxed (2Γ), or Battery (4Γ). Clamped so it never polls faster than OpenSky's 60 s floor for the command-post watch. |
| Brightness / Auto-dim | The same backlight and night-dim controls as the radar. |
| Screens | Which screens appear and in what order β a comma-separated list of ids (ticker, tempo, activity, codewords, abncp, milair, prop, icbm, ref, clock); omit one to hide it, leave blank to show all. |
Changes apply live on Save, with no reboot β same as the radar.
The EAM monitor is its own firmware image on its own update channel (firmware-eam-<board>.bin), so a device set up as an EAM monitor only ever pulls EAM firmware (and a radar device only pulls radar firmware) β the two never cross. Over-the-air updates otherwise work exactly as on the radar; see Firmware Updates.
- Configuration Reference β opening the web config page
- Alerts and Watchlist β how ntfy phone alerts work
- Clock and Brightness β the auto-dim the Zulu clock honours
- Network and Setup β Wi-Fi setup and OpenSky accounts
- Orbitscope Β· Quakescope Β· Quillscope Β· Reelscope β its sibling editions
Editions
- π‘ Blipscope (Aviation β feature pages below)
- π Missileer
- π°οΈ Orbitscope
- π Quakescope
- π¦ Quillscope
- π£ Reelscope
- π€ Claudescope
- π Speedscope
Blipscope (Aviation) features
- Radar Display
- Aircraft Details
- Screens and Gestures
- Alerts and Watchlist
- Clock and Brightness
- Firmware Updates
Reference
- Configuration Reference
- Network and Setup
- Flight Data and Updates
- Choosing an ADS-B Receiver
- Assembly