Demod · User guide for iPhone & iPad · Android guide

Demod

Networked SDR receiver — User Guide for iPhone & iPad

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 — decode CW, RTTY, PSK31, FT8, NAVTEX, DSC and weather fax, identify what you're hearing, caption and translate it, and record it.

A 1.5 or 1.6 tag marks what that version added.

Demod main screen tuned to a shortwave broadcast on a KiwiSDR: frequency readout, band strip, spectrum and waterfall, the tuning bar and the control tabs.

1 Quick start

  1. Tap the antenna icon (top-left) to open Connection.
  2. Tap Browse public KiwiSDRs (or Browse public OpenWebRX / Browse public servers for SpyServers) and tap a receiver with a green dot — or enter your own server's Host / IP and Port.
  3. You'll see a live waterfall and hear audio. Tap the display to tune, pinch to zoom.
  4. Pick a Mode in the Tune tab below the display.

The round button in the header connects (green) and disconnects (red) 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; enter the Host / IP and Port, then tap Connect. You can also paste a full address such as https://host:443 into Host — Demod splits out the port and turns on TLS for you.

TypePortWhat it is
KiwiSDR8073HF web receiver (0–30 MHz) — audio & waterfall come from the server.
OpenWebRX8073Web SDR, HF and VHF/UHF — audio & waterfall come from the server.
SpyServer5555Airspy SpyServer — 8/16-bit I/Q, demodulated on your device.
rtl_tcp1234RTL-SDR dongle via rtl_tcp — raw 8-bit I/Q, demodulated on your device.

