github aethersdr/AetherSDR v26.5.1
AetherSDR v26.5.1 — Native. Open. Yours.

latest releases: v26.5.2.1, v26.5.2
9 days ago

AetherSDR v26.5.1 — Native. Open. Yours.

The 1.0-equivalent stable release.

After eight 0.9.x cycles, AetherSDR is ready to drop the pre-1.0 framing. The client now covers every documented SmartSDR feature on the FLEX-6000, FLEX-8000, and Aurora platforms; ships the Aetherial Audio Channel Strip's RX and TX paths in full; and runs natively on Linux, macOS, and Windows without Wine, virtual machines, or compatibility shims of any kind. Confidence in stability across the three platforms is high enough that we no longer want the version string to imply otherwise.

This release also marks the project's switch from semver to CalVer (YY.M.patch). AetherSDR's release cadence is driven by FlexLib protocol changes, ham contest seasons, and a steady stream of community-contributed fixes — not by API stability commitments to downstream consumers. CalVer communicates "this is what shipped in month X" more honestly than a semantic version would. The previous v0.9.x tags remain in git history; new tags start at v26.5.1.

What AetherSDR is, at 1.0

A Linux-native client for FlexRadio Systems transceivers, built from the ground up with Qt6 and C++20. It speaks the SmartSDR protocol natively — v1.4.0.0, validated against firmware 4.2.18 on a FLEX-8600 — and aims to replicate the full SmartSDR experience without depending on any Windows-specific tooling.

Core capabilities

  • GPU-accelerated rendering — QRhi waterfall + FFT spectrum on GPU (OpenGL/Metal/D3D11), 71 % CPU reduction vs. CPU rasterization, heat-map FFT display.
  • Multi-slice operation — color-coded VFO overlays, independent TX assignment, diversity mode with ESC beamforming.
  • Multi-panadapter — up to 8 pans (FLEX-6700), 6 layout options, detachable pop-out windows, per-pan display controls, native VITA-49 waterfall tiles.
  • Full RX/TX control — filter presets, custom filter edges, AGC, DSP, EQ, mic/compression gauges, ATU, TUNE/MOX.
  • Aetherial Audio Channel Strip — unified RX and TX DSP suite (gate, EQ, compressor, de-esser, tube, AetherVoice exciter, Freeverb on TX, brickwall limiter on TX / output trim on RX) with a savable preset library and a wall-clock-accurate scope on each side.
  • Client-side noise reduction — NR2 (spectral), RN2 (RNNoise neural), NR4 (libspecbleach), DFNR (DeepFilterNet3 neural), BNR (NVIDIA GPU AI denoiser), MNR (macOS MMSE-Wiener).
  • AetherSweep — in-panadapter SWR analyzer with log scale, threshold-band shading, interpolated bandwidth at SWR ≤ 1.5 / 2.0.
  • Network Diagnostics — per-metric trend graphs, packet-loss / RTT / jitter metrics, live log tail.
  • Memory channels + profiles — memory bank with quick recall; global / mic / TX profile management synced with the radio.
  • CW operator suite — real-time Morse decoder with auto pitch/speed detection, keyboard + MIDI-mapped straight key and iambic paddles with full break-in / QSK respect, optional Apollo-era Quindar tones on PTT.
  • SpotHub — DX Cluster, RBN, WSJT-X, POTA, FreeDV Reporter spots with density badges, auto-mode switch, auto-reconnect.
  • DAX virtual audio — 4 RX + 1 TX channels for WSJT-X, fldigi, VARA, JS8Call (Linux PipeWire native / PulseAudio, macOS CoreAudio, Windows via TCI / external bridges).
  • DAX IQ streaming — raw I/Q to SDR apps at 24/48/96/192 kHz.
  • SmartLink remote operation — Auth0 login, TLS command channel, WAN UDP streaming with credential persistence.
  • TCI server — full TCI v2.0 protocol over WebSocket: CAT + audio + IQ + CW + spots in one connection.
  • CAT control — 4-channel rigctld TCP + virtual serial ports, CW macros for contest loggers.
  • MIDI controller mapping — Learn mode, 50+ parameters, named profiles.
  • FlexControl USB tuning knob — auto-detect, acceleration, configurable buttons; new WheelRit / WheelXit modes in this release.
  • Serial PTT/CW keying — USB-serial DTR/RTS for external keyers and foot switches.
  • FreeDV RADE — AI-based digital voice codec with client-side neural encoder/decoder.
  • 4o3a Tuner Genius XL — relay control, autotune, 3x1 antenna switch, SWR/power gauges.
  • Multi-Flex — independent operation alongside SmartSDR/Maestro with clickable dashboard.
  • Adaptive predistortion (APD) — SmartSignal toggle and status display for FLEX-8000 series, including External APD sampler-port selection for training against an external linear amplifier.

