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

Decoders

Every mode is a channel. This page lists them, says how well each is tested, and covers the modes that need more than a frequency.

Catalog

+ Add lists the modes in the running build, grouped as below.

GroupTested on airFixture onlyExperimental
Analog voiceAM, NFM, SSB, WFM with stereo and RDS
Digital voiceDMR, FreeDV 1600D-STAR, System Fusion, NXDN, P25 Phase 1, dPMR, M17
AviationADS-B (1090ES)ACARS, VDL Mode 2, HFDL, Inmarsat Classic AeroVOR, ILS localizer and glideslope
MarineAIS, NAVTEX, DSC, Inmarsat STD-C and EGC
Amateur and HFCW skimmer, FT8, FT4, WSPRAPRS / AX.25, RTTY, PSK31 to PSK250, Morse
Paging and telemetryPOCSAGFLEX, ERMES, Selcall (CCIR, ZVEI), Sub-GHz OOK/FSK, ISM sensors, DCF77, WWVB, MSF, JJY
Pictures and videoSSTV, ATV
Broadcast digitalDAB and DAB+DVB-T/T2, DATV (DVB-S/S2), DRM30 and DRM+
UtilitySignal identifierIridium bursts, DECT surveyGNSS lab (GPS L1 C/A)
LabelMeans
Tested on airVerified live, through a real radio and the full receiver
Fixture onlyVerified on recordings, generated IQ, or reference vectors. Not yet verified live.
ExperimentalPartly works. See the limits below.

Fixtures catch decoding bugs but say little about drift, fading, or interference. The fixture library lists where each recording came from. VDL Mode 2, HFDL, Inmarsat Classic Aero and STD-C, DSC and Iridium started as ports of xng. Inmarsat Classic Aero reads the P channel, R/T bursts from aircraft, or a C voice circuit; pick one on the node. Iridium decodes one 50 kHz channel, or bursts across 1 to 10 MHz when you set its span to the radio's sample rate; it reads the middle 80%.

Have a short on-air recording of a fixture-only mode, with the decoded output? It is the most useful contribution there is. See Build and test.

Experimental limits

ModeWorksMissing
DATVDVB-S/S2/S2X, programme tables, audio, video, GSEVerified on synthetic IQ only
DVB-T/T2DVB-T HP/LP, T2-Base and Lite, SISO/MISO, 1K to 32K, PLP choice, audio, videoSynthetic IQ only. No GSE, no multi-RF TFS.
DRM30 / DRM+Lock, SNR, frequency errorNo FAC, SDC, or MSC. No services or audio.
GNSS labGPS L1 C/A acquisition and navigation dataNo position fix
VOR / ILSRadial, difference in depth of modulationTested on generated signals only

DAB and DAB+

Wire audio to a Speaker. Auto plays the first audio service. Generation limits the choice to DAB or DAB+. Transmission picks mode I to IV. All run at 2.048 MS/s. Only mode I has been received on air.

A Readout shows the dynamic label and slideshow. The Decoder log keeps received MOT objects with a download link. Files are offered for download, never opened in the interface.

Packet services appear in the same list as audio services. IP services emit datagrams, see IP data.

DVB

DVB-T/T2 and DVB-S/S2 play the chosen programme's first audio and video streams. Wire audio to a Speaker and video to a Video node. Pick a discovered programme or enter its number.

DVB-T/T2: set Standard and Bandwidth. Everything else is read from the signal. Low priority stream picks DVB-T LP. PLP picks a DVB-T2 pipe, or the first TS pipe if left empty. 1.7 MHz fits a 2.048 MS/s radio.

DVB-S/S2: set Symbol rate from 100 kBd to 4 MBd. The channel rate is twice the symbol rate, so a 2 MBd carrier needs a radio that delivers 4 MS/s. Set Roll-off to match the transmitter. DVB-S is always 0.35. DVB-S2 finds the MODCOD on its own, including VL-SNR. Input stream picks one stream on a multistream carrier.