For KiwiSDR and OpenWebRX, Secure (TLS · wss) connects over an encrypted link (it's assumed on for ports 443 and 8443). Once connected, Connect becomes Reconnect and a Disconnect button appears; the sheet closes itself.

The Connection sheet: Browse buttons for public SpyServers, KiwiSDRs and OpenWebRX, the Type picker, Host and Port fields, Connect, Save as favorite and Share, and Recent Servers.
The Connection sheet — browse public receivers, or enter a server and tap Connect.

rtl_tcp — your own RTL-SDR

An extra RF Front End section appears for rtl_tcp:

  • Direct Sampling — Off / I / Q. Receive HF (0–~28 MHz) without an upconverter; Q is typical for the RTL-SDR v3.
  • Upconverter — None, Ham It Up (125 MHz), SpyVerter (120 MHz) or Custom. Tune to the real frequency; Demod applies the offset.
  • Freq. correction — corrects the dongle's crystal error in ppm.

Recent servers

The servers you've connected to appear under Recent Servers (the last 15, newest first) — tap one to fill in the form, swipe left or tap Edit to remove it. To keep a server for good, use Save as favorite (see Favorites & memories).

If the connection drops 1.5

If the stream drops or stalls — a cellular dead zone, a server hiccup — Demod reconnects on its own: up to 5 tries, waiting for the network to come back first. The status line shows Reconnecting… (n/5) and the header button turns orange; tap it (or Stop reconnecting in Connection) to give up. A server that refused you outright (busy, password, app-limited) isn't retried.

3 Public receivers

Connection has three directories of free, volunteer-run receivers: Browse public KiwiSDRs, Browse public OpenWebRX and Browse public servers (Airspy SpyServers). Tap any receiver to connect — if you're tuned outside its range, Demod moves to the middle of its range.

The public KiwiSDR list: a free-slot filter, server count, and rows with status dots, location, frequency range, users and check time. The server map: receivers worldwide as coloured pins.
The list and the map. Each row shows a status dot, range, users and how quickly your phone reached it.
DotMeaning
GreenYour phone reached it just now.
YellowUnreachable, stale, or not answering like a receiver should.
RedFull, restricted, or limits app connections.
GrayNot checked yet, or the directory says it's offline.

Demod checks the receivers near the top of the list from your phone, so the ones it recommends really answer from where you are. A receiver that failed for you this session sinks to the bottom with the reason shown in red; tap it to retry.

4 Tuning & the display

The header shows the tuned frequency in MHz, a status line, and a signal meter. Below it are the frequency ruler and the spectrum/waterfall.

Display modes

The switch at the top-right of the display chooses Split (spectrum over waterfall), Spectrum only, or Waterfall only. Yellow shading marks the passband and a bright line marks the tuned frequency.

Band strip 1.5

A thin coloured strip under the ruler labels the bands in view — 40 m · Amateur, 49 m · Shortwave, Airband — coloured by kind. The band you're in is brighter and outlined.

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. Tap the zoom pill to reset.
Double-tapZoom in to 8× at that point, or back out to 1×.
Two-finger dragPan the zoomed view without changing tuning.
Drag the big frequencyScrub up/down; the digit under your finger sets the step.

The tuning bar

−/+ step by the size chosen in the step menu (1 kHz to 1 MHz), the MHz field takes a typed frequency, and the star saves the current frequency as a memory.

Seek 1.5

Choose Seek at the bottom of the step menu and −/+ become seek down / seek up: Demod sweeps silently to the next signal that fits your mode — an AM station, an SSB voice, a CW tone — and stops there, like a car radio.

  • Inside a band meant for your mode (e.g. 49 m in AM, 40 m in LSB), seek stays in that band and wraps at its edges. Outside any band it searches onward until it finds a signal — usually in the next band with activity.
  • Voice seeks skip the FT8 and PSK31 spots. Pressing the other direction mid-seek cancels it.
  • If nothing turns up you'll see No AM signal found (or your mode) and the dial returns to where you started.
The tuning bar's step menu open, listing step sizes from 1 kHz to 1 MHz and Seek.
The step menu — pick Seek to make −/+ jump between stations.

Rewind & live

The bar under the tuning bar holds about three minutes of audio. Tap ↺15 to go back 15 seconds or drag the slider (it turns orange behind live); tap LIVE to jump back to the present.

5 Modes & bands

In the Tune tab, the MODE row holds the voice modes and the DECODERS row the data modes — exactly one is active. Each mode remembers its own bandwidth.

ModeDefault BWRangeUse
AM10 kHz3–20 kHzBroadcast (MW/shortwave), airband voice.
NFM12.5 kHz6–25 kHzNarrowband FM (VHF/UHF voice).
WFM200 kHz80–250 kHzBroadcast FM.
USB2.7 kHz1.2–4 kHzUpper sideband voice (HF above 10 MHz, utility).
LSB2.7 kHz1.2–4 kHzLower sideband voice (amateur HF below 10 MHz).
CW500 Hz0.1–2 kHzMorse — tune onto the carrier (decoded).
RTTY1.3 kHz1–3 kHzRadioteletype (decoded).
PSK311.2 kHz1–2 kHzKeyboard-to-keyboard (decoded).
FT83 kHz2.5–3.5 kHzWeak-signal digital (decoded).
NAVTEX500 Hz0.3–1 kHzMarine text broadcasts on 518 / 490 kHz (decoded).
DSC500 Hz0.3–1 kHzMarine digital selective calling, MF/HF and VHF ch 70 (decoded, beta).
WEFAX1.4 kHz1.1–2 kHzHF weather fax charts (decoded to an image).

On KiwiSDR: it's HF-only, so WFM switches to AM, and the data modes are received as USB audio — RTTY, PSK31, FT8, NAVTEX, MF/HF DSC and WeatherFAX still decode from it. On an OpenWebRX receiver with several bands, a BAND menu at the top of the Tune tab picks the one you want.

Band presets 1.5

The BAND menu in the Tune tab lists the bands for the receiver's country — broadcast, shortwave, amateur, aviation, marine, personal radio, time and weather, military — grouped by kind. Pick one to set its mode and bandwidth and land on it. Demod chooses the plan from the receiver's location (14 countries plus regional plans); the caption under the menu says which plan and why.

The sliders button next to the menu opens Bands: choose a different Band plan, swipe a band to Edit or Hide it, Add a band of your own, or Restore built-in presets.

6 Controls

On iPhone the controls sit in five tabs under the display. On iPad they're all in one scrolling column on the right, with your favorites and memories in a rail on the left when there's room.

The Audio tab: volume, gain, squelch and audio output. The DSP tab: signal correction toggles, noise reduction and waterfall contrast.
The Audio and DSP tabs. (The Tune tab is in the screenshot at the top of this guide.)
TUNE
Band menu, MODE, DECODERS (a Ham digital row and a Maritime row), BANDWIDTH, and SAMPLE RATE when the server offers more than one.
AUDIO
VOLUME with mute, GAIN (Auto or manual), SQUELCH (mutes audio below a threshold — handy on quiet FM channels), and AUDIO OUTPUT for AirPlay and other outputs.
DSP
Signal correction: DC blocker, IQ DC-offset removal, Noise blanker (clicks and electrical noise), Hum notch with a 50/60 Hz mains choice, and — on SpyServer — Sample depth (8/16-bit). Noise reduction with a strength slider works on every source. Waterfall contrast on Auto follows the noise floor; turn it off for manual Floor/Ceil.
TEXT
Record, Live Text and translation — see section 9.
SCAN
The scanner — see section 10.

7 Decoders

Choose CW, RTTY, PSK31 or FT8 in the DECODERS row — that turns the decoder on. For CW tune onto the carrier; for the data modes, tune like a USB signal so it sits in the passband. Decoding is marked BETA: how much it gets depends on the signal and the server's audio.

CW mode with the decoded text strip below the display. FT8 mode with a list of decoded messages, CQ calls in green.
CW text scrolls in a strip; FT8 messages arrive in a list every 15 seconds.

CW / RTTY / PSK31

Text scrolls across a green strip below the display. Tap it to open a full-screen reader; long-press to Copy text; ✕ clears it.

FT8

FT8 runs in 15-second slots; each slot's messages appear a few seconds after it ends, with SNR and audio frequency. CQ calls are green; tap a message to copy it.

FT8 depends on precise time — keep your device's clock set automatically.

NAVTEX, DSC & WeatherFAX 1.6

The Maritime row holds three more decoders. The quickest way in is the Maritime data group in the BAND menu, which sets the mode and lands on the channel. The VFO shows the station's published frequency. These decoders are receive-only and not for navigation or safety: use them to listen, never in place of proper marine equipment.

NAVTEX

Text broadcasts on 518 kHz (English) and 490 kHz (local language). Stations send in scheduled slots, so a message can take a while. Each message appears in a list with its station and subject; tap one to read it, copy it or share it. Repeats of the same message are shown once.

DSC BETA

Digital selective calling on the MF/HF channels (2187.5, 8414.5 kHz and others) and VHF channel 70 (156.525 MHz). Pick DSC and tune: Demod uses the VHF decoder above 30 MHz. Calls are sporadic and most are routine or tests. Each one shows its category, who called whom, and the country. DSC is marked beta.

WeatherFAX

HF weather fax charts build up line by line under the display. Charts follow a broadcast schedule; Demod waits for the start tone and lines the chart up from its phasing signal. Tap the chart for full screen (pinch to zoom, rotate). Drag sideways to shift it, use Slant to straighten a chart that leans, New, Save and Share, and the photos button for your saved charts. A chart is saved automatically when it ends, when you retune, change mode or stop, and when Demod goes to the background. Saved charts are kept on your device and also appear in the Files app.

NAVTEX messages and DSC calls are kept in a log on your device, so they are still there after you retune or reopen the app. The trash button in the panel clears a log.

8 Identify a signal

Tap Identify at the bottom-right of the display to ask "what is this signal?". Demod measures the signal you're tuned to — width, carrier, sidebands, keying — and matches it against the band plan and the international shortwave broadcast schedule (HFCC).

The Signal ID card for 5.935 MHz: AM broadcast, likely WNQM (English), medium confidence, with a Save button and measured evidence.
The Signal ID card — a verdict, how sure it is, and what it measured.

9 Live Text, translation & recording

Everything here is in the Text tab, and it all runs on your device.

The Text tab: Record button, Live Text toggle, Language and Translate to menus, and Recordings.
Record, caption and translate from the Text tab.

Captions work best on clear voice — broadcast AM, strong SSB. Recording during a reconnect saves the current file and starts a new one when the stream is back.

10 Scanner

The Scan tab sweeps until it finds activity, holds while the signal lasts, then moves on. (To jump to one station and stay there, use Seek instead.)

MEMORIES
Step through your saved frequencies.
BAND
Step across a Start–Stop range by the Step you choose.
SMART
Find active signals of your mode across the captured band and hop between them.

Smart auto-level stops on anything a Margin above the noise floor; turn it off to set a fixed Stop level. While scanning, ⏮ ⏭ hand-step and ⏸ pauses.

11 Favorites & memories

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

The Frequencies sheet: Save current, the Memories list, and Import/Export CSV.
Frequency memories — save, tap to jump, import and export as CSV.

Favorites — receivers

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. Star public receivers straight from the browser.

Frequencies — memories

star icon, top-right

A memory stores a frequency, mode and bandwidth — save one with the tuning-bar star. Export/Import CSV (name,frequency_hz,mode,bandwidth_hz,notes) to move lists between devices.

12 Lock screen, CarPlay & Siri

Demod keeps playing with the screen off and shows what you're tuned to on the Lock Screen and in Control Center. A phone call or Siri pauses it; it resumes when iOS allows, or press Play.

ControlVersion 1.4Version 1.5
Play / PauseConnects / disconnectsUnmutes / mutes — the stream stays connected, so Play is instant
Next / PreviousStep through memoriesSeek up / down to the next station

Sleep timer 1.6

Tap the moon in the header while connected and choose 15, 30, 45, 60, 90 or 120 minutes. The time left shows next to the moon. The audio fades out over the last 30 seconds, then Demod stops as if you'd pressed Stop (a recording is finished and saved). Choose another time to restart it, or Cancel Sleep Timer. Pressing Stop also cancels it. Connecting to CarPlay cancels it.

AirPlay & HomePod 1.6

The AirPlay button in the header sends Demod's audio to a HomePod, Apple TV or other AirPlay speaker. It's the same picker as AUDIO OUTPUT in the Audio tab and the one in Control Center.

CarPlay 1.5

Demod appears on the car's screen with two tabs: Receivers (your favorites — tap to connect) and Memories (tap to tune). Now Playing shows the frequency, mode, server, country and band, with a live waterfall as the artwork, and two buttons:

Siri & Shortcuts 1.5

SayWhat happens
"Ask Demod what this signal is"Identifies the signal you're tuned to.
"Tune Demod"Asks for a frequency (and optional mode) and tunes.
"Listen to name in Demod"Connects to one of your favorites.
"Play memory in Demod"Tunes to a saved memory.
"Start listening with Demod" · "Stop Demod"Connects / stops.
"Next station in Demod"Next memory.
"What is Demod tuned to"Reads back the frequency and mode.

All of these are also actions in the Shortcuts app. (Identify works by voice in 1.4 too.)

13 Sharing & links

In Connection, Share this connection sends a link carrying the server, frequency, mode, bandwidth and gain. On a device with Demod it opens the app and asks "Connect to this receiver?" first — Demod never connects from a link without asking, so only continue if you trust where it came from. Without Demod, the link opens a web page with the App Store and Google Play links.

14 Tips & troubleshooting

  • Public receivers are volunteer-run and may be slow, full or offline. If one won't play, pick another green one — the failure reason is shown on the row.
  • "Too many connections from your network" on a KiwiSDR means that receiver limits how many people can listen from one address; try another.
  • A yellow warning bar under the header means a SpyServer can't keep up — try 8-bit sample depth, a lower sample rate, or another server.
  • Your own server: make it listen on all interfaces (e.g. rtl_tcp -a 0.0.0.0), and allow Local Network access if asked (Settings → Privacy & Security → Local Network → Demod). Tailscale and other VPNs work too.
  • HF on an RTL-SDR: turn on Direct Sampling (Q) or set an Upconverter.
  • Buzz or hum: turn on Hum notch (50 Hz in Europe/Asia, 60 Hz in the Americas) and Noise reduction in the DSP tab.
  • Weather fax on your own RTL-SDR: if the dongle's centre spike spoils the chart, turn on IQ DC-offset removal in the DSP tab. (NAVTEX and DSC remove it automatically.)
  • Watching the waterfall: About → Keep screen on while listening 1.5 stops auto-lock while you're connected.

15 Privacy & support

Demod collects no data — no accounts, no analytics, no tracking, no ads. Connections go directly from your device to the receiver you choose; captions, translation, Identify and the decoders run on the device. Weather fax charts and the NAVTEX and DSC logs are saved on your device only. See the full privacy policy.

Questions, bugs or feature requests: digitalstructures@proton.me — or use Email support in the app's About screen.