Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Desktop GUI

The desktop client (podsdr-gui, window title PodSDR SDR Radio) is the full-featured native operating position for Linux, macOS and Windows. Installation is covered in Downloads and Quick start.

Connecting

The PodSDR Discovery panel at the top offers three tabs:

  • Direct — find radios on the local network (direct UDP, no proxy). Discover broadcasts on the LAN; Discover at IP targets an address you type. This finds OpenHPSDR radios and a running podsdr-emu.
  • Local proxy — enter a proxy URL (e.g. https://pi.local:8080) to list and connect to that proxy’s radios over WebRTC — including CAT radios and composites the proxy hosts.
  • ☁ Cloud — sign in to the broker (callsign/email + password; hub URL and token under Advanced, default wss://podsdr-broker.fly.dev), claim a proxy with its pairing code, then connect to any of its radios from anywhere. See the cloud chapter.

Two extra buttons live here: Emulator (Off/On) spins up a built-in Hermes Lite emulator in-process and connects to it (with an Emu Settings noise slider), and Wipe all settings resets the app (with confirmation).

Each radio keeps its own profile — connecting to a different radio restores that radio’s frequencies, mode, DSP and calibration.

The main window

The whole window is spectrum + waterfall, with controls overlaid:

  • Click to tune (snaps to the tune step); drag the band to slew. A toggle switches drag precision between Fast · step and Slow · 1 Hz.
  • Drag the filter edges in the shaded passband to set custom low/high cuts.
  • Scroll the mouse wheel over the frequency display to tune by the current step; click the digits to type a frequency.
  • S-meter top right (IARU scale with peak hold, S9+20 (-53 dBm)-style readout). During TX it’s replaced by FWD/REV power, SWR (color-coded), MIC and ALC bars, and a mic-clip counter.
  • Status pills along the top are live and clickable: NB, NR, ANF, AGC open mini editors; Split/RIT/XIT badges, CW pitch/WPM, codec, CPU%, RTT and a connection-health dot round it out.

Frequency & bands. Large VFO readout (active VFO), dimmed second VFO, a row of band buttons (edit the set via 📻 Bands…), and per-band memories — each band remembers its VFO A/B, split and mode.

Modes: LSB, USB, AM, FM, CWU, CWL, DSB, SAM, DIGL, DIGU, with mode-aware filter preset chips F1–F6 next to the picker.

RX row: Volume, Drive, Attenuator (0–31 dB), tune Step (1 Hz…1 MHz).

VFO extras (capability-gated — hidden if the radio doesn’t support them): VFO A/B, A=B, A↔B, SPLIT with quick +1/+2/+5 kHz DX offsets, RIT/XIT with drag offsets, momentary REV, and DW — dual watch, VFO A in the left ear and VFO B in the right.

The control tabs

A tab strip along the bottom:

  • DSP-RX — noise blanker (+threshold), noise reduction (NR1 spectral subtraction, RNN Orig stock RNNoise, RNN Ham and SSB RNN ham-trained neural models, Multiband expander), auto-notch (ANF), out-of-phase headphone mode, superhet emulation, and AGC (Fixed/Long/Slow/Medium/Fast with target, decay, and manual gain when Fixed).
  • Filter — all presets plus custom low/high; in CW also pitch, rise time and click-tune offset.
  • TX-Audio — mic gain (+AUTO), Tune mic (records 5 s and proposes settings), CESSB, ALC, compressor (Legacy or Spectral with profiles), 3-band EQ, leveler, VOX (threshold + hang), and TX makeup gain for CAT radios.
  • Monitor/Rec — TX monitor with its own audio-spectrum window, RX recording to WAV (48 kHz, saved under the app’s recordings/ folder), a 10-second TX-loop record/preview buffer (never transmitted), and the voice keyer: four message slots with Record / Play (preview) / Send (on-air) / Delete, a Repeat loop for contest CQs, and Stop.
  • Display — waterfall palette (Classic SDR, Sunrise, Cool Blue, Grayscale, Viridis, Volcano, Blue-Orange), smoothing, gamma, swipe sensitivity.
  • Keyer and CW Macros — appear in CW modes; see below.

CW

The keyer runs client-side even on proxy connections, so paddle-to-sidetone latency stays sub-millisecond.

  • Modes: Iambic A / Iambic B / Straight / Bug / Ultimatic / Single paddle; 5–60 WPM, weight, Iambic-B timing, auto letter spacing, reversed paddles, QSK hang, sidetone volume/delay. Settings adds pitch, rise time, Farnsworth, key compensation, dynamic dit/dah ratio and paddle-memory style. Practice keys sidetone without transmitting; a CW reader decodes received CW on screen.
  • Paddles: keyboard (default Z=dit, X=dah), serial dongles (pick port + CTS/DSR/DCD/RI pins), or MIDI keyers (pick device, then MIDI-learn dit/dah).
  • Macros: M1–M8 (default hotkeys F1–F8) with <MYCALL>/<CALL> variables, plus a free-text Send: field — type and press Enter to key a one-off message.

Working with other software

Settings → CAT Control (rigctld) starts a Hamlib NET rigctl server (default port 4532). WSJT-X, loggers and anything Hamlib-compatible can read/set frequency, mode and PTT. This is the FT8 path: the desktop GUI has no built-in FT8/FT4 decoder — run WSJT-X against rigctld and the GUI’s audio devices, or use the standalone web decoder. In DIGU/ DIGL the GUI automatically bypasses CESSB/compressor/leveler during TX so data signals stay clean.

Keybindings

⌨ Keybindings… (in Settings) maps keyboard and MIDI to nearly every action — tuning, band/mode/filter changes, AGC/NB/NR/ANF, volume, PTT (toggle and hold-to-talk), TUNE, CW paddles and macros, WPM, and more. Each action has a primary and an alternate slot; click a slot and press the key or MIDI control to capture it. Continuous actions (volume, drive, WPM…) bind to MIDI faders (absolute) or encoders (relative). A dedicated MIDI device can be selected for bindings, or share the keyer’s. Defaults include ←/→ tune (Shift = coarse), ↑/↓ step, +/− volume, M mode, Space PTT.

Settings that matter

  • Audio Devices — input (mic) and output pickers.
  • DSP Pipeline — Full (f64, best quality, default), Lite F32, Lite Q15, Lite uSDX.
  • Remote proxy — audio codec (PCM ~770 kbps, µ-law, Opus 32/64 kbps, Adaptive PCM default — filter-sized, lossless on CW/SSB), waterfall stream on/off, bins (512–4096) and rate (3/6/12 Hz) — the knobs for slow links.
  • TX Options — tune power, SWR protection (auto TX cutoff with threshold and dwell; a red alarm banner with Reset appears when it trips).
  • Calibration — QRG offset, ADC gain (set a known −73 dBm signal to read S9), TX audio gain for CAT rigs.
  • Appearance — ☀ Light / 🌙 Dark / 🖥 System (quick-toggle in the HUD too).
  • Profiles — named snapshots of everything; per-radio state is kept automatically regardless.

Settings live in podsdr-gui/settings.json under your OS config directory (~/.config/podsdr-gui/ on Linux, ~/Library/Application Support/podsdr-gui/ on macOS), auto-saved about once a second. A corrupted file is moved aside and the app starts with defaults rather than crashing. Reset All Settings is under Settings → System.

Current limitations

  • Spectrum zoom/pan isn’t wired yet — the display spans the receiver’s sample-rate bandwidth.
  • No squelch control in this UI.
  • No TCI server (use rigctld); no built-in FT8 decoding (see above).