Demod

Networked SDR receiver — User Guide

Demod turns your iPhone or iPad into the front panel of a software-defined radio somewhere else in the world. Connect to a receiver, watch the spectrum, tune, and listen — or decode CW, RTTY, PSK31 and FT8.

Demod main screen: frequency readout, a split spectrum-and-waterfall display with a tuned FM station, the tuning bar, and mode and bandwidth controls.

1 Quick start

  1. Tap the antenna icon (top-left) to open Connection.
  2. Tap Browse public servers to pick a free public receiver, or enter your own server's Host / IP and Port.
  3. Tap a server (or Connect) — you'll see a live waterfall and hear audio.
  4. Tap the display to tune, pinch to zoom, and choose a Mode.

The big green play button in the header connects and disconnects at any time. Everything you set — server, frequency, mode, controls — is remembered and restored the next time you open the app.

2 Connecting to a receiver

Open Connection from the antenna icon and pick a Type. Demod fills in that type's usual port automatically; enter the Host / IP and Port, then tap Connect.

TypePortWhat it is
rtl_tcp1234RTL-SDR.com / rtl_tcp — raw 8-bit I/Q, demodulated on your device.
SpyServer5555Airspy SpyServer — 8/16-bit I/Q, demodulated on your device.
KiwiSDR8073KiwiSDR HF web receiver — audio & waterfall come from the server.

Once connected, Connect becomes Reconnect and a Disconnect button appears. The Status line shows the device name and data rate when you're live.

The Connection sheet: a Browse public servers button, a Type picker set to rtl_tcp, Host and Port fields, an RF Front End section, and Connect / Save as favorite / Share buttons.
The Connection sheet — pick a Type, enter host and port, and tap Connect.

rtl_tcp — receiving HF

For an RTL-SDR dongle, an extra RF Front End section appears:

  • Direct SamplingOff / I / Q. Enable to receive HF (0–~28 MHz) without an upconverter; Q is typical for the RTL-SDR v3.
  • UpconverterNone, Ham It Up (125 MHz), SpyVerter (120 MHz), or Custom. With one set, just tune to the real frequency — Demod applies the offset for you.

Saved servers & favorites

Servers you've used appear under Saved Servers — tap to reload, swipe to delete. Save as favorite keeps the current server and its tuning as a named station (see Saving & recall).

3 Browsing public servers

Tap Browse public servers for a live directory of free public SpyServer / Airspy receivers around the world.

The Public Servers browser: an 'Online with a free slot' filter, a count of 192 servers, and a list of receivers each with a green status dot, frequency range, host and port, and user count.
Tap any server to connect. Each row shows a status dot, frequency range, host:port and user count.

KiwiSDR isn't in this list. The public browser covers Airspy/SpyServer receivers only. To use a KiwiSDR, choose KiwiSDR as the Type and enter its host and port (usually 8073) by hand — public KiwiSDRs are listed at kiwisdr.com/public.

4 Tuning & the display

The header shows the tuned frequency in MHz to six decimals, an S-meter with a dB readout, and the data rate. Below it is the spectrum/waterfall.

Display modes

The Display switch (top-right of the display) chooses Split (spectrum above, waterfall below), Spectrum only, or Waterfall only. A yellow band marks the passband; a bright line marks the tuned frequency.

Demod in full Waterfall display mode: a colored time-frequency waterfall fills the display, with the grid icon selected in the Display switch.
Full Waterfall mode. The Display switch also offers Spectrum-only and the default Split view.

Gestures

GestureWhat it does
Tap the displayTune to that spot.
Drag (one finger)Fine-tune — the tuning line follows your finger.
PinchZoom the view (1×–50×), anchored under your fingers.
Double-tapToggle zoom — in to 8× at that point, or back out to 1×.
Two-finger dragPan the zoomed view without changing tuning.
Drag the big frequency numberScrub up/down; the digit under your finger sets the step size.

The tuning bar

Under the display: /+ buttons step by the current step size, a MHz field lets you type a frequency directly, and a step-size menu selects the step (1 kHz up to 1 MHz). The star button saves the current frequency.

5 Modes

Modes live in the Controls. The MODE row holds the voice modes and the DECODERS row holds the data modes — picking one clears the other, so exactly one mode is active. Each mode remembers its own bandwidth.

ModeDefault BWRangeUse
AM10 kHz3–20 kHzShortwave / airband voice.
NFM12.5 kHz6–25 kHzNarrowband FM (VHF/UHF voice).
WFM200 kHz80–250 kHzBroadcast FM.
USB2.7 kHz1.2–4 kHzUpper sideband voice/data.
LSB2.7 kHz1.2–4 kHzLower sideband voice (HF < 10 MHz).
CW500 Hz0.1–2 kHzMorse (700 Hz tone).
RTTY1.3 kHz1–3 kHzRadioteletype (decoded).
PSK311.2 kHz1–2 kHzKeyboard-to-keyboard (decoded).
FT83 kHz2.5–3.5 kHzWeak-signal digital (decoded).

