Skip to content

Radio Setup Dialog

The Radio Setup dialog (Settings > Radio Setup...) is the master per-radio configuration window. It contains tabs for radio information, network, GPS, Calibration, TX, Phone/CW, RX, Antennas, audio, filters, XVTR, USB cables, peripherals, APD (Adaptive Pre-Distortion), Themes, SmartLink (pinned certificates), and serial (FlexControl).

Opening the dialog

  1. Ensure AetherSDR is connected to the radio.
  2. Click Settings > Radio Setup....
  3. The dialog opens. You can drag the title bar to move the dialog and use the window edges to resize it. Dialog geometry is persisted between sessions.

If a tab contains more controls than fit vertically (e.g., on small or high-DPI displays), a scrollbar appears within that tab. The dialog itself does not grow beyond the screen edge.

Radio (tab)

The Radio tab displays radio information, identification, license information, and firmware update controls. Each read-only value has a small copy button to its right — click to copy the value to your clipboard.

Radio information

Control Kind Behavior
Radio SN Indicator Chassis serial number (read-only).
Region Indicator Radio regulatory region (e.g., USA).
HW Version Indicator Hardware version string.
Model Indicator Radio model.
Nickname Text field User-friendly radio nickname.
Callsign Text field Station callsign.
Station Name Text field Identifies this AetherSDR client to other multiFLEX stations. Defaults to the OS hostname if empty. Stored in AppSettings as StationName. Sent to radio as client station <name>.
Remote On Button Enables remote wake / remote-on.
Options Indicator Shows licensed radio options.
FlexControl Indicator Detected state of FlexControl hardware.
multiFLEX Indicator multiFLEX enabled state.
License Info Indicator Displays license details (Subscription / Expiration / Radio ID / Licensed version) from the radio.
Reboot: Button + confirmation Reboots the connected radio. See "Rebooting the radio" below.
Reboot Radio Button + confirmation Reboots the connected radio with a confirmation dialog. AetherSDR disconnects and (on LAN) auto-reconnects once booting finishes. New in v26.8.4 (#4448). Only enabled when connected and the backend supports a client reboot (e.g. HL2 is RX-only so the button is disabled). On SmartLink/WAN the operator must reconnect manually after the reboot.
Check for Update Button Queries the FlexRadio update server for firmware updates.
Select Installer... Button Opens a file dialog for a SmartSDR installer (.msi, .exe) or pre-extracted .ssdr firmware file. Passes the selected path to FirmwareStager which extracts .ssdr payload and emits progress. Label changed from 'Browse .ssdr...' to 'Select Installer...' in v26.5.3.
Upload Firmware Button Starts firmware upload with progress bar and status.
Agent Automation (MCP): Toggle Enables the in-app automation bridge so an AI coding assistant (via the MCP server) can introspect and drive the running app. Off by default; the operator opts in. New in v26.8.4 (#3646). Persisted via AutomationBridgeSettings. The AETHER_AUTOMATION launch environment variable force-enables the bridge regardless of this toggle and disables the control in the UI. Transmit-keying stays blocked unless AETHER_AUTOMATION_ALLOW_TX is set.
Access Token: Text field Read-only display of the MCP access token; paste it into the assistant's AETHER_MCP_TOKEN environment variable. Stored in the OS secret store. New in v26.8.4. Auto-mints a 128-bit hex token when the bridge is enabled without one. Placeholder '(loading…)' until the keychain read lands.
Copy (Access Token) Button Copies the access token to the clipboard. New in v26.8.4.
Rotate (Access Token) Button Generates a new token and applies it immediately, locking out any client still using the old one. New in v26.8.4.
Allow TX via MCP: Enable transmit control Checkbox Lets an MCP client key the transmitter (MOX/PTT/TUNE/ATU/CWX). Off by default; first enable raises an operator-responsibility confirmation. New in v26.8.4. Enforced in the bridge; no client can flip it. Overridden by AETHER_AUTOMATION_ALLOW_TX (force on) and AETHER_AUTOMATION_NO_TX (pinned off). A force-unkey watchdog limits bridge-originated TX.
Observe only: Read-only (block all driving) Checkbox Makes the bridge observe-only: MCP clients can read state but every mutating verb (set/invoke/connect/tune/capture) is refused. New in v26.8.4 (#4188). Enforced in the app, so a client cannot bypass it. AETHER_AUTOMATION_READONLY launch variable pins it on for headless/CI runs.
VITA-49 RX buffer: Slider Snap-to-preset slider setting the kernel receive buffer (SO_RCVBUF) for the VITA-49 stream socket; larger absorbs panadapter/waterfall bursts so packets aren't dropped. New in v26.8.4 (#3810). Presets 256 KB to 4 MB. The system caps the grant at net.core.rmem_max; a live 'granted: ' label shows what the kernel actually granted.
granted: (VITA-49 RX buffer) Indicator Shows the buffer size the kernel actually granted (vs the requested preset). New in v26.8.4. Shows '(applies on connect)' when no connection is active.
SmartLink (tab) Pinned SmartLink TLS certificate management. Lists each pinned certificate (host, SHA-256 fingerprint, pinned date) with per-row Forget and Forget All. New in v26.5.3 (#2951 Phase 2). Lazy-built when first clicked. Phase 2 of GHSA-wfx7-w6p8-4jr2: cert-pin mismatch now hard-pauses the handshake with a modal dialog.
Pinned SmartLink Certificates (section) Section header for the pinned certs table inside the SmartLink tab. Lists every host this client has pinned on first connect (trust-on-first-use). Phase 2 of GHSA-wfx7-w6p8-4jr2. Pin schema migrated from plain strings to {fp, pinnedAt} objects.
Host / SHA-256 fingerprint / Pinned (table columns) 3-column read-only table: Host (hostname), SHA-256 fingerprint (monospace), Pinned (YYYY-MM-DD or '(pre-phase 2)'). Backed by WanCertCache in WanConnection.cpp.
Forget selected Removes the selected host's pinned cert fingerprint so the next connect re-pins silently.
Forget all Clears every pinned cert (with confirmation). Next connect to each radio silently re-pins. Shows QMessageBox::question before wiping.

Rebooting the radio

  1. Click Reboot Radio.
  2. A confirmation dialog appears:
  3. SmartLink/WAN session: The message reads "AetherSDR will disconnect. SmartLink/WAN sessions do not auto-reconnect today — you will need to reconnect manually once the radio finishes booting."
  4. Local session: The message reads "AetherSDR will disconnect and automatically reconnect once the radio finishes booting."
  5. Click OK to confirm. The dialog closes and AetherSDR disconnects. On local connections, reconnection happens automatically.
  6. The button is disabled when the radio is disconnected.

Firmware update

Control Kind Behavior
Check for Update Button Queries the FlexRadio update server for firmware updates.
Select Installer... Button Opens a file picker that accepts .msi (FlexRadio v4.2+ WiX installer), .exe (older self-extracting installer), or a pre-extracted .ssdr firmware file. The firmware stager auto-detects format from the first 8 bytes and extracts the .ssdr without external tools.
Upload Firmware Button Starts firmware upload with progress bar and status.
Firmware status Indicator Empty until a firmware upload begins, then progress and result text.

Checking for updates

  1. Click Check for Update. AetherSDR queries the FlexRadio update server.
  2. If firmware is up to date, the status label reads "Firmware is up to date (vx.x.x)." in green.
  3. If an update is available, the status label reads "Update available: vx.x.x — Download the SmartSDR installer from flexradio.com, then click Select Installer... to stage it." in amber.

Staging and uploading firmware

  1. Download the SmartSDR installer from flexradio.com if you do not already have it locally.
  2. Click Select Installer.... A file picker opens that accepts:
  3. .msi — FlexRadio v4.2+ WiX installer
  4. .exe — older self-extracting installer
  5. .ssdr — pre-extracted firmware file
  6. Select the file. AetherSDR stages the firmware automatically. The stager detects the file format from the first 8 bytes and extracts the .ssdr payload without requiring any external tools. The status label shows "Preparing firmware from filename..." while staging is in progress.
  7. When staging completes, click Upload Firmware. A progress bar and status label track the upload.

Network (tab)

The Network tab displays radio network information and advanced network options.

Control Kind Behavior
IP Address / Mask / MAC Address Indicator Read-only network addresses.
Enforce Private IP Connections: Toggle Rejects non-RFC1918 peers.
Agent Automation (MCP): Toggle Enables the in-app automation bridge so an AI coding assistant (via the MCP server) can introspect and drive the running app. Off by default; the operator opts in. New in v26.8.4 (#3646). Persisted via AutomationBridgeSettings. The AETHER_AUTOMATION launch environment variable force-enables the bridge regardless of this toggle and disables the control in the UI. Transmit-keying stays blocked unless AETHER_AUTOMATION_ALLOW_TX is set.
Access Token: Text field Read-only display of the MCP access token; paste it into the assistant's AETHER_MCP_TOKEN environment variable. Stored in the OS secret store. New in v26.8.4. Auto-mints a 128-bit hex token when the bridge is enabled without one. Placeholder '(loading…)' until the keychain read lands.
Copy (Access Token) Button Copies the access token to the clipboard. New in v26.8.4.
Rotate (Access Token) Button Generates a new token and applies it immediately, locking out any client still using the old one. New in v26.8.4.
Allow TX via MCP: Enable transmit control Checkbox Lets an MCP client key the transmitter (MOX/PTT/TUNE/ATU/CWX). Off by default; first enable raises an operator-responsibility confirmation. New in v26.8.4. Enforced in the bridge; no client can flip it. Overridden by AETHER_AUTOMATION_ALLOW_TX (force on) and AETHER_AUTOMATION_NO_TX (pinned off). A force-unkey watchdog limits bridge-originated TX.
Observe only: Read-only (block all driving) Checkbox Makes the bridge observe-only: MCP clients can read state but every mutating verb (set/invoke/connect/tune/capture) is refused. New in v26.8.4 (#4188). Enforced in the app, so a client cannot bypass it. AETHER_AUTOMATION_READ
⚡ Athena AetherSDR Assistant
Hi! I'm Athena, the AetherSDR AI assistant. Ask me anything about installation, configuration, or troubleshooting.