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

Channels and decoding

A channel receives one frequency from a Device's IQ stream. Retuning the Device preserves channel frequencies. Channels outside its reception range stay configured and resume when the radio covers them again.

Add a channel

Choose a mode from + Node and connect Device IQ to channel IQ. Set the channel frequency, then connect the outputs you need:

OutputDestinationResult
audioSpeakerLive audio
eventsReadoutStation text, aircraft tables, and other current state
eventsDecoder logStored message history
eventsMapDecoded positions
eventsExportCSV or JSON of stored rows
videoVideoATV frames or an SSTV picture

Channel catalog

The Decoders palette lists modes available in the running build. Support and test coverage vary by mode:

GroupChannelsMaturity
Analog voiceAM, NFM, SSB, WFM (broadcast, with stereo and RDS)tested on air
Digital voiceDMRtested on air
Digital voiceFreeDV 1600tested on air
Digital voiceD-STAR, System Fusion, NXDN, P25 Phase 1, dPMR, M17fixture-only
AviationADS-B (1090ES)tested on air
AviationACARS, VDL Mode 2, HFDL, Inmarsat Classic Aerofixture-only
AviationVOR, ILS localizer / glideslopeexperimental
MarineAIS, NAVTEX, Digital Selective Calling, Inmarsat STD-C / EGCfixture-only
Amateur data and HFAPRS / AX.25, RTTY, PSK (31, 63, 125, 250 baud), Morse (CW), CW skimmer, FT8, FT4, WSPRfixture-only
Paging and telemetryPOCSAGtested on air
Paging and telemetryFLEX, ERMES, Selcall (CCIR/ZVEI), Sub-GHz OOK/FSK frames, ISM sensors, radio clocks (DCF77, WWVB, MSF, JJY)fixture-only
VideoATV, SSTVfixture-only
Wideband digitalDAB / DAB+, DATV (DVB-S / S2), DRM30 / DRM+experimental
UtilitySignal identifier, Iridium bursts, DECT base station surveyfixture-only
UtilityGNSS lab (GPS L1 C/A)experimental

Optional services, trunking variants, and vendor extensions may be unsupported. Check the mode-specific limits below.

What the maturity labels mean

LabelEvidence
tested on airLive reception verified through the receiver and decoder integration
fixture-onlyGenerated IQ, reference vectors, or recordings tested; live integration unverified
experimentalPartial acquisition, decoding, or measurement support

Fixture tests catch decoding errors but provide limited evidence for drift, interference, transients, and multipath. Labels apply only to the tested services.

The fixture library lists recording origins and expected output, including DMR, ADS-B, FreeDV 1600, and FT8. Some modes also use published protocol vectors. Iridium uses off-air bits in a synthetic waveform.

VDL Mode 2, HFDL, Inmarsat Classic Aero, Inmarsat STD-C, and DSC use xng. Their labels describe the SDR-- integration's coverage.

ISM sensors

A Sub-GHz channel decodes known sensor payloads and displays raw frames for other signals. Supported devices are grouped by pulse coding:

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

Readings can include temperature, humidity, soil moisture, wind speed and direction, rainfall, tyre pressure, and power. Renault TPMS adds Manchester coding after framing; Toyota TPMS adds differential Manchester.

The decoder checks pulse timings and the device's checksum, digest, or parity before reporting a reading. Unrecognised bursts remain available in the raw timing view. FSK sensors use bit periods of 55–58 µs; the default minimum pulse width admits these signals.

Pulse slicing, payload layouts, validation rules, and CRC/LFSR digest routines follow rtl_433, licensed GPL-2.0-or-later.

Experimental mode limits

ModeAvailable outputMissing or limited functionality
DAB / DAB+FIC and MSC decoding, CRC-checked DAB+ access unitsNo audio codec or playback
DATVDVB-S/S2 transport packets and programme tables, or generic-stream datagramsNo audio or video codec output
DRM30 / DRM+Acquisition, lock, SNR, and frequency errorNo FAC, SDC, or MSC decoding; no service labels or media
GNSS labGPS L1 C/A acquisition and NAV telemetryNo position solution
VOR / ILSRadial or difference in depth of modulationTested only against analytically generated signals

To add on-air coverage, contribute a short IQ capture restricted to the relevant band, with its expected decoded output. See Build and test and the contribution guide.

Pager text

POCSAG uses seven-bit text. Some German networks substitute umlauts and ß using DIN 66003. SDR-- applies that mapping inside words next to lowercase letters: M}nchen becomes München and Stra~e becomes Straße.

Other text stays ASCII, including [ALARM] and entirely uppercase messages. There is no manual character-set setting.

Sample rate and passband

Keep the channel's full occupied bandwidth inside the Device's reception range. If it does not fit, retune the Device, move the channel, or increase the sample rate.

Most channels resample IQ internally. These modes require a specific device rate:

ChannelDevice rate
ADS-B2–4 MS/s
ATV2–20 MS/s
GNSS lab2.048 MS/s

The channel reports incompatible rates and offers a suitable choice. Use the lowest rate that covers your signals to reduce USB traffic and CPU load.

Tuning and squelch

Tune through the channel dial, its Scope marker, or keyboard shortcuts. Direct entry accepts MHz by default, or an explicit kHz, MHz, or GHz suffix. Step buttons adjust by −25, −5, +5, or +25 kHz.

The lock beside a dial prevents changes to that frequency. A locked channel does not lock its source Device. You can set channel frequencies before connecting a radio; an untuned Device initially opens over its connected channels.

Squelch

ModeBehaviour
OffPass all signals
ManualOpen above a fixed level; lower thresholds open more easily
AutoOpen a chosen number of dB above the measured noise floor