Superframes enables DVB-S2X Annex E formats 0 and 1. Formats 2 to 7 are not supported.

IP data

DAB IP services and DVB-S2 GSE carry IP packets. To put them on your network, wire the channel's events to an Event output, choose Network interface, and set an interface name, address, and prefix. SDR-- creates a TUN interface and writes the packets to it.

SystemNeeds
LinuxCAP_NET_ADMIN for the server
macOSPermission to create a utun interface; name it like utun8
WindowsAdministrator rights and wintun.dll beside the executable

Routing and multicast are up to your operating system.

Databases

Wire events to an Event output and choose PostgreSQL or InfluxDB.

PostgreSQL creates the table on first write: one row per event with time, kind, frequency, station, summary, and the full record as jsonb. Add ?sslmode=disable to the URL for a server without TLS.

InfluxDB 2 and 3 take one point per event. The measurement is the event kind, and numbers, flags, and short text from the event become fields.

DMR trunking

Add DMR trunk system, wire Device iq, and enter the control channel in MHz. Pick the system type or leave it on auto. The node creates the DMR channels it needs.

SystemFinds its channels by
Tier III, including Capacity MaxReading channel definitions from the control channel
Capacity PlusWatching for carriers that share rest-channel changes
Hytera XPTSame as Capacity Plus, with XPT signalling

Following runs on the server with no browser open. Voice channels must fit inside the Device's window. A grant outside it is reported.

Record calls keeps finished calls and their audio in memory. Encrypted calls keep only metadata.

SSTV

Tune SSTV to the SSB carrier. A picture takes from 36 seconds to four and a half minutes.

SettingDoes
Follow VISReads the mode from the transmission
Manual modeUses the chosen mode when the header was missed
Slant correctionStraightens pictures from a slightly off clock. Leave it on.
Keep unfinished picturesSaves a picture cut short by a fade

Modes: Robot 36 and 72, Martin M1 and M2, Scottie S1, S2 and DX, PD50 to PD180, Wraase SC2-180.

Wire video to Video to watch a picture arrive. Finished pictures are saved as PNG on the server, even with no client open, and kept for 24 hours, up to 512 pictures.

DECT

The DECT channel surveys base stations: identity, capabilities, and security. It reads signalling only, never call audio.

It needs a radio that reaches 1.9 GHz at 2.304 MS/s or more. HackRF and SDRplay work, RTL-SDR does not.

SettingChoice
BandEurope 1880 to 1900 MHz, or US 1920 to 1930 MHz
SideBase, Handset, or Both

Carriers are 1.728 MHz apart. European carrier 0 is 1897.344 MHz and the numbers count down. US carriers count up from 1921.536 MHz.

Each record lists the base identity (RFPI), system information, capabilities, advertised and observed security, and handset IDs seen during encryption setup. Encryption is marked active only after a grant is seen. Advertised support does not prove a call was encrypted, and missing signalling does not prove it was not.

ISM sensors

The Sub-GHz channel decodes known sensors and shows raw frames for everything else.

CodingSensors
Pulse positionNexus-T/TH, Rubicson (also Solight TE44, EMOS E0107T), Acurite 609TXC and 606TX, Prologue-TH, inFactory-TH, Kedsum-TH, Springfield soil probe
Pulse widthLaCrosse TX141TH-Bv2, Fine Offset WH2, Auriol HG02832, Geevon TX16-3, WS2032, EMOS E6016, Rubicson 48942, WT0124, Opus XT300
ManchesterAmbient Weather F007TH
FSKAmbient Weather WH31E, Renault TPMS, Toyota TPMS
Differential ManchesterWT450-TH

A reading is shown only after its checksum passes. Decoding follows rtl_433 (GPL-2.0-or-later).

Pager text

Some German POCSAG networks send umlauts as { | } [ \ ] ~. SDR-- converts them inside lowercase words only: M}nchen becomes München, Stra~e becomes Straße. [ALARM] and all-caps messages stay as sent.