Skip to content

DAX IQ Streaming

Jeremy Fielder edited this page Mar 29, 2026 · 1 revision

DAX IQ Streaming

DAX IQ provides raw I/Q (In-phase/Quadrature) sample data from the radio's DDC (Digital Down Converter) to external SDR applications. Unlike regular DAX which carries demodulated audio, DAX IQ provides the unprocessed complex signal before any mode, filter, or AGC processing.

Use Cases

  • SDR software: Run SDR#, GQRX, or SDR Console alongside AetherSDR for independent demodulation
  • IQ recording: Record raw IQ for later playback and analysis
  • Signal analysis: Feed GNU Radio or custom DSP pipelines
  • Wide-band monitoring: Capture up to 192 kHz of spectrum

How It Works

Each DAX IQ channel creates a PulseAudio virtual capture device:

Device Format Description
AetherSDR IQ 1 float32 stereo I=left, Q=right
AetherSDR IQ 2 float32 stereo I=left, Q=right
AetherSDR IQ 3 float32 stereo I=left, Q=right
AetherSDR IQ 4 float32 stereo I=left, Q=right

Data flow: Radio DDC → VITA-49 UDP → AetherSDR → PulseAudio pipe → SDR app

Sample Rates

Each IQ channel supports four sample rates:

Rate Bandwidth Typical Use
24 kHz ~24 kHz Narrow signal monitoring
48 kHz ~48 kHz Standard amateur bandwidth
96 kHz ~96 kHz Wide-band digital modes
192 kHz ~192 kHz Full band capture

Higher sample rates consume more radio DDC resources and network bandwidth (~1.5 MB/s per channel at 192 kHz).

Enabling DAX IQ

From the DIGI Applet

The DIGI applet (toggle with the DIGI button in the applet panel) has a DAX IQ section at the bottom:

  1. Select a sample rate from the dropdown (24k / 48k / 96k / 192k)
  2. Click Off to toggle it to On — this creates the IQ stream
  3. The level meter shows I/Q signal activity
  4. The virtual capture device appears in PulseAudio/PipeWire

From the Spectrum Overlay

The overlay DAX panel has an IQ Ch dropdown that controls which panadapter feeds which IQ channel. This is a routing control — the stream must be enabled from the DIGI applet.

Connecting SDR Applications

SDR# (SDRsharp)

  1. Select Audio as the input source
  2. Set input device to AetherSDR IQ 1
  3. Set sample rate to match (e.g., 48000)
  4. Enable I/Q mode in SDR# settings

GQRX

  1. Set I/Q input to PulseAudio
  2. Select AetherSDR IQ 1 as the capture device
  3. Set sample rate to match

GNU Radio

  1. Use an Audio Source block
  2. Set device to aethersdr-iq-1
  3. Set sample rate to match
  4. Output is complex float (I/Q interleaved)

Architecture Notes

  • IQ channels are associated with panadapters (not slices) — they capture the raw DDC output before demodulation
  • All byte-swap and pipe I/O runs on a dedicated worker thread to avoid blocking the main UI at high sample rates
  • The radio has a fixed number of IQ channels (daxiq_capacity reported in radio status). FLEX-8600 supports up to 4.

Platform Support

Platform Status
Linux Full support via PulseAudio/PipeWire pipe sources
macOS Planned via CoreAudio HAL plugin
Windows Not yet available — tracked in #87

Clone this wiki locally