Demod · User guide for iPhone & iPad · Android guide
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.
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.
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.
| Type | Port | What it is |
|---|---|---|
| KiwiSDR | 8073 | HF web receiver (0–30 MHz) — audio & waterfall come from the server. |
| OpenWebRX | 8073 | Web SDR, HF and VHF/UHF — audio & waterfall come from the server. |
| SpyServer | 5555 | Airspy SpyServer — 8/16-bit I/Q, demodulated on your device. |
| rtl_tcp | 1234 | RTL-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.
An extra RF Front End section appears for rtl_tcp:
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 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.
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.
| Dot | Meaning |
|---|---|
| Green | Your phone reached it just now. |
| Yellow | Unreachable, stale, or not answering like a receiver should. |
| Red | Full, restricted, or limits app connections. |
| Gray | Not 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.
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.
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.
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.
| Gesture | What it does |
|---|---|
| Tap the display | Tune to that spot. |
| Drag (one finger) | Fine-tune — the tuning line follows your finger. |
| Pinch | Zoom the view (1×–50×), anchored under your fingers. Tap the zoom pill to reset. |
| Double-tap | Zoom in to 8× at that point, or back out to 1×. |
| Two-finger drag | Pan the zoomed view without changing tuning. |
| Drag the big frequency | Scrub up/down; the digit under your finger sets the step. |
−/+ 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.
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.
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.
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.
| Mode | Default BW | Range | Use |
|---|---|---|---|
| AM | 10 kHz | 3–20 kHz | Broadcast (MW/shortwave), airband voice. |
| NFM | 12.5 kHz | 6–25 kHz | Narrowband FM (VHF/UHF voice). |
| WFM | 200 kHz | 80–250 kHz | Broadcast FM. |
| USB | 2.7 kHz | 1.2–4 kHz | Upper sideband voice (HF above 10 MHz, utility). |
| LSB | 2.7 kHz | 1.2–4 kHz | Lower sideband voice (amateur HF below 10 MHz). |
| CW | 500 Hz | 0.1–2 kHz | Morse — tune onto the carrier (decoded). |
| RTTY | 1.3 kHz | 1–3 kHz | Radioteletype (decoded). |
| PSK31 | 1.2 kHz | 1–2 kHz | Keyboard-to-keyboard (decoded). |
| FT8 | 3 kHz | 2.5–3.5 kHz | Weak-signal digital (decoded). |
| NAVTEX | 500 Hz | 0.3–1 kHz | Marine text broadcasts on 518 / 490 kHz (decoded). |
| DSC | 500 Hz | 0.3–1 kHz | Marine digital selective calling, MF/HF and VHF ch 70 (decoded, beta). |
| WEFAX | 1.4 kHz | 1.1–2 kHz | HF 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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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).
Everything here is in the Text tab, and it all runs on your device.
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.
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.)
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.
Two lists — one for where you listen, one for what you tune to.
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.
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.
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.
| Control | Version 1.4 | Version 1.5 |
|---|---|---|
| Play / Pause | Connects / disconnects | Unmutes / mutes — the stream stays connected, so Play is instant |
| Next / Previous | Step through memories | Seek up / down to the next station |
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.
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.
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:
| Say | What 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.)
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.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.