Supported hardware

Tested against:

  • FLEX-6000 series: 6300, 6400, 6400M, 6500, 6600, 6600M, 6700
  • FLEX-8000 series: 8400, 8400M, 8600, 8600M
  • Aurora series: AU-510, AU-510M, AU-520, AU-520M
  • ML-, CL-, and RT-series devices

What's new since v0.9.8

55 commits over 4 days. Highlights — for the comprehensive list see CHANGELOG.md.

Features

  • S-History v2 — CNN classifier that distinguishes voice signals from QRM channels in the Signal History overlay. Voice and QRM markers age out independently; QRM channels with voice riding on top get both markers simultaneously so operators can see the interference and the person trying to work through it.
  • Connected Stations dialog when multiFLEX is disabled — see who else is on the radio without needing Multi-Flex mode.
  • FPS meters and performance telemetry — footer FPS readouts for spectrum/waterfall plus a perf-heartbeat hook feeding the in-progress System Info diagnostics dialog.
  • 8-axis edge resize on the frameless main window, matching the Aetherial Audio Channel Strip.
  • SpotHub Display tab + tunable Signal History consolidation with grouped sections.
  • Frameless chrome on Memory Channels dialog — gradient title bar, drag handle, 8-axis resize.
  • Float popped-out applet panel as a frameless project window — three new title-bar icons (dock-left / dock-right / pop-out) replace the legacy status-bar toggle.
  • Always-on-Top pin on popped-out applets for instrument-on-instrument workflows.
  • FlexControl WheelRit / WheelXit modes drive RIT and XIT offsets directly without touching slice frequency.

Bug fixes

  • Linux waterfall smear after TX — 10–18 s post-TX vertical-stripe smear traced to a stale "last good row" retained across the TX→RX transition. Cleared on TX-exit; blanker now gated on !m_transmitting.
  • Multi-Flex / multi-pan crash cluster — slice reduction crash on disconnect cascade, float→dock GPU corruption, and exit crash on rapid quit-while-streaming all consolidated and guarded with lifetime checks.
  • Spot background_color honored when override is off — third-party spotting tools (wave-flex-integrator, SpotCollector) encoding priority / worked-before via the FlexLib background_color field now render correctly. Was silently dropped at the model→view boundary.
  • ALC gauge rewired to SW ALC meter — was previously driven by HWALC (RCA voltage telemetry), producing meaningless readings. Mirror across Phone + CW panels with the new HGauge::setFillFromRight mode.
  • DSP curve widgets: HarfBuzz reshape on every paint — DSP curve axis labels now cached as QStaticText with aggressive caching; ~7× drop in shapeText cost.
  • macOS app icon missing on local builds.icns generation moved into CMake (sourced from the committed docs/logo-circle.png); local builds now match CI builds exactly.
  • Stream Deck mute toggle — corrected TCI command dispatch.
  • DAX IQ silently broken on Windows / non-PipeWire Linux — proper fallback for systems without native PipeWire.
  • Windows ClangCL build failures — NR4/specbleach toolchain compat.
  • RTTY squelch auto-disable — squelch on RTTY notches characters out and breaks decoding.
  • CWX stuck-in-TX after macro — releases TX cleanly when the queue drains.
  • Windows 48 kHz L-R audio pan — restored to match macOS / native-rate paths.
  • Protocol order: send client program / low_bw_connect before client gui to match SmartSDR-for-Windows.
  • TCI volume/drive/rx_volume dispatch wired through.
  • Plus a long list of smaller fixes across CW macros, MIDI toggles, FreeDV reporter, slice capacity clamping, popout window chrome, AmpApplet telemetry, and more.