The level meter marks the opening threshold. Auto learns during quiet periods, so a continuous signal can be mistaken for noise. Once open, the floor cannot rise and suppress a long transmission. Returning to Manual restores the previous manual threshold.

NFM also supports tone squelch:

SettingBehaviour
DetectReport CTCSS or DCS without gating audio
CTCSSOpen only for the selected tone
DCSOpen only for the selected code

Compander applies 2:1 audio expansion for links using matching compression. Leave it off for ordinary NFM. Expansion stops 20 dB below the reference level; sub-audible tones are excluded from level tracking.

Audio processing

The Audio block processes stages in this order. All are off by default except AM and SSB AGC.

StageEffect and controls
BlankerRemoves IQ impulses before the channel filter. Lower thresholds remove more impulses but can also damage the wanted signal.
De-clickRemoves short audio impulses after demodulation. Detection compares each sample with the surrounding level and neighbours; width is set by mode.
PassbandSets low and high audio cutoffs. Narrow the range to the audio you need.
NotchesRemoves up to four selected frequencies, each with an adjustable width.
Auto notchSuppresses steady carriers without manual frequency selection.
DenoiseTracks the noise floor in each spectral bin and attenuates bins without a detected signal. Strength ranges from no attenuation at 0 to 20 dB at 100. Continuous carriers can be treated as noise.
AGCLevels audio. Slow suits SSB speech, fast suits tuning, and medium provides an intermediate response.

Blanker acts on IQ before filtering to reduce impulse ringing. The remaining stages process audio.

Identifying a signal

Add Signal identifier and select a span up to 192 kHz wide. It reports detected transmissions, loudest first, with modulation, frequency, bandwidth, symbol rate, deviation, burst timing, and OFDM timing where measurable.

Candidates combine four kinds of evidence:

EvidenceContribution
WaveformModulation and measured timing
FrequencyLikely services for the band
BurstsDistinguishes signals with similar modulation
Decoder checksConfirms candidates through valid frames, checksums, or digital-voice sync

Confirmed candidates outrank waveform matches. Confirmation is available where an integrated decoder can run at the identifier's rate.

Interval sets the observation length. Threshold sets the required level above noise. Results settle across recent windows to reduce changes caused by one noisy measurement.

The identifier can recognise some wider signals from a partial slice, but cannot detect spread-spectrum signals below noise or resolve densely packed 50 Hz HF signals. For fixture comparisons, run cargo xtask ident-matrix.

Slow-scan television

Tune SSTV to the SSB carrier. It receives the 1000–2600 Hz video subcarrier above that frequency. Pictures take roughly 36 seconds to four and a half minutes, depending on mode.

SettingEffect
Follow VISRead the transmitted mode header automatically
Manual modeDecode using the selected mode when the header is missed or damaged
Slant correctionTrack line sync to correct sample-clock differences; normally leave enabled
Keep unfinished picturesSave partial images after a fade or interrupted transmission

Supported modes are Robot 36/72, Martin M1/M2, Scottie S1/S2/DX, PD50/90/120/180, and Wraase SC2-180.

Connect video to Video to watch reception line by line. Finished and retained partial images are saved as PNGs on the server, including while no client is connected. The channel panel lists them. Retention is 24 hours, capped at 512 images.

Surveying a DECT network

The dect channel surveys identity, configuration, and security signalling on one carrier. It reads the A-field, excluding call audio and user data in the B-field.

Use a receiver covering the DECT band with at least 2.304 MS/s. An RTL-SDR cannot reach the band; HackRF and SDRplay can. Carriers occupy 1.728 MHz.

SettingChoice
BandEurope: 1880–1900 MHz; US: 1920–1930 MHz
SideBase, Handset, or Both

European carrier 0 is 1897.344 MHz; carrier numbers descend in 1.728 MHz steps to 1881.792 MHz. US carriers count upward from 1921.536 MHz.

Bursts are grouped by slot timing to separate base stations sharing a carrier. Each A-field must pass its R-CRC check. Records include:

FieldContents
RFPIBase identity, access-rights class, operator or manufacturer, and cell identifiers
System informationCarrier, frequency, slot pair, transceiver count, available carriers, scan carrier
CapabilitiesSlot types, frequency control, handover, connectionless and higher-layer services
SecurityAdvertised DSAA authentication and DSC ciphering, observed encryption negotiation, key index when present
HandsetsPMIDs seen in encryption handshakes and the fixed part's FMID

Burst and error counts appear per station. Encryption is marked active after an observed grant. Advertised support does not prove encryption was used, and missing signalling does not prove a call was unencrypted.

Following a DMR trunk system

Add DMR trunk system, connect Device iq, and enter the control-channel frequency in MHz. Choose a system type or auto-detect. The node manages the required DMR decoders.

SystemChannel discovery
Tier III, including Capacity MaxLearns logical channel definitions and follows voice grants
Capacity PlusUses Repeater outputs or Search to find carriers sharing rest-channel changes; follows both timeslots
Hytera XPTUses the same discovery approach with XPT signalling

Following continues on the server without an open browser. Traffic channels must fit in the Device passband; out-of-range grants report a failure. Increase the sample rate or retune as needed.

Record calls buffers completed calls and audio in memory. Encrypted calls retain metadata only. Disable it to follow traffic without audio buffering.

Where decoder output goes

Events include source, frequency, and timestamp. Use Readout for current state, Decoder log for message history, Map for positions, and Export for saved rows.

Decoder-log retention is bounded. SSTV images use a separate picture store: the log records arrival, while GET /api/images serves the pictures.