Skip to content

StreamDeck

Jeremy Fielder edited this page Apr 4, 2026 · 6 revisions

StreamDeck Integration

AetherSDR includes native Elgato StreamDeck support — no external software required. The StreamDeck connects directly via USB HID and displays live radio state on its LCD keys.

Supported Devices

Model Keys Dials Touchscreen Status
Stream Deck Mini 6 (3×2) Supported
Stream Deck Mini MK2 6 (3×2) Supported
Stream Deck Original 15 (5×3) Supported
Stream Deck Original V2 15 (5×3) Supported
Stream Deck MK2 15 (5×3) Supported
Stream Deck XL 32 (8×4) Supported
Stream Deck XL V2 32 (8×4) Supported
Stream Deck Neo 8 (4×2) Info strip Supported
Stream Deck Pedal 3 Supported
Stream Deck + 8 (4×2) 4 800×100 Supported
Stream Deck + XL 36 (9×4) 6 1200×100 Tested

Setup

Linux

  1. Install the udev rule for non-root HID access:
    echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", TAG+="uaccess"' | sudo tee /etc/udev/rules.d/70-streamdeck.rules
    sudo udevadm control --reload-rules && sudo udevadm trigger
  2. Unplug and replug the StreamDeck
  3. Launch AetherSDR — the device is auto-detected

macOS / Windows

Plug in the StreamDeck and launch AetherSDR. No additional drivers needed.

Default Layout (XL+ / XL)

Row 1: [160m] [80m] [60m] [40m] [30m] [20m] [17m] [15m] [12m]
Row 2: [10m]  [6m]  [USB] [LSB] [CW]  [FT8] [AM]  [FM]  [SAM]
Row 3: [FREQ] [FREQ] [SPLIT] [LOCK] [MUTE] [MOX] [TUNE] [ATU]
Row 4: [NB]  [NR]  [ANF] [NR2] [RN2] [APF] [AGC] [DAX] [APD]

Smaller devices use a subset of these buttons based on available keys.

Button Actions

Row 1 — Band Select

Press a band button to tune to that band's default frequency and recenter the panadapter. The active band is highlighted in cyan.

Row 2 — Mode Select

Press a mode button to switch the active slice's mode. The active mode is highlighted. 10m and 6m are band buttons in this row.

Row 3 — Controls

Button Action
FREQ Frequency display (no action)
SPLIT Toggle split mode (creates TX slice)
LOCK Toggle slice lock
MUTE Toggle slice audio mute
MOX Toggle transmit
TUNE Toggle tune carrier (blocked when TGXL is in Operate)
ATU Start ATU / TGXL autotune (auto-detects TGXL)

Row 4 — DSP Toggles

Button Action
NB Toggle noise blanker
NR Toggle noise reduction
ANF Toggle auto notch filter
NR2 Toggle client-side spectral NR
RN2 Toggle client-side RNNoise
APF Toggle audio peak filter
AGC Cycle AGC mode: off → slow → med → fast
DAX Toggle DAX audio
APD Toggle adaptive predistortion

Dial Actions (Stream Deck + / + XL)

Dial Turn Push
1 VFO tuning Cycle step size
2 AF gain Toggle mute
3 RF power Toggle TUNE
4 Squelch level Toggle squelch on/off
5 RIT offset Toggle RIT on/off
6 XIT offset Toggle XIT on/off

Touchscreen Strip (Stream Deck + / + XL)

Displays the current frequency and mode. Updates in real time.

Configuration

Open Settings → StreamDeck... to access the configuration dialog:

  • Device selector — choose which connected StreamDeck to configure
  • Visual button grid — shows the current layout with row labels
  • Brightness slider — adjust key backlight brightness (0–100%)
  • Dial info — shows current dial assignments and push actions

Live Updates

All key images update at 10 Hz:

  • Band/mode highlights follow the active slice
  • Frequency display tracks VFO changes
  • MOX turns red during transmit
  • TUNE turns amber during tune
  • DSP toggles reflect current state
  • Image caching ensures only changed keys are sent to the device

Troubleshooting

Device not detected

  • Check lsusb | grep 0fd9 — you should see your StreamDeck
  • Ensure the udev rule is installed (Linux)
  • Try unplugging and replugging

Keys not updating

  • Check Settings → StreamDeck... — device should show as connected
  • Restart AetherSDR if the device was plugged in after launch

Device freezes

  • Unplug and replug the USB cable — this resets the HID interface
  • This can happen if AetherSDR crashes while writing to the device

Dependencies

StreamDeck support requires the hidapi library:

  • Arch/CachyOS: pacman -S hidapi
  • Ubuntu/Debian: apt install libhidapi-dev
  • macOS: brew install hidapi

The feature is compiled when hidapi is found (HAVE_HIDAPI). If not available, StreamDeck support is silently disabled.

Clone this wiki locally