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

Troubleshooting

The universal first step for the server and desktop apps: run from a terminal with logging on.

RUST_LOG=info ./run.sh            # both the server and GUI bundles ship run.sh
RUST_LOG=debug ./run.sh           # protocol-level detail

(Windows: set RUST_LOG=info then run the .bat / .exe from a terminal.)

Installing & launching

macOS: “PodSDR can’t be opened” / app is killed immediately. The bundles are ad-hoc signed, not notarized. Right-click → Open once, or clear quarantine: xattr -dr com.apple.quarantine PodSDR.app (for the server bundle: xattr -dr com.apple.quarantine . inside the bundle directory).

Linux GUI won’t start. Needs glibc 2.31+ (Ubuntu 20.04 / Debian 11+), an X11 or Wayland session, ALSA/PulseAudio, and ideally a Vulkan-capable GPU (wgpu falls back to GL). RUST_LOG=info ./run.sh shows which piece is missing.

Windows: window never appears. Run podsdr-gui.exe from a terminal with RUST_LOG=info; the GUI wants a DirectX 12-capable GPU/driver.

Browser & web client

Certificate warning on every visit / “connection not private”. Expected once per browser profile with the self-signed certificate. If it never sticks, or you connect by an address that isn’t in the certificate, restart the proxy with --tls-san <your-ip-or-hostname> after deleting the old cert.pem/key.pem (they’re next to the proxy binary).

ERR_SSL_PROTOCOL_ERROR. You opened https:// but the proxy is running without --tls (plain HTTP). Use http://, or start with TLS (the default run.sh does).

No microphone / MIDI / choppy audio over plain HTTP. Browsers withhold mic capture, WebMIDI and low-latency audio outside a secure context. Serve over HTTPS (the default) or via http://localhost only.

Radio list is empty in the browser. Check /api/devices on the proxy (e.g. curl -k https://pi.local:8080/api/devices). If it’s empty, the proxy can’t see the radio: same subnet? UDP 1024 open? For radios on other subnets add a manual host.

Radio & connection

Desktop GUI doesn’t find the radio / emulator. Both ends must be on the same broadcast domain. If discovery lands on the wrong interface (VPNs), use Discover at IP, or start the emulator with --bind <lan-ip>.

Emulator fails to bind port 1024 on Linux. sudo setcap 'cap_net_bind_service=+ep' ./podsdr-emu (or run it once with sudo).

Emulator connects but I hear only noise. That’s what it produces by default. Start it with --echo or --echo-live to hear your own TX back — see Using the emulator.

“session limit reached” from the proxy. More concurrent clients than --max-sessions (default 32). Raise it, or wait — dead sessions are reaped within ~30 s.

Second client can’t connect to a CAT radio. Serial ports are exclusive; one control session per CAT radio at a time. Cloud listener roles can still monitor.

PTT greyed out / button reads “RX ONLY”. You’re tuned inside a configured receive-only range (or connected with a listener role). See receive-only bands.

Cloud

No pairing code in the console. Codes are only issued while the proxy is unclaimed. If it was claimed before (message: already claimed), connect with the owning account, or look in the logs: journalctl -u podsdr-proxy | grep "with code:".

Proxy refuses to start the uplink (“hub public key”). A non-localhost broker requires --hub-public-key. Get it from your broker deployment (the public bundles bake in the public broker’s key); --insecure-open-mode bypasses the check for development only — it gives every client TX rights.

Proxy shows online but connect fails from far away. Give it a moment — TURN relaying (including over 443) engages automatically on restrictive networks. Check the client-side stage label for where negotiation stops.

CAT radios

Serial port won’t open. Is the radio powered on and the cable in? Is another program (logger, WSJT-X) holding the port? The proxy retries the open briefly, then logs an actionable error. The web config panel and podsdr-proxy configure can autodetect the right port.

TX audio too quiet/loud on a CAT rig. Adjust tx_audio_gain_db (also live from the client’s TX-Audio panel); RX level via rx_audio_gain_db.

Icom scope panadapter is jerky. Raise the CI-V baud rate (e.g. 115200) on both the radio and the config.

Settings

All clients move a corrupted settings file aside (*.corrupt.<timestamp>) and start with defaults, telling you about it — nothing is silently lost. “Wipe all settings” (discovery screen) and “Reset All Settings” (desktop Settings → System) are the explicit resets.