Skip to content

Configuring channels for scan mode

charlie-foxtrot edited this page Mar 8, 2026 · 19 revisions

Scan mode explained

Scan mode in RTLSDR-Airband resembles an analog scanner. It repeatedly cycles through a set of programmed channel frequencies and pauses when a signal is detected. Once the signal disappears, the squelch closes and scanning continues. Frequency switching is done by changing the device's center frequency, hence scanned frequencies can be arbitrarily far away from each other (there is no bandwidth restriction, like in multichannel mode). A single audio stream is produced out of all scanned frequencies.

Scanning speed in RTLSDR-Airband is currently hardcoded to 5 frequencies per second, which is a limitation induced by the current implementation of the demodulator. This may be improved in a future release.

Channel configuration

First you have to set the device mode to "scan", as shown below.

channels is a list of channels to be received. A channel is a group of settings enclosed in braces { }. When the device is working in scan mode, only one channel section is allowed in its config. If you configure more, you will get an error on startup.

Syntax

devices: ({
  mode = "scan";            # switches the device into scanning mode
  ...                       # other device settings
  channels: (
    {
      freqs = ( 126.3, 121.5, 128.225, 161.375 );
#     modulation = "am";
# or
#     modulations = ( "am", "am", "am", "nfm" );
#     labels = ( "Radar", "Tower", "Ground", "Emergency services" );
#     ampfactor = 1.0;
# or
#     ampfactor = (1.0, 1.5, 0.75, 1.0);
#     afc = 0;
#     ctcss = 110.9;
# or
#     ctcss = (0, 0, 0, 110.9);
#     notch = N/A;          # default is disabled (no value)
#     notch_q = 10.0;
#     bandwidth = N/A;          # default is disabled (no value)
#     highpass = 100;
#     lowpass = 2500;
#     squelch_threshold = -35;
# or
#     squelch_threshold = ( -30, -25, 0, -35.5 );
# or
#     squelch_snr_threshold = 20;
# or
#     squelch_snr_threshold = ( 30, 5, 0, -1.0 );
#
#     tau = 200;
      outputs: ( ... );
    }
  );
});

Explanation of keywords

  • freqs (list of frequencies, required) - this is the list of frequencies to be scanned.

  • modulation (string, optional) - channel modulation, either am (the default) or nfm. The latter is only available if NFM support has been enabled when building the program, otherwise you will get "unknown modulation" error on program start.

  • modulations (list of strings, optional) - works the same way as modulation, but it sets the modulation separately for every scanned frequency. The order of the modulations list entries must correspond to the order of frequencies in the freqs list and both lists must be of the same length.

  • labels (list of strings, optional) - names / descriptions of the channels, used for logging, icecast metadata, and others.

  • ampfactor (float or list of floats, optional) - amplification factor, ie. the volume knob for this stream. Any positive value is allowed, values between 0.0 and 1.0 cause the stream to be attenuated (quieter), while values above 1.0 cause it to be amplified (louder). You can use this feature to change the volume of all outputs from this channel. NOTE: ampfactor can be set on a mixer output as well and will be applied afterward.

  • afc (integer, optional) - automatic frequency correction. The default is 0 (off). When turned on (by putting a positive number here) it will attempt to switch to adjacent FFT bin in case when the signal power there is higher than in the FFT bin chosen for the configured channel frequency. Most probably you won't need this in practice.

  • ctcss (float or list of floats, optional) - See CTCSS.

  • notch (float or list of floats, optional) - See Notch filter.

  • notch_q (float or a list of floats, optional) - See Notch filter.

  • bandwidth (frequency or a list of frequencies, optional) - See Limiting channel bandwidth.

  • highpass (int, optional) - See Audio filters in MP3 outputs

  • lowpass (int, optional) - See Audio filters in MP3 outputs

  • squelch_threshold (integer or list of integers, optional) - see [Manual squelch setting].

  • squelch_snr_threshold (integer, float, list of integers, or list of floats, optional) - see [Manual squelch setting].

  • tau (int, optional) - Channel value, overrides global and per-device values if set, see NFM deemphasis

  • outputs (list, required) - a list of outputs where the produced audio is to be sent. There must be at least one output configured.

Now you may want to read about:

or jump straight to:

Clone this wiki locally