Infrastructure

  • Buffered async file logging — log writes no longer block the GUI thread on slow disks or network shares.
  • Qt 6.7+ GPU rendering requirement documented.
  • macOS .icns generated at build time via CMake — no committed binary, no hidden CI-only step.
  • Bumped actions/cache 4 → 5, refreshed Supported Hardware list, documented libopengl0 build dep on Debian/Ubuntu.

Contributor credits

This release wouldn't exist without the community. Big thanks to:

  • @jensenpat — macOS .icns build-time generation, FlexControl wheel modes, popout window frameless lifecycle, plus the long tail of fixes through the 0.9.x cycle (Hamlib NET-rigctl interoperability, Windows spot-client thread affinity crash, hardware-PTT mic_selection, filter widen/narrow mode-correctness, AetherSweep Phase 2)
  • @chibondking (CJ Johnson) — Windows UI scaling settings path, plus the broader 0.9.x contribution stream (editable CW value fields, cwDelay optimistic-update, UI Scale reset-to-100% fix, macOS relaunch via open -n, PGXL OPERATE/STANDBY sync)
  • @rfoust (Robbie Foust) — RX output panel rebuild + canonical meter ballistics, DAX IQ Windows/non-PipeWire-Linux fix, TCI volume/drive/rx_volume command dispatch, audio shutdown null-guards
  • @aethersdr-agent — AetherClaude, the project's autonomous coding agent. Implemented parallel pull requests on aetherclaude-eligible issues including #2550 (the FlexLib spot background_color fix), with diagnoses that landed independently and correctly
  • @s53zo — MIDI VFO jog-wheel stabilization across the FlexControl path
  • @M7HNF-Ian — SpotHub auto-reconnect after Wi-Fi drops, TCI lifetime fix, HiDPI gauge clipping fixes, Spot Lines toggle
  • @NF0T — RADE in the official Windows installer, RADE TX policy naming + tests
  • @ct1drb — original orphaned rigctld pipe-separator fix that #2438 cherry-picked
  • @M7HNF-Ian and @filemakers — Connect-to-last-radio opt-out checkbox

And to every operator who filed an issue, attached a Wireshark capture, or pinged on the discussions: thank you. The bug reports drove the bug fixes.

Downloads

Pick the build for your platform. All builds are GPG-signed (Linux/Windows/source) or Apple-notarized (macOS).

  • Linux AppImage — x86_64 and aarch64
  • macOS DMG — universal (Apple Silicon + Intel), signed and notarized; includes the DAX driver PKG
  • Windows installer — Inno Setup, MSVC runtime bundled
  • Windows portable — ZIP, no installer, MSVC runtime included

The signing keys are documented in docs/signing.md. Verify on Linux/source:

gpg --verify AetherSDR-26.5.1.AppImage.sig AetherSDR-26.5.1.AppImage

Upgrade notes

  • Settings: AetherSDR uses its own AppSettings XML store at ~/.config/AetherSDR/AetherSDR.settings (Linux), ~/Library/Application Support/AetherSDR/ (macOS), %APPDATA%/AetherSDR/ (Windows). All existing settings carry forward. No migration required.
  • Versioning: every tag from this point forward will be of the form vYY.M.patch. If your tooling parses tag names, update it to accept two-digit-year prefixes.
  • Radio firmware: tested against firmware 4.2.18 on FLEX-8600 (SmartSDR protocol v1.4.0.0). Earlier firmware versions are supported on a best-effort basis.

Looking ahead

The next cycle's headline work is in #2554 — a System Info diagnostics dialog mirroring the Network Diagnostics pattern, with per-thread CPU visibility, memory trending, paint-pipeline hot-widget tracking, and exportable JSON snapshots for support bundles. The CalVer cadence will keep us shipping in monthly-ish increments going forward.

If you'd like to contribute, the issue tracker has good-first-issue and aetherclaude-eligible labels marking issues ready for human or agent implementation respectively. PRs land in usually less than a week from open.


73, Jeremy KK7GWY & Claude (AI dev partner)


Signed Commits

Don't miss a new AetherSDR release

NewReleases is sending notifications on new releases.