Skip to content

Multi Flex

Jeremy Fielder edited this page May 9, 2026 · 3 revisions

Multi-Flex

Multi-Flex allows AetherSDR to operate alongside SmartSDR, Maestro, or another AetherSDR instance — each as an independent client on the same radio.

How It Works

When multiple clients connect to the same FlexRadio, each gets its own:

  • Client handle (assigned by the radio)
  • Slice(s) and panadapter
  • Independent tuning, mode, and filter settings

AetherSDR filters all status messages and VITA-49 packets by client_handle so you only see your own slices and panadapter data.

Automatic Behavior

  • On connect: AetherSDR checks if existing slices belong to another client. If so, it creates its own slice and panadapter.
  • Status filtering: Only processes slice/pan/waterfall updates that match our client_handle
  • VITA-49 filtering: FFT and waterfall packets from other clients' panadapters are silently dropped

Known Behavior

  • Early slice status messages may arrive without client_handle. AetherSDR creates temporary SliceModels for all slices, then removes the ones that don't match when client_handle appears.
  • The radio broadcasts ALL status updates to ALL clients via sub xxx all. AetherSDR filters them client-side.

Multi-client startup hardening (v0.9.4)

When SmartSDR / Maestro / another AetherSDR is already connected and you launch AetherSDR alongside it, status messages can interleave in races that would previously mis-attribute panadapters and slices to the wrong client. v0.9.4 hardens three specific paths:

  • Panadapter creation — pan ownership is determined from the radio's status response, not from the order packets arrive in
  • Slice ownership — the temporary "create-then-prune" approach is bounded so we don't accidentally lock a slice we don't own
  • PC audio stream acquisition — RX audio stream IDs are validated against the client handle before binding the local audio sink

If you regularly run alongside DAX or SmartSDR, the v0.9.4 release is the floor — earlier versions could occasionally hang on connect in these races.

multiFLEX Dashboard

Settings → multiFLEX opens a live dashboard showing all connected stations:

  • Client table — station name, program, TX antenna, TX frequency for each connected client
  • LOCAL PTT — checkmark indicates which station has PTT authority
  • Enable/Disable — toggle multiFLEX mode on the radio
  • Enable Local PTT — request PTT for your station when another client holds it

The dashboard updates in real time via sub client all status subscriptions.

A green multiFLEX badge also appears in the title bar when other clients are connected, with a hover tooltip listing station names.

Requirements

  • Radio must have mf_enable=1 (Multi-Flex enabled)
  • Enable in SmartSDR: Settings → Radio Setup → Radio → multiFLEX → Enabled
  • Or via AetherSDR: Settings → Radio Setup → Radio → multiFLEX → Enabled

Clone this wiki locally