AetherSDR v26.6.3 — 61 commits since v26.6.2. Headlined by satellite-data WFM, an APRS client and PSK Reporter map on a new reusable Qt mapping engine, a Direwolf-derived VHF packet demodulator, and a major internal decomposition of the MainWindow monolith.
Linux is the primary supported platform; macOS and Windows builds are provided as a courtesy. Build artifacts attach below as CI completes — see Downloads.
🛰️ Headline features
WFM software demodulator (satellite data)
A per-slice WFM toggle on FM modes: DAX IQ → phase-continuous NCO Doppler correction → exact 48 kHz resampling → flat atan2 discriminator → virtual audio cable for HS-SoundModem. Built for G3RUH 9600-baud satellite work. (#3407, #3522, #3562)
APRS client
The AetherModem AX.25 tab is now a lightweight APRS client — a live station table with wireframe symbol icons and weather decode, a timed GPS position beacon (grid-locator fallback), and two-way messaging with retries, auto-ack, and digipeat de-duplication. Everything rides the shared one-at-a-time TX keying queue, so APRS can't double-key against KISS, the mailbox, or the terminal. (#3530)
PSK Reporter reception map
View ▸ PSK Reporter shows who's hearing your callsign on an OpenStreetMap basemap — mode-coloured markers, great-circle paths, a live MQTT feed plus HTTP polling, and a persistent spot cache. Built on a new reusable Qt mapping engine (vendored QGeoView) that the APRS map will share. (#3565)
Direwolf-derived VHF AFSK demodulator
VHF 1200-baud AX.25 now decodes through a Direwolf-derived Profile A+ demodulator (9 amplitude slicers), replacing the old libmodem lane bank (HF 300-baud is unchanged). A 1,875-packet overnight live run out-copied both Dire Wolf and Graywolf. (#3527)
DAX-IQ, fully usable
End-to-end IQ sample delivery, a dBFS level meter, 24/48/96/192 kHz rate switching with persistence, and startup state restore. (#2529, #3521, #3522)
📻 Packet radio
- Pure-C++ HDLC framer (
HdlcCodec) replacing libmodem'sbitstream_state(#3475) - AX.25 shim isolated on a dedicated worker thread (#3473)
- MQTT: per-topic control, CW keyer, radio state, AX.25, and debug logging (#3460)
🎨 Display & UX
- SmartSDR-parity "Purple" waterfall colour scheme (#3583)
- Inactive-slice bandwidth stays visible via a neutral colour instead of near-invisible dimming (#3484 / #2389)
- Per-row waterfall-history frequency frames — no per-pan reproject (#3578)
- TMate2 enhanced display: TX bargraph, text overlays, encoder labels (#3542)
- RC-28 velocity-proportional tuning (#3467)
🔧 Fixes & hardening
- Behaviour change (CAT): in-span
rigctl/TCI retunes no longer recenter the pan (autopan=0); cross-band tunes still recenter, preserving the #536 behaviour. Helps satellite trackers issuing Doppler steps every few seconds. - Profile-load recovery hardening for Multi-Flex — defers profile-owned writes during global profile restore (#3563)
- DEXP controls now use the
companderprotocol keys SmartSDR actually accepts (were silently rejected) (#3568) - Multi-Flex ping-watchdog grace during a second client's join — no more false disconnects mid-join (#3570)
- TCI: dB on the wire for
VOLUME;ready;sent after the full settings dump (#3498, #3502) - ARRL US band-plan license-class accuracy (#3518)
- Narrow-passband filter-edge drag hit-testing (#3523)
- GPU spectrum builds without
Qt6GuiPrivate(Windows/macOS aqtinstall) (#3561)
🏗️ Internal
- MainWindow decomposition (#3351): the ~19,500-line monolith split into cohesive sibling translation units (~8,100 lines in the core) — pure code motion, mapped in
docs/architecture/mainwindow-decomposition.md. - New
RadioSessionaggregate ownsRadioModel+TciServer+CatPorts, making teardown order structural (fixes the #2385 crash-on-quit class). (#3544, #3545)
📦 Packaging
- Microsoft Store: a
v*release tag now auto-stages a draft submission via themsstoreCLI — dormant until Partner Center credentials are configured. (#3567)
⬇️ Downloads
Attached below as the build workflows finish:
- Linux —
AetherSDR-*.AppImage - macOS —
AetherSDR-*.dmg(universal) - Windows —
AetherSDR-*-setup.exe(installer) +AetherSDR-*.zip(portable)
Verify your download against the signed checksums — see docs/VERIFYING-RELEASES.md.
🙌 Thanks
To everyone who contributed this cycle — including @jensenpat, @rfoust, @Ozy311, @w5jwp, @svabi79, @ea5wa, @K5PTB, @mvanhorn, @nigelfenton — and a special welcome to first-time contributor @sblanchard (the Purple waterfall scheme). 73!
Full changelog: CHANGELOG.md · v26.6.2...v26.6.3