Report preparation
What happened?
Environment
- AetherSDR: v26.5.2.1 (also reproduced on v0.9.8)
- Radio: FlexRadio FLEX-8600, firmware v4.2.18
- OS: Ubuntu Server 24.04.4 LTS arm64 (Raspberry Pi 5, 8GB)
- PipeWire: 1.0.5 (libpipewire 1.0.5)
- Running headless with Xvfb virtual display (:99, 1920x1080)
- 4 PipeWire null sinks created at 24000Hz: dax1–dax4
What happens
With 4 slices each assigned to DAX channels 1–4 in the AetherSDR UI,
only channel 1 (slice 0 / index A) ever produces audio. Channels 2–4
remain IDLE in PipeWire despite being assigned.
pactl list sinks short after assigning all 4 DAX channels:
36 dax1 PipeWire float32le 2ch 24000Hz RUNNING ← only this one
39 dax2 PipeWire float32le 2ch 24000Hz IDLE
44 dax3 PipeWire float32le 2ch 24000Hz IDLE
49 dax4 PipeWire float32le 2ch 24000Hz IDLE
Root cause (observed in AetherSDR debug log)
The FLEX API correctly receives and acknowledges DAX assignments for all
4 slices — confirmed in the AetherSDR log:
[22:49:11] slice 0 dax=1 dax_clients=0 ← startup, slice A
[23:05:03] slice 1 dax=2 dax_clients=0 ← after UI assignment, slice B
[23:05:34] slice 2 dax=3 dax_clients=0 ← after UI assignment, slice C
[23:05:47] slice 3 dax=4 dax_clients=0 ← after UI assignment, slice D
dax_clients remains 0 for slices 1–3 permanently. For slice 0,
AetherSDR connects its internal audio client, and dax1 goes RUNNING.
For slices 1–3, AetherSDR never connects a client — the FLEX never
receives a client registration for those channels.
The bug is in AetherSDR's DAX client management: it handles slice 0
correctly, but does not connect audio clients for slices 1–3.
What did you expect?
What I expect
All 4 DAX sinks to show RUNNING with dax_clients=1 for each slice
after DAX channel assignment in the UI.
Steps to reproduce
Steps to reproduce
- Create 4 PipeWire null sinks at 24000Hz named dax1–dax4
- Start AetherSDR headless:
DISPLAY=:99 ./AetherSDR.AppImage
- Connect to FLEX-8600 (3 slices active is sufficient to reproduce)
- Assign DAX Ch 1 to Slice A at startup — this one works
- Assign DAX Ch 2, 3, 4 to Slices B, C, D via UI
- Run
pactl list sinks short — dax2–4 remain IDLE
- Check AetherSDR log —
dax_clients stays 0 for slices 1–3
Additional notes
- Confirmed on both v0.9.8 and v26.5.2.1
- Confirmed on FLEX-8600 firmware v4.1.5 and v4.2.18
- On macOS with SmartSDR for Mac, all 4 DAX channels work correctly
- Slice 0 / DAX channel 1 works reliably every time
- The use case is 4× WSJT-X instances each decoding a separate slice
simultaneously on a headless Linux edge node
AetherSDR version
v26.5.2.1
Radio model & firmware
FLEX-8600 4.2.18
Operating system
Linux
OS version and hardware
Ubuntu Server 24.04.4 LTS arm64 (Raspberry Pi 5, 8GB)
Report preparation
What happened?
Environment
What happens
With 4 slices each assigned to DAX channels 1–4 in the AetherSDR UI,
only channel 1 (slice 0 / index A) ever produces audio. Channels 2–4
remain IDLE in PipeWire despite being assigned.
pactl list sinks shortafter assigning all 4 DAX channels:36 dax1 PipeWire float32le 2ch 24000Hz RUNNING ← only this one
39 dax2 PipeWire float32le 2ch 24000Hz IDLE
44 dax3 PipeWire float32le 2ch 24000Hz IDLE
49 dax4 PipeWire float32le 2ch 24000Hz IDLE
Root cause (observed in AetherSDR debug log)
The FLEX API correctly receives and acknowledges DAX assignments for all
4 slices — confirmed in the AetherSDR log:
[22:49:11] slice 0 dax=1 dax_clients=0 ← startup, slice A
[23:05:03] slice 1 dax=2 dax_clients=0 ← after UI assignment, slice B
[23:05:34] slice 2 dax=3 dax_clients=0 ← after UI assignment, slice C
[23:05:47] slice 3 dax=4 dax_clients=0 ← after UI assignment, slice D
dax_clientsremains 0 for slices 1–3 permanently. For slice 0,AetherSDR connects its internal audio client, and
dax1goes RUNNING.For slices 1–3, AetherSDR never connects a client — the FLEX never
receives a client registration for those channels.
The bug is in AetherSDR's DAX client management: it handles slice 0
correctly, but does not connect audio clients for slices 1–3.
What did you expect?
What I expect
All 4 DAX sinks to show RUNNING with
dax_clients=1for each sliceafter DAX channel assignment in the UI.
Steps to reproduce
Steps to reproduce
DISPLAY=:99 ./AetherSDR.AppImagepactl list sinks short— dax2–4 remain IDLEdax_clientsstays 0 for slices 1–3Additional notes
simultaneously on a headless Linux edge node
AetherSDR version
v26.5.2.1
Radio model & firmware
FLEX-8600 4.2.18
Operating system
Linux
OS version and hardware
Ubuntu Server 24.04.4 LTS arm64 (Raspberry Pi 5, 8GB)