On KiwiSDR: WFM isn't available (KiwiSDR is HF) and falls back to NFM, and the data modes are received as plain USB — RTTY/PSK31/FT8 still decode from that audio.

6 Controls

On iPhone the controls scroll below the display; on iPad they sit in a sidebar to the right.

BANDWIDTH
Slider over the current mode's range; the readout shows kHz.
GAIN
An Auto toggle plus a manual gain slider (disabled while Auto is on).
SAMPLE RATE
Appears when the server offers more than one rate. Wider shows more spectrum but needs more bandwidth.
VOLUME
Mute button + slider. Moving the slider unmutes.
SQUELCH
Turn On, then set a threshold (−100…0 dB) below which audio is muted — handy for quiet FM channels.
SIGNAL CORRECTION
DC blocker (on by default), IQ DC-offset removal, Noise blanker (impulse/electrical noise), Hum notch (60/120 Hz) (mains hum), and — on SpyServer — Sample depth (8-bit / 16-bit).
AUDIO OUTPUT
An AirPlay picker to send audio to HomePod, Apple TV, or other AirPlay devices.
WATERFALL CONTRAST
Floor and Ceil sliders set the color range; raise the Floor to hide noise, lower the Ceil to bring up weak signals.
The Signal Correction controls scrolled into view: IQ DC-offset removal, Noise blanker and Hum notch (60/120 Hz) toggles, the AirPlay audio-output picker, and the Waterfall Contrast Floor/Ceil sliders.
Signal Correction, audio output and waterfall contrast — near the bottom of the controls.

7 Decoders

Selecting CW, RTTY, PSK31 or FT8 in the DECODERS row turns the decoder on — there's no separate switch. Tune so the signal sits in the passband (for the data modes, centered like a USB signal).

Demod in CW mode: a green 'Listening for CW…' decode strip sits below the tuning bar, with CW selected in the DECODERS row and the bandwidth narrowed to 0.5 kHz.
In a decoder mode, text scrolls across a strip below the display (here, CW waiting to lock on).

CW / RTTY / PSK31

Decoded text scrolls across a green strip below the display ("Listening for CW…" until it locks on). Long-press to Copy text, or tap ✕ to clear.

FT8

FT8 works in 15-second slots; each slot's messages appear about 3 seconds after it ends, newest on top, with SNR and audio frequency. CQ calls are highlighted; tap a message to copy it.

FT8 depends on precise time — keep your device clock accurate.

8 Saving & recall

Two separate lists — one for where you listen, one for what you tune to.

The Frequencies sheet: a Save current button, a Memories list with example entries (WWV 10 MHz, FM Broadcast, Airband ATIS, 2m Calling, 40m SSB) each showing frequency and mode, and Import/Export memories buttons.
Frequency memories — save channels with a name, then tap to jump; export/import as CSV.

Favorites — stations

bookmark icon, top-left

A favorite stores a server plus its tuning as a named station. Tap it to reconnect and tune; swipe to rename; Edit to reorder or delete.

Frequencies — memories

star icon, top-right

A memory stores a frequency, mode and bandwidth. Save with the tuning-bar star. You can Export / Import CSV to move lists between devices.

On the lock screen, Play/Pause connects and disconnects, and Next/Previous step through your saved memories.

9 Sharing & links

In Connection, Share this connection creates a demod:// link carrying the server, frequency, mode, bandwidth and gain. Opening it on another device with Demod installed shows a "Connect to this receiver?" confirmation first — Demod never auto-connects from a link, so only continue if you trust where it came from.

10 Tips & troubleshooting

  • Connecting to your own server: make sure it listens on all interfaces (e.g. rtl_tcp -a 0.0.0.0), not just localhost.
  • Local network prompt: for a server on your Wi-Fi or over Tailscale/VPN, allow Local Network access if asked (Settings → Privacy & Security → Local Network → Demod).
  • Receiving HF on an RTL-SDR: enable Direct Sampling (Q) or set an Upconverter.
  • A yellow warning bar under the header means the server can't keep up in real time — try a lower sample rate, or a closer/less-busy server.
  • Public servers are volunteer-run and may be slow, full, or offline — if one won't play, pick another.

11 Privacy & support

Demod collects no data — no analytics, no tracking, no ads. Connections go directly from your device to the server you choose. See the full privacy policy.

Questions, bugs, or feature requests: digitalstructures@proton.me