SDR-Receiver
1. About the App
SDR-Receiver is used with a USB software-defined radio on macOS. Supported receivers range from an inexpensive RTL-SDR USB stick (about 40 USD) to a communications receiver such as the Icom IC-R8600 (about 3000 USD). After the receiver is connected, the main window shows the spectrum (FFT) and waterfall, together with the controls used to tune and listen.
The following modes can be demodulated to the speaker: WFM (broadcast FM), NFM (narrow FM), AM, SSB (USB and LSB) and CW (Morse).
The app also contains more than 25 decoders for data, speech and images. Decoded traffic can be written to a log file. Some decoders show positions on a map.
Band plans, frequency lists and memories are maintained under Tools. The included band plan is shown on the spectrum. The frequency list contains a General catalog and the EiBi shortwave list. EiBi is a published schedule of broadcast stations, including names and transmission times in UTC. The Stations at VFO window lists catalog entries for the frequency currently tuned.
The Scanner searches a frequency range, a list of memories or a frequency list for signals.
I/Q recording stores the raw samples from the receiver. During playback, the recording is used as if the receiver were still connected: the frequency can be tuned within the captured bandwidth, the demodulation mode can be changed, and decoders can be used. A separate audio recorder stores only the speaker audio. Recording can follow the signal so that silent periods are not written to the file.
1.1. Troubleshooting
Should you encounter any issues, please refer to the Common Issues section of the manual first. If no solution is listed there, use Contact Support in the app (Help menu, or SDR-Receiver ▸ Settings… then Support).
2. The manual
This manual describes how to use SDR-Receiver: connecting a receiver, the main window, decoders, tools and additional views.
The manual can be opened from inside the app (Help ▸ SDR-Receiver Help, or SDR-Receiver ▸ Settings… then Open the App Manual) or in a browser:
https://go-to.me/sdr-receiver-manual
For a printed copy, or to save a PDF, click here.
The manual is updated from time to time.
3. Requirements
SDR-Receiver requires macOS 26 or later. Older macOS versions are not supported.
A purchase on the App Store can be used on more than one Mac. Use the same Apple ID on each Mac.
SDR-Receiver works with the following USB receivers:
RTL-SDR (and variants)
Airspy
Airspy HF+
Microtelecom Perseus
Icom IC-R8600
Icom IC-7760
FUNcube Dongle Pro+
HackRF
ADALM Pluto (and variants)
The receiver must be connected to the Mac by USB.
These receivers are not interchangeable. What a radio can hear decides which decoders can be used with it: some cover shortwave and not the VHF bands, some the reverse, and only a few reach the long-wave time stations. For a comparison of every supported receiver — the range and bandwidth each one offers, and which decoders that allows — see Choosing an SDR:
https://ham-radio-apps.com/sdr-receiver/choosing-an-sdr.html
4. Connecting the Receiver
The receiver must be connected to the Mac by USB. On the Icom IC-R8600, use the USB cable on the receiver’s I/Q outlet — not the CI-V or audio connection.
Click the centre of the window, or Connect at the top, to open the Receivers list. The first time this list is opened it contains only the Demo Receiver.
4.1. Adding a receiver
Click Add. Choose the receiver type.
Then click Select Connected Device…. That scans for devices of the chosen type that are currently plugged in. Select the device and return to the previous screen.
The name is filled in automatically. Change it if more than one receiver of the same type is used; otherwise leave the default. Click Save. The receiver is added to the list.
Select an entry and click Info for frequency range and other specifications of that receiver.
Click Connect to open the main window.
After a connection, the settings belonging to that device are under SDR-Receiver ▸ Receiver Settings…. Sample rate is the bandwidth the radio actually captures. Zero-IF escape is described under Frequency Tuning below. The rest, including the controls only certain receivers have, is covered in Receivers.
4.2. The main window
The black strip at the top is the VFO. Mode selects demodulation: WFM (broadcast FM), NFM (narrow FM), AM, USB, LSB or CW. BW on this strip is the demodulation filter — the width of the signal sent to the speaker and to audio-based decoders. The range depends on the mode: 50 to 250 kHz in WFM, 2.5 to 25 kHz in NFM, 3 to 12 kHz in AM, 1 to 5 kHz in USB and LSB, and 200 Hz to 2 kHz in CW. Narrowing WFM helps when stations are close together, but below about 120 kHz the RDS subcarrier is filtered out as well, and the RDS decoder stops producing text.
AGC is automatic gain control on the audio. It holds the speaker level steadier: weak signals are brought up, strong signals are held back so they do not overload. Click cycles Off, Slow, Med and Fast. Off leaves the gain fixed. Slow, Med and Fast set how quickly the gain follows the signal.
SQL is squelch. When it is on, the speaker is muted until the signal is strong enough. That keeps empty channels quiet. Click turns it on or off. Option-click sets the level: higher means a stronger signal is required before audio is heard.
HPF is a high-pass filter on the speaker. It cuts low-frequency rumble and hum. LPF is a low-pass filter on the speaker. It cuts high-frequency hiss. NR is noise reduction on the speaker. Click turns each on or off. Option-click sets the cutoff (HPF, LPF) or the amount (NR). These three affect the speaker only. They do not change what a decoder receives.
DE is FM de-emphasis. An FM transmitter lifts the high tones before sending them; de-emphasis takes that lift back out, so speech and music sound natural rather than thin and hissy. The button is present only in WFM and NFM, and each of those two modes keeps its own setting, so moving between them does not carry a broadcast value onto a narrowband channel.
Click DE to choose the time constant. 50 µs is broadcast FM in Europe and most of the world, 75 µs in the Americas, Japan and South Korea. 530 µs and 750 µs are the narrowband and land-mobile values. Off leaves the audio flat. WFM starts at 75 µs and NFM starts Off; a listener in Europe will usually want WFM set to 50 µs.
Unlike HPF, LPF and NR, de-emphasis sits inside the demodulator, so it reaches audio-based decoders as well as the speaker. Data modes need flat audio, so the button dims and reads Off while APRS is receiving. It returns to the chosen setting when that decoder stops.
ST is FM stereo. It is present only in WFM. Broadcast FM stations send stereo along with a 19 kHz “pilot” tone that marks them as stereo. Click ST to turn stereo on or off; the button is lit while stereo is on. Its second line shows what you hear right now: Stereo while a stereo signal is received, Mono when the station sends no pilot or is too weak for clean stereo, and Off when stereo is switched off. A weak station fades to mono by itself, because weak stereo is much more hissy than weak mono; switching ST off does the same for every station. Stereo starts on.
Noise reduction cannot be applied to the stereo part of the signal, so WFM plays in mono while NR is on, and the ST button dims. Audio-based decoders, RDS and Audio Recording always get mono audio.
Band lists sections from the enabled band plans (for example maritime, broadcast or amateur). Selecting a section tunes to the centre of that range. Band plans themselves are maintained under Tools.
Click the frequency readout to type a frequency in MHz.
M+ stores a memory at the current frequency. Memories can show markers above the frequency scale. MEM recalls a stored memory. The recall list can be searched by name, tag or frequency.
<<, <, >, >> and the tuning wheel change frequency in steps set by Step.
Two meters sit under those controls. The right meter is always the S-meter. In WFM and NFM the left meter is TUN: centre means the station is on frequency, left means tuned low, right means tuned high. In the other modes the left meter is AF Level, the audio level after demodulation.
The buttons to the right of the VFO depend on the connected receiver. Controls the device does not have are hidden. Typical controls are gain or attenuator, RF amplifier and Bias-T.
Click a gain or attenuator button to set its value. Where the receiver has only a few steps, those steps are offered as a row of choices. Where it has many — an RTL-SDR tuner has 29 of them, the IC-7760 attenuator 16 — a slider is shown instead, with the number of steps written underneath. The slider moves freely and snaps to the nearest step the receiver actually has. The value above the slider is always the one the receiver has been set to, not the position of the slider.
4.3. Spectrum and waterfall
Below the VFO is the panadapter: the spectrum (FFT) above, the waterfall below.
The yellow line is the VFO — the frequency being listened to. The blue shaded area is the demodulation filter. Its width follows BW on the VFO strip.
A band ribbon (maritime, broadcast, amateur and so on) is drawn from the enabled band plans. See Band Plan under Tools. Memory markers can appear above that ribbon. Marker size and height are set in SDR-Receiver ▸ Settings….
DISP on the spectrum sets how the display is drawn. It does not change the radio.
Avg smooths the spectrum trace. Auto scale sets the dB range from the signal. With Auto off, Ref (top) and Floor (bottom) are set by hand, or by dragging the dB scale on the left. The scale is dBFS relative to full-scale IQ, not the S-meter. Markers and Band plan turn the memory stems and the band ribbon on or off.
The frequency scale sits between the spectrum and the waterfall. Drag the bottom of that scale to change how much height is given to the spectrum and how much to the waterfall.
−, BW and + at the bottom of the waterfall set the displayed bandwidth (zoom). This is independent of the sample rate: the radio still captures the same width; only the view changes. The same BW popover also sets waterfall speed.
The scale on the left of the spectrum is dB. The scale on the left of the waterfall is time. Either can be dragged to change the corresponding setting.
4.4. Toolbar
At the top of the window: volume and mute, a lock, and the I/Q recording controls.
The lock stops accidental frequency changes.
4.5. I/Q recording
I/Q recording stores the samples from the receiver, not the speaker audio. Playback is used as if the receiver were still connected: the frequency can be tuned within the captured bandwidth, the demodulation mode can be changed, and decoders can be used. Audio recording is a separate tool and is described under Tools.
Files can become large. Size follows the sample rate under SDR-Receiver ▸ Receiver Settings…. As a guide, about one minute at 5 MHz produces around 1 GB. The Perseus can capture up to 2 MHz; some Airspy models more than 10 MHz.
To record, click the red record control at the top. Recording starts at once. The main window shows a red border and the elapsed time. Click the same control to stop. A file name is asked for then.
To play a recording, disconnect the receiver first. Click the file control at the top and choose the file. Playback starts immediately. Use the transport controls to pause, stop or loop.
To use a live receiver again, click Close Playback at the top right.
4.6. The Demo Receiver
The Demo Receiver is not hardware. It plays included recordings and generated signals so the app and the decoders can be tried without a radio.
Included examples: Radio China (a foreign-language broadcast for Speech / Transcribe / Translate), DCF77, an ACARS recording, and generated RTTY, CW and ACARS.
After connecting, follow the instructions shown in the window.
While the Demo Receiver is connected, every decoder window shows example traffic: aircraft, ships, pager messages, a weather fax, an SSTV picture, DAB+ stations, FT8 and more. This shows what each decoder does before the receiver or the signal is at hand. The examples are only shown; they are not logged or saved, and they disappear when the Demo Receiver is disconnected.
4.7. Frequency tuning
The frequency can be changed in several ways:
Click the frequency readout and enter a value in MHz.
Use <<, <, >, >> next to the tuning wheel, or the wheel itself. The step size is set by Step.
Double-click a frequency on the spectrum.
Scroll the mouse wheel over the panadapter to step the VFO. Option-scroll changes the displayed bandwidth.
Drag the waterfall, or the spectrum outside the blue filter, to move the centre of the display (the LO).
Drag the blue filter or the yellow VFO line on the spectrum to move the listening frequency (the VFO).
4.8. Zero-IF escape
Some receivers produce a spike at the centre of their own spectrum (DC offset and LO leakage). If the VFO sits exactly on that centre, SSB in particular demodulates the spike as a tone in the audio.
Zero-IF escape parks the hardware centre (LO) a little above the VFO on an explicit tune, so that spike is not in the audio. The amount is set under SDR-Receiver ▸ Receiver Settings…, in the Tuning section. Set the slider to Off to place the LO on the VFO. A few decoders that need the signal at DC ignore this setting.
5. Receivers
Once a receiver is connected it is operated the same way as any other: the same VFO strip, the same panadapter, the same decoders. What differs is the hardware underneath — which socket carries the I/Q, how wide a span the device can capture, how far it tunes, and which extra controls it has.
This chapter covers the receivers that need something explained. Those not listed here need nothing beyond Connecting the Receiver. Info in the Receivers list shows the frequency range and specifications of any device.
For help choosing a receiver — what each supported radio covers, what it costs, and which decoders that allows — see Choosing an SDR:
https://ham-radio-apps.com/sdr-receiver/choosing-an-sdr.html
5.1. Icom IC-R8600
Use the USB cable on the receiver’s I/Q outlet. Neither the CI-V connection nor the audio connection carries I/Q.
5.2. Icom IC-7760
The IC-7760 is a transceiver, and SDR-Receiver uses its I/Q output. Only reception is possible; the app never transmits.
Connect the Mac to the [USB] port on the rear of the RF deck. The control head has its own USB connection and it does not carry the I/Q stream — a cable there gives a working-looking setup that never produces samples.
The radio fixes the sample rate at 1.92 MHz and offers no other, so the Sample rate control in Receiver Settings has a single entry. The occupied bandwidth inside that span is about 1.66 MHz, which is why the very edges of the panadapter are empty. Receive coverage is 30 kHz to 60 MHz.
Besides the usual gain controls — RF gain, an attenuator in 3 dB steps to 45 dB, and the preamp — Receiver Settings offers IP Plus, which improves intermodulation performance, and Antenna, which selects ANT 1 to ANT 4.
I/Q Band is the control this radio has that no other does. The IC-7760 has a Main and a Sub receiver, and the I/Q port streams one at a time; this setting, in Receiver Settings, chooses which of the two feeds the app.
Main and Sub are independent receivers on independent frequencies, so each keeps its own tuning. Switch to Sub, tune to a shortwave broadcast, switch back to Main and Main is where it was left. This memory lasts as long as the receiver stays connected; it is not stored between sessions. On a fresh connection each band starts on whatever the radio itself has tuned.
5.3. RTL-SDR
An RTL-SDR’s tunable range is decided by its tuner chip, and the chips differ by more than a gigahertz. The range is read from the stick when it is opened rather than assumed, so the figure shown under Info is the one that stick can actually reach:
R820T and R828D — 24 MHz to 1766 MHz. These are the common ones.
E4000 — 64 MHz to 1700 MHz.
FC0012 — 22 MHz to 948.6 MHz. FC0013 — 22 MHz to 1100 MHz.
FC2580 — 146 to 308 MHz and 438 to 924 MHz, with a genuine gap in between.
An RTL-SDR Blog V4 is a special case. It carries its own upconverter and switches to it automatically, so it covers 500 kHz to 1766 MHz without a break and reaches the shortwave and medium-wave bands with no modification and no extra setting.
5.4. Receiver Settings
SDR-Receiver ▸ Receiver Settings… holds the settings that belong to the connected device. The window is available while a receiver is connected and is arranged in three groups.
Receiver names the connected device and sets the sample rate — the bandwidth the radio actually captures. It sets how much of the band the panadapter can show at once, and it sets how fast an I/Q recording grows. Some receivers offer a list of rates, others only one.
Tuning holds Zero-IF escape, described under Zero-IF escape.
Device setup holds the controls only certain receivers have. A control that the connected device does not have is not shown at all, so this group is empty for most receivers. Direct Sampling appears for an RTL-SDR, and I/Q Band, IP Plus and Antenna for an IC-7760.
5.5. Direct Sampling
Direct Sampling is an RTL-SDR setting. It bypasses the tuner and feeds the antenna straight to the converter chip, which is how an RTL-SDR can be made to hear shortwave at all.
What it reaches is 0 to 14.4 MHz — long wave, medium wave, the lower shortwave broadcast bands, and the amateur bands up to and including 20 m (14.000 to 14.350 MHz). Nothing above that: 17 m, 15 m, 12 m and 10 m are out of reach, and 14.4 to 24 MHz is a gap that neither direct sampling nor the ordinary tuner covers.
Most sticks need a hardware modification before this works — a wire soldered to one of the two converter inputs. An RTL-SDR Blog V3 has that circuit built in and needs no work. On an unmodified stick the setting produces only noise and images.
The choice is Off, I branch or Q branch, because the modification can be wired to either input and a stick wired for one hears nothing on the other. Q is what the standard modification and the Blog V3 both use, so try Q first. A wrong branch looks exactly like a dead receiver rather than like a wrong setting.
While direct sampling is on the tuner is powered down. There is no tuner gain to set, so that control disappears from the VFO strip until the setting is turned off again. Bias-T is unaffected; it sits on the antenna line rather than in the tuner.
The setting is not offered on an RTL-SDR Blog V4. A V4 already reaches those frequencies through its own upconverter, and switching the tuner off would take the upconverter with it.
1. Decoders
Decoders are opened from the Decoders menu. Each decoder has its own window. They copy data, speech or images from the signal: pagers, aircraft and ship traffic, digital two-way radio (DMR), packet radio, weather fax, weather balloons, amateur digital modes, time signals, Loran-C radio navigation, live transcription, and others. Some also show positions on a map.
RX starts and stops decoding. Click it to turn the decoder on. While RX is on, some decoders also set the demodulation mode and bandwidth required for that signal. Closing the decoder window turns RX off and stops logging. Minimising the window leaves the decoder running.
The sections below apply to most decoder windows. Later sections cover each decoder.
1.1. Frequency selection
Where a list of known frequencies exists, the decoder offers a frequency control like this:
Type in the field to search. Every matching entry is listed. A section can also be chosen first, so only entries in that section are shown.
< and > to the right of the field step to the previous or next entry.
Selecting an entry tunes the receiver. Mode, bandwidth or other settings may also be set when that frequency needs them.
Manual is selected when the current frequency is not in the list, or when a frequency outside the list is used on purpose.
1.2. Filter
Many decoder windows, and some Tools windows, have a Filter field. It hides rows in the table. It does not change decoding, and it does not change what is written to a log.
Leave the field empty to show every row.
Terms can be combined with a comma. A row is kept if it matches any of the include terms. A term starting with - always hides a matching row.
Examples:
berlin— keep rows where any column contains that textberlin,hamburg— keep rows that contain either-test— hide rows that contain that textCall=K1JT— keep rows where the Call column contains that valueCountry=-russia— hide rows where the Country column contains that valuedB>-10— keep rows where the dB column is greater than −10
Column names match the table headers (not case-sensitive). = is a contains match on that column. >, >=, < and <= compare that column; the comparison is numeric when both sides are numbers.
1.3. Logging
Many decoders can write received data to a file. Click LOG, choose a file name, and logging starts. Click LOG again to stop.
The file is .csv when the window is a table of fields, and .log when the window is a text stream. Only traffic received after logging is started is written. The Filter field is ignored: the file contains everything, not only the rows on screen.
Logging also stops when RX is turned off or the decoder window is closed.
3. CW (Morse Code)
CW (Morse code) is still used in amateur radio, some commercial and utility services, and by stations that send Morse rather than voice.
This decoder listens to the CW audio. RX sets the demodulation mode to CW. Use a narrow bandwidth (about 1 kHz). Pitch is the tone in the speaker and the tone the decoder looks for (default 700 Hz). Speed can be a fixed WPM value or Auto.
Tune to a Morse signal. Zoom the waterfall and place the signal on the small CW marker. The decoded text is shown in the window.
False characters cannot be avoided on CW. Noise and other signals are often decoded as Morse, so some garbage in the text is normal.
LOG writes decoded text to a file.
4. HF Fax / Weather FAX
HF Fax (weather facsimile) is used to send still images over shortwave, mainly weather charts from meteorological stations. The image is sent as a slow FM tone on USB.
RX sets USB and a 3 kHz bandwidth. Use Freq to pick a catalog frequency, or tune manually. A catalog entry also sets IOC, LPM, Dev and Invert for that station.
AUTO waits for the start tone of the next image. Use START if the transmission is already in progress and the start tone has been missed.
PPM corrects clock skew (a slanted image). Phase moves the image left or right.
File saves the current image, turns on Auto Save (every completed image is written to a folder), or loads a saved image so PPM and Phase can be adjusted again. A red border on the File button means Auto Save is on.
5. POCSAG / FLEX (Pager)
POCSAG is the protocol used by numeric and alphanumeric pagers. SMS largely replaced it for the public, but commercial paging still exists in some countries, and amateur operators run converted pagers on ham frequencies.
The same window also decodes FLEX, a newer paging protocol from Motorola. FLEX is used mainly in North America, where most FLEX transmitters are between 929 and 932 MHz; a few other countries use it too. POCSAG and FLEX can be on air on neighbouring channels, so the window can listen for both at once.
RX sets NFM and starts decoding on the current frequency. Tune to a pager channel first.
Protocol chooses what the window listens for: Auto decodes POCSAG and FLEX at the same time, POCSAG or FLEX only one of them. The choice is remembered. Leave it on Auto unless you know which one your channel uses.
Baud is the speed of POCSAG: 512, 1200 or 2400 bits per second; 1200 is the usual rate. Polarity can be left on Auto unless the POCSAG text is inverted garbage. Both apply to POCSAG only and are dimmed while Protocol is FLEX: FLEX finds its speed (1600, 3200 or 6400 bits per second) and its polarity by itself.
The table lists one page per line:
Time and Protocol (
POCSAG, orFLEXwith its speed, for exampleFLEX 1600/2: 1600 bits per second with two tones;3200/4means four tones).RIC (the address of a POCSAG pager) and Fn (its function bits, A to D). FLEX pages leave both empty.
Capcode (the address of a FLEX pager), Phase (A to D: a fast FLEX channel carries up to four streams of pages at once, called phases) and Cycle/Frame (FLEX sends its pages in numbered frames: cycle 0 to 14, frame 0 to 127; a
?means that number arrived damaged; many FLEX transmitters are only on the air while they have pages to send, so the frame numbers can jump). POCSAG pages leave these empty.Type: tone (a beep only), numeric, alpha (text), and for FLEX also secure and binary pages, which are shown as hexadecimal numbers.
The Message.
Type can hide kinds that are not wanted. Filter uses the same grammar as other decoder tables, for example Capcode=1234567 or Protocol=FLEX. LOG writes the same columns to a CSV file.
Encrypted pages are not decoded.
FLEX was tested on a recording of a real 6400/4 channel in the USA. If you hear FLEX (a fast, warbling signal that repeats every 1.9 seconds) but the window doesn’t read it, please send an I/Q recording of it to support.
Long FLEX messages that are split over several frames are shown as separate pages, not joined.
6. SSTV (Slow Scan TV)
SSTV sends still pictures over a voice channel. It is used mainly by amateur radio: colour images on HF (usually USB) and on VHF (usually NFM). The International Space Station (ISS) also sends SSTV on 145.800 MHz from time to time. A pass is often strong enough for an inexpensive RTL-SDR and a simple antenna.
Use Freq to pick a catalog frequency, or tune manually. Catalog entries may set the VFO and the demodulation mode. SSTV can be USB or NFM, so the mode on the main window must match the station.
RX only starts listening to the audio. Decoding starts with Start. Leave Mode on Auto VIS so the decoder reads the header and selects the picture mode. If the header has already passed, choose the mode by hand and press Start to copy the rest of the transmission.
Many stations send their call sign after the picture (an FSK ID). It appears as FSK ID: next to the picture mode.
PPM corrects clock skew (a slanted image). Phase moves the image left or right; pictures normally start in the right place by themselves, so it is rarely needed. Both are available after a complete picture, or after a saved image is loaded.
File saves the current image, turns on Auto Save (every completed image is written to a folder), or loads a saved image so PPM and Phase can be adjusted again. A red border on the File button means Auto Save is on.
7. ADS-B (Air Traffic)
ADS-B is how aircraft broadcast their own identity, position, altitude and speed. Air traffic control and other aircraft use it. The transmissions are on a fixed frequency of 1090 MHz.
RX takes the receiver over: it tunes to 1090 MHz and switches to RAW. Turning RX off restores the previous frequency and mode.
The table lists aircraft and is updated as new reports arrive.
RAW shows the incoming frames instead of the aircraft list. Map shows aircraft positions and tracks.
7.1. UAT on 978 MHz (United States)
In the United States aircraft can send ADS-B on a second frequency as well: UAT (Universal Access Transceiver) on 978 MHz. It is used there mostly by small private aircraft (general aviation) flying below 18,000 ft; airliners use 1090 MHz. UAT exists only in the US: elsewhere 978 MHz stays silent.
UAT carries more than the aircraft’s own reports:
TIS-B and ADS-R: ground stations rebroadcast traffic on 978 MHz that the UAT aircraft couldn’t hear otherwise. TIS-B copies aircraft that radar sees; ADS-R copies aircraft that send on 1090 MHz. These copies are a second or more old.
FIS-B: the same ground stations send weather and flight information that anyone may receive: airport weather reports (METAR), airport forecasts (TAF), notices to pilots (NOTAM: closed runways, restricted airspace and the like), weather warnings for an area (AIRMET and SIGMET), winds at height, and weather pictures such as radar images.
Link at the top of the window chooses what to listen to: 1090 or 978 (UAT). The choice is remembered. One receiver can only listen to one of the two at a time, because they are 112 MHz apart. On 978 (UAT), RX takes the receiver over just like on 1090: it tunes to 978.000 MHz, switches to RAW and sets a sample rate of 2.083 MS/s or more (an RTL-SDR at 2.4 MS/s is fine). If the receiver can’t reach 978 MHz or that rate, the status line says so and RX doesn’t start. Changing Link while RX is on moves the receiver to the other frequency straight away.
The aircraft table and the map show the aircraft of both links together. Aircraft heard on the other link stay in the list and disappear after a minute without news, as usual. As soon as UAT is in use, two more columns appear:
Source: where the report came from. 1090 or UAT when the aircraft sent it itself; TIS-B, ADS-R or TIS-B / ADS-R when a ground station rebroadcast it (the message doesn’t always tell which of the two). An aircraft heard on both links shows both, for example
UAT + 1090.Squawk: the four-digit code the pilot set on the transponder, for example
1200for a private flight without air traffic control.
An address that starts with ~ is not a real aircraft address: the aircraft chose an anonymous one, or it is a ground station’s radar track. On the map, rebroadcast aircraft are drawn lighter.
On 978 MHz RAW shows one line per received frame: aircraft reports, and Uplink frames from ground stations with the products they carried. LOG writes a second file next to the one you choose, with -uat added to its name (for example ADSB-20261021-120000-uat.csv): one line per UAT frame. The file you chose gets the 1090 MHz data in its usual form.
FIS-B (only shown on 978 MHz) opens a sheet with what the ground stations sent:
Ground stations: where each station is, the time slots it sends in, how many uplink frames came, when it was last heard and how strong.
Products: every kind of information received and how often. Pictures (radar, icing, turbulence, cloud tops, lightning) are counted but not drawn.
Reports: the latest text of each report: type, airport or area, when it was issued and the text itself. Click a report to read it in full below the list. Filter works like the filter in the decoder windows, for example
METARorLocation=KSFO.
Ground stations send FIS-B once a second, so near one the sheet fills within a minute; aircraft only appear where small aircraft fly with UAT.
UAT decoding is new and has not yet been tested on a real signal. It was checked against recorded UAT frames and against our own test signal.
8. AIS (Ship Traffic)
AIS is how ships broadcast their identity, position, course and speed. Other vessels and shore stations use it to see traffic. The two worldwide channels are A (161.975 MHz) and B (162.025 MHz).
Vessels alternate between the two channels, so watching only one loses roughly half the traffic. A+B receives both at once and is the default. It tunes 162.000 MHz, the midpoint between the channels: nothing transmits there, so the frequency readout sits on an empty spot and the panadapter shows a signal to each side of the cursor. That is what a working A+B setup looks like.
A+B needs enough captured bandwidth to hold both channels. If the sample rate under SDR-Receiver ▸ Receiver Settings… is set too low for that, the option is not offered and only the single channels are listed.
Select a channel, then RX. RX sets NFM. Manual keeps the current VFO if a different AIS frequency is used.
The table lists vessels and is updated as reports arrive. On A+B the status line under the table counts each channel separately, as A 41 · B 38. Roughly balanced counts are normal. A badly lopsided pair points at interference or an antenna problem on one channel rather than at the decoder.
RAW shows the incoming messages instead of the vessel list. Map shows ship positions and tracks.
9. APRS (Packet Radio)
APRS is amateur packet radio used to send positions, weather reports and short messages. Stations, cars, balloons and some satellites (including the ISS) take part.
Above 30 MHz the usual mode is 1200 baud NFM. Below 30 MHz it is 300 baud SSB. Set Baud to match.
Use Freq to pick a catalog channel, or tune manually. RX starts decoding. Packets appear in the list. Click a row for the decoded detail.
APRS needs flat audio, so FM de-emphasis is turned off automatically while RX is on. The DE button on the main window dims and reads Off for as long as that lasts, and returns to its own setting when RX is turned off.
Map shows position reports.
10. ACARS (Aircraft Messages)
ACARS is a VHF data link used by aircraft to send short operational messages to the ground: departure, position, weather requests, and similar traffic. The usual channels sit around 131 MHz and depend on the region.
Use Freq to pick a channel for the current area, then RX. RX sets AM. Messages appear in the table.
An included aviation database fills in airline name, aircraft type and model where the registration is known. That database is updated from time to time with the app.
A long message is often sent in several parts (blocks). The window joins them and shows the message once, in one row, when its last part has arrived. If a part is still missing 30 seconds after the last one came, the message is shown with what arrived and starts with (incomplete). Parts that an aircraft or a ground station sends again are left out, so the same message doesn’t appear twice.
The text is tidied a little:
Long rows of numbers (technical reports from the aircraft) are often broken into lines in the middle of a number. Such a number is joined again, so
847.875doesn’t read847. 875.Position reports (label 16 and similar) are shown as a position with altitude, for example
AMOSU 51.68N 6.38E 26844 ft 21 Oct 10:09:59Z: the waypoint name, latitude, longitude, altitude and time.Some messages end in a four-digit check code (ARINC 622). When the code confirms that the message is correct, it is hidden. When it doesn’t, it stays visible as part of the text.
The 136.900 and 136.975 MHz entries in the list are VDL2 channels. This window can’t read them; use the VDL2 window for those.
11. VDL2 (Aircraft Data Link)
VDL2 (VHF Data Link Mode 2) is the digital successor of the ACARS radio link described above. Aircraft use it to exchange data with ground stations: radio stations at airports and along the flight routes that pass the messages on to airlines and air traffic control. VDL2 is much faster than the old ACARS link, and most airliners in Europe and North America use it today.
VDL2 still carries ACARS messages, the same short texts the ACARS window shows: departure and arrival reports, weather requests, messages between the crew and their airline. It also carries the link’s own messages (a ground station announcing itself, an aircraft logging on to a ground station) and ATN data: the messages between pilots and air traffic controllers (CPDLC, “controller–pilot data link”) and automatic position reports. The window recognises ATN data but does not decode its content.
The VDL2 channels sit between 136.650 and 136.975 MHz, 25 kHz apart. Unlike most decoders, this window doesn’t decode one frequency: it decodes every VDL2 channel inside the received band at the same time.
11.1. What you need
A receiver that covers 136 MHz. An inexpensive RTL-SDR stick is enough.
A sample rate of at least 84 kS/s, which decodes one channel. To hear all European channels at once, the receiver needs about 300 kS/s or more; most receivers that reach 136 MHz run much faster than that anyway. The sample rate is set under SDR-Receiver ▸ Receiver Settings….
An airband antenna, or a simple vertical antenna about 52 cm long. A discone or a wideband antenna works too.
Aircraft and ground stations within range. Ground stations transmit every few seconds and are usually heard first. Aircraft high in the sky can be heard from far away; aircraft on the ground at an airport only from nearby.
11.2. Using the window
The controls in the top bar, from left to right:
RX turns decoding on and off. If not all channels of the list are in the received band, RX tunes the receiver so they are (see How tuning works below). It does not change the mode, the bandwidth or the speaker: VDL2 has no audio.
Channels chooses the list of channels to decode. Europe: 136.725, 136.775, 136.825, 136.875, 136.900 and 136.975 MHz. US: 136.650, 136.700, 136.800 and 136.975 MHz. Europe + US decodes both lists. The choice is kept.
Filter hides rows in the message table. It works like the Filter field of the other decoders, for example
Kind=ACARSor-GSIF.TUNE tunes the receiver so the received band covers all chosen channels: to the middle of the list, 136.850 MHz for Europe. It works with RX off too. TUNE is hidden while an I/Q recording plays, because a recording can’t be retuned.
IDLE / SYNC: SYNC (green) while messages are coming in, IDLE when no message arrived for a few seconds.
RAW switches to the technical view (see Messages below).
LOG writes the messages to a
.csvfile. Turn RX on first.Erase (the bin) clears the message table.
Click RX. Within a few seconds the channel strip shows the first messages, and the ground stations nearby appear in their table.
11.3. Channels and the signal check
Under the top bar, the channel strip shows each channel of the list with the number of messages received on it since RX was turned on, for example 136.975 · 12. A channel turns green once a message was heard on it. not in view means the channel lies outside the received band (or too close to its edge) and is not decoded: click TUNE, or raise the sample rate. Hold the pointer over a channel to see the level of its last message.
At the right end of the strip, the Signal check appears after the first 20 transmissions. It checks that the decoder reads the transmissions the way the aircraft and ground stations send them.
Signal check ✓ (green): everything is as expected.
Signal check ⚠ see help (orange): the transmissions fit a slightly different reading better. Please report this through Help ▸ Contact Support: the decoder then needs one setting changed. Hold the pointer over the check to see the details, and include them in the report.
11.4. Ground stations
The Ground stations table lists the ground stations since RX was turned on: the ones heard, and the ones aircraft send messages to. The heading says how many, or None heard yet. Every ground station announces itself every few seconds with its position and the airports it serves.
Station: the ground station’s address, six hexadecimal digits.
Heard: Directly when the station’s own transmissions were received. Not directly when it is only known because aircraft sent messages to it: the station itself is too far away, or hidden behind a hill or buildings. Aircraft fly high and are heard from much farther away than a station on the ground.
Airports: the airports the station serves, as four-letter ICAO codes (for example
EDDFfor Frankfurt). — until the station has announced them, and for a station not heard directly.Position: where the station is, for example
50.0° N 8.6° E.Channel: the channel it was last heard on.
Last heard: the time of its last message.
Sent: how many messages the station sent.
From aircraft: how many messages aircraft sent to it.
Level: the strength of its last message.
The ground stations are the easiest way to see whether the antenna and the receiver work: a station nearby is usually heard long before the first aircraft. Where no station is heard directly, the stations the aircraft talk to still appear, as Not directly.
11.5. Messages
The message table lists every message received, newest at the bottom. It has the same columns as the ACARS window (Mode, Aircraft, Type, Model, Flight, Airline, Label, Meaning, Blk and Message), with these in front:
Time: when the message was received.
Channel: the channel it was received on.
Kind: what the message is.
ACARS: an ACARS message, with the same fields and lookups as in the ACARS window (aircraft registration, flight, airline, aircraft type and model). ACARS ×5 is a long message that came in 5 parts and is shown joined, as in the ACARS window: once, when the last part has arrived, or with (incomplete) when a part was still missing after 30 seconds. Parts sent again are left out. The text is tidied in the same way as in the ACARS window (numbers split by a line break, position reports, check codes).
GSIF: a ground station announcing itself (its position and airports).
Link request and Link response: an aircraft logging on to a ground station, and the station’s answer. They can include the aircraft’s position and altitude and its destination airport.
XID: another message about the link itself.
ATN: air traffic control data (controller–pilot messages, position reports). The window reads only its envelope and says it in plain words, for example
Air traffic control data (ATN), 64 bytes — content not decoded · channel BFF, packet 3, acknowledges up to 6. The channel tells the conversations between one aircraft and the ground apart, and the packet numbers count the parts of that conversation. The content itself is not decoded.Data: other data the window doesn’t recognise.
Dir: Down for a message from an aircraft to the ground, Up for a message from a ground station.
From and To: the sender and the receiver. An aircraft shows its 24-bit address followed by ✈: the same address ADS-B uses, so the aircraft can be found in the ADS-B window too. A ground station shows its address followed by GS. all means a message for every station, such as a GSIF.
Level comes before Message and shows the strength of the message. Message is the text of an ACARS message, or a summary of the other kinds. An ACARS message that was damaged on the way shows ACARS message, damaged: could not be read. The table keeps the newest 5,000 messages.
RAW switches to the technical view. The table then also shows:
the single parts of a long ACARS message (ACARS part), as they arrive;
the link’s acknowledgements (RR and similar short messages that only confirm what was received);
the ATN housekeeping: acknowledgements (ATN acknowledgement: received up to packet 6), and connections being set up, closed or reset (ATN connection request, ATN connection closing, …). Without RAW, only the ATN rows that carry data are shown.
The Message column adds each message’s data in hexadecimal, and the status line shows the technical counters. Click RAW again for the plain view.
LOG writes the messages to a .csv file, with all columns plus the data in hexadecimal. The parts, acknowledgements and housekeeping are written only while RAW is on. As in the other decoders, the Filter is ignored: the file contains every message. Erase clears the message table and forgets parts still waiting for the rest of their message; it does not change the ground stations, the counters or a log file already written.
11.6. The status line
The status line says in plain words what the window is doing, for example 6 channels in view · 12 messages · 2 could not be read · Signal check ✓.
N channels in view or 4 of 6 channels in view: how many channels of the list are being decoded.
N messages: messages received since RX was turned on.
N could not be read: transmissions that were received but too damaged to decode. A few are normal; many point at a weak signal or interference.
receiver’s spectrum looks inverted (I/Q swapped): transmissions are found but can’t be decoded, because the receiver delivers its signal mirrored.
N dropouts: the app missed parts of the signal from the receiver, for example on a busy USB hub.
After RX is turned on or TUNE is clicked, the line starts with what happened to the tuning (see below). With RAW on, it also shows the technical counters: transmissions found, messages decoded, the failures at each step of decoding, and the details of the signal check.
11.7. How tuning works
The window decodes the whole received band, not the frequency on the main window. Tuning, panning and the mouse wheel on the main window work as usual; whenever the band moves, the window follows at once and decodes the channels that are now inside it. A message that is being received at that moment is lost.
When RX is turned on, or TUNE is clicked, and not all channels of the list are in the band, the window tunes the receiver to the middle of the list: 136.850 MHz for Europe, 136.8125 MHz for Europe + US. Nothing transmits on that frequency: the speaker only plays noise there, and the channels lie to both sides on the panadapter. The status line says what happened:
Tuned to 136.850 MHz so all channels are in view.
Tuned to 136.850 MHz; at this sample rate only the channels near it are in view: the sample rate is too low for the whole list. The channels in the middle are decoded, the others show not in view.
Not retuned: another decoder needs the current frequency — decoding the channels in view: a decoder that has to stay on its own frequency is on (for example ACARS, POCSAG, AIS or an AM time signal). VDL2 doesn’t take the frequency away from it.
Recording: decoding the channels it contains: an I/Q recording plays. Its frequency can’t change, so the channels inside the recording are decoded and the others show not in view.
Not retuned: VDL4 is on and both channel lists do not fit this sample rate — decoding the channels in view: the VDL4 window is on as well. Both windows share the received band, so VDL2 tunes only to a frequency where the channels of both lists fit. If the sample rate is too low for that, the band stays where it is.
Not retuned: HFDL is on and needs its shortwave band — decoding the channels in view: the HFDL window is on and keeps the receiver on shortwave. Turn HFDL off first.
ADS-B and DAB+ take the whole receiver over: starting one of them turns VDL2 RX off.
VDL2 also works from an I/Q recording, for example one made at 136.850 MHz with a sample rate of 300 kS/s or more.
11.8. Tips
The busiest channel is 136.975 MHz, the channel every aircraft and ground station uses to find each other. The other channels are shared out among the companies that run ground stations, so which of them are busy depends on where you are.
Near a large airport, or under a busy flight route, messages arrive every few seconds. Far from both, only the ground stations and the occasional aircraft may be heard.
Where messages come from: rows with Down and ✈ in From were sent by an aircraft, rows with Up and GS by a ground station. Aircraft on the ground at an airport are heard only from nearby; aircraft at cruising altitude from 200 km away or more.
ACARS (around 131 MHz) and VDL2 are more than 5 MHz apart. With an inexpensive stick, use one window at a time.
11.9. Not yet
The content of ATN messages (controller–pilot messages, position reports) is not decoded in this version; only their envelope is shown. The ground stations and aircraft are not shown on a map.
12. VDL4 (Aircraft Position Link)
VDL4 (VHF Data Link Mode 4) is a digital radio link on which aircraft, vehicles at an airport and ground stations broadcast where they are: several times a minute, each station sends a short burst with its address, its position and altitude, and now and then its call sign. Everyone in range can hear these reports, much like ADS-B on 1090 MHz. VDL4 also carries a few other kinds of messages, for example a station joining the network or data for other stations.
Important
VDL4 is rare. It is used mainly in Sweden and elsewhere in Scandinavia, and at a few airports; most of the world never used it. In most places this window stays empty, and that is normal. While nothing has been received, the status line says so: VDL4 is rare outside Scandinavia — an empty window is normal.
Like VDL2, VDL4 uses 25 kHz channels between 136.725 and 136.975 MHz, and the window decodes every VDL4 channel inside the received band at the same time.
12.1. What you need
A receiver that covers 136 MHz. An inexpensive RTL-SDR stick is enough.
A sample rate of at least 154 kS/s, which decodes one channel. To hear the whole list at once, the receiver needs about 300 kS/s or more. The sample rate is set under SDR-Receiver ▸ Receiver Settings….
An airband antenna, or a simple vertical antenna about 52 cm long.
VDL4 stations within range (see the note above).
12.2. Using the window
The top bar is the same as in the VDL2 window, from left to right:
RX turns decoding on and off. If not all channels of the list are in the received band, RX tunes the receiver so they are (see How tuning works below). It does not change the mode, the bandwidth or the speaker.
Channels chooses the list of channels to listen on. 136.725–136.975 (the default) takes every channel from 136.725 to 136.975 MHz that VDL4 or its neighbours use. VDL4 only takes just 136.825, 136.925 and 136.950 MHz, the frequencies planned for VDL4. The choice is kept.
Filter hides rows in the message table, for example
Kind=positionor-ground station.TUNE tunes the receiver so the received band covers all chosen channels: to the middle of the list. It works with RX off too, and is hidden while an I/Q recording plays.
IDLE / SYNC: SYNC (green) while messages are coming in, IDLE when no message arrived for a few seconds.
RAW switches to the technical view (see Messages below).
LOG writes the messages to a
.csvfile. Turn RX on first.Erase (the bin) clears the message table.
12.3. Channels and the sync check
Under the top bar, the channel strip shows each channel of the list with the number of messages received on it since RX was turned on, for example 136.925 · 12. A channel turns green once a message was heard on it. not in view means the channel lies outside the received band (or too close to its edge) and is not decoded: click TUNE, or raise the sample rate.
At the right end of the strip, the Sync check appears after the first 5 good messages. Every VDL4 burst starts with a fixed pattern, and the standard can be read in two ways. The decoder accepts both and counts which one the stations send.
Sync check ✓ (green): the stations send the pattern as the decoder expects.
Sync check ⚠ see help (orange): the stations send it the other way. Decoding still works, but please report it through Help ▸ Contact Support. Hold the pointer over the check to see the counts, and include them in the report.
12.4. Stations
The Stations table lists every station heard since RX was turned on. The heading says how many, or None heard yet.
Address: the station’s address, six hexadecimal digits. An aircraft uses its 24-bit address, the same one ADS-B uses.
Type: aircraft, ground vehicle (a car or truck at an airport), ground station, or mobile (random): a station without a fixed address picks a random one. Such an address can change, so the same station may later appear again under a new address.
Call sign: the flight number or the vehicle’s name, once the station has sent it. A call sign ending in ? comes from a kind of message whose layout is not yet confirmed on air: it is probably right, but may be wrong. — until a call sign arrives.
Last position, Altitude: where the station was at its last report, for example
59.6510 N 17.9210 Eand2500 ftor on ground.Channel, Last heard, Bursts, Level: the channel it was last heard on, the time of its last message, how many messages it sent, and the strength of its last message.
A position report alone is not enough to place a station: the decoder needs two reports from the same station before it can show a position. Until then the message table shows after the next report. If the receiver position is set (SDR-Receiver ▸ Settings… ▸ General ▸ Receiver position), the first report is enough for stations near the receiver.
12.5. Messages
The message table lists every message received, newest at the bottom:
Time and Channel: when and on which channel the message was received.
From: the sender’s address, followed by ✈ for an aircraft, GS for a ground station, veh for a ground vehicle, or (random) for a random address.
Kind: position report for the regular reports. Other kinds are, for example, network entry (a station joining), data (DLS), general request and general response. Their content is not decoded.
Call sign, Position, Altitude: from a position report, as in the Stations table.
Info: the kind of extra information the report carries, such as aircraft ID (the call sign), basic or full position. Only the call sign is decoded from it so far.
Level: the strength of the message.
Message: a summary of the message.
RAW switches to the technical view: Message also shows each message’s time slot booking (VDL4 stations book their next transmission times in advance), which way the start pattern was sent, and the data in hexadecimal. The status line shows the technical counters. Click RAW again for the plain view.
LOG writes the messages to a .csv file, with all columns plus the technical details. As in the other decoders, the Filter is ignored. Erase clears the message table; it does not change the stations, the counters or a log file already written.
12.6. The status line
The status line says in plain words what the window is doing, for example 8 channels in view · 40 messages · 3 stations.
N channels in view or 3 of 8 channels in view: how many channels of the list are being decoded.
N messages and N stations: received since RX was turned on.
N could not be read: messages that were received but damaged on the way.
N dropouts: the app missed parts of the signal from the receiver, for example on a busy USB hub.
After RX is turned on or TUNE is clicked, the line starts with what happened to the tuning. With RAW on, it shows the technical counters instead: bursts found, good messages, failed checks, how the start pattern was sent, and the noise level.
12.7. How tuning works
Tuning works as in the VDL2 window. The window decodes the whole received band, not the frequency on the main window, and follows the band at once when it moves. RX and TUNE tune the receiver to the middle of the list only when the channels are not all in view, and never while a decoder that has to stay on its own frequency is on (for example ACARS, POCSAG, AIS or an AM time signal). The status line says what happened, with the same messages as in the VDL2 window.
VDL2 and VDL4 together. Both windows can run at the same time and share the received band. The second one started tunes to the middle of both channel lists, so that all channels of both windows are in view. That needs about 300 kS/s. If the sample rate is too low for that, the band stays where it is, and the status line says Not retuned: VDL2 is on and both channel lists do not fit this sample rate — decoding the channels in view.
While the HFDL window is on, VDL4 doesn’t retune either, because HFDL keeps the receiver on shortwave.
ADS-B and DAB+ take the whole receiver over: starting one of them turns VDL4 RX off. VDL4 also works from an I/Q recording made on these frequencies.
12.8. Not yet
Apart from the call sign, the extra information in the reports (speed, track, time) is not decoded in this version, nor the content of the other kinds of messages. The stations are not shown on a map.
13. HFDL (HF Aircraft Data Link)
HFDL (HF Data Link) is how aircraft stay in touch over the oceans and remote areas, where they are too far from land for the VHF links (ACARS, VDL2). It works on shortwave, between 2.9 and 22 MHz, so its signals travel thousands of kilometres. 16 ground stations around the world (for example Shannon, San Francisco, Auckland and Hat Yai) take part, each on a few frequencies at a time.
HFDL carries the same ACARS messages as the VHF links: short texts between the crew and their airline or air traffic control. It also carries position reports, aircraft logging on to a ground station, and the ground stations’ own announcements. The signals are sent on upper sideband (USB) and come in short bursts, often minutes apart.
The window decodes every HFDL channel inside the received band at the same time.
13.1. What you need
A receiver that covers shortwave: an HF receiver, a receiver with an up-converter, or an RTL-SDR stick in direct sampling mode (see Receivers). Direct sampling reaches only up to about 14.4 MHz, so the 15.0, 17.9 and 21.9 MHz bands need an HF receiver or an up-converter. A receiver that doesn’t reach shortwave at all gets a message on the status line.
A sample rate of at least 12 kS/s. A higher sample rate shows more channels of a band at once.
An antenna for shortwave: a long wire, a loop or an active antenna. A short VHF antenna hears little or nothing.
13.2. Which band works when
Shortwave signals depend on the time of day, so HFDL uses many bands:
The lower bands (2.9 to 6.6 MHz) work best at night.
The higher bands (13.3 to 21.9 MHz) work best by day.
The 8.9 and 10.0 MHz bands work most of the time. 8.9, 11.2 and 13.3 MHz are usually busy.
If a band stays quiet, try another one. A band that was busy in the afternoon can be silent at night, and the other way round.
13.3. Using the window
The controls in the top bar, from left to right:
RX turns decoding on and off. If a band is chosen and its channels are not in view, RX tunes the receiver there. It does not change the mode, the bandwidth or the speaker.
Band chooses the HFDL band, shown with its number of channels, for example 8.9 MHz · 15 ch. The bands are named by their middle: 2.9, 3.4, 3.9, 4.6, 5.5, 6.6, 8.9, 10.0, 11.2, 13.3, 15.0, 17.9 and 21.9 MHz. Channels in view never retunes: it decodes the HFDL channels that happen to be inside the received band. The choice is kept.
Filter hides rows in the message table, for example
Kind=ACARSorStation=Shannon.TUNE tunes the receiver to the chosen band. When the sample rate is too low for all its channels, TUNE takes the part with the most channels. TUNE is hidden while an I/Q recording plays, and with Channels in view.
IDLE / SYNC: SYNC (green) while messages are coming in. Because HFDL comes in bursts, SYNC stays on for 40 seconds after the last message.
RAW switches to the technical view (see Messages below).
LOG writes the messages to a
.csvfile. Turn RX on first.Erase (the bin) clears the message table.
Choose a band and click RX. HFDL is not busy like the VHF links: wait a few minutes before you try another band.
13.4. Channels, receiver error and Wide search
Under the top bar, the channel strip shows each channel in view with its frequency in kHz (the USB dial frequency), the ground stations that use it, and the number of messages received on it since RX was turned on, for example 8942 Shannon · 12. A channel turns green once a message was heard on it. If there are more channels than fit, the strip scrolls sideways.
outside: a channel of the chosen band that lies outside the received band. Click TUNE, or raise the sample rate.
skipped: a channel inside the band that is left out, because a very high sample rate would bring in more channels than the Mac can decode at once. The channels nearest the middle are decoded. A lower sample rate around the band you want decodes all of its channels.
Once bursts have been decoded, the strip shows how far off the receiver’s own tuning is, for example Your receiver reads about +1.3 ppm off (+12 Hz here), or Receiver tuning accurate (within 20 Hz). The ground stations’ transmitters are accurate, so the window measures the receiver against them.
A receiver that is off by more than about 450 Hz at these frequencies misses bursts. This is common with RTL-SDR sticks in direct sampling mode or behind an up-converter. Turn on Wide search at the right end of the strip: the decoder then also searches up to about 2.2 kHz around every channel. It needs about four times as much processing, so leave it off for an accurate receiver. When bursts arrive far off and Wide search is off, the strip shows Bursts far off: try Wide search. The setting is kept.
13.5. Ground stations and aircraft
Two tables sit side by side under the channel strip.
Ground stations lists the ground stations heard:
Station: its name, for example Shannon or Auckland.
Frequencies in use (kHz): the frequencies the station announces it is using right now.
Heard on: the frequency it was last heard on.
Last heard: the time of its last message, or not heard for a station that was only named by an aircraft.
Broadcasts: how many of its announcements were received. Every ground station sends a short announcement (a “squitter”) every 32 seconds on each of its frequencies, so this count rises steadily while a station comes in.
Level: the strength of its last message.
Aircraft lists the aircraft heard since RX was turned on:
Addr: the aircraft’s 24-bit address (the same one ADS-B uses), or # and a number: the number the ground station gave the aircraft when it logged on, until the logon itself is heard.
Flight, Reg.: the flight number and the registration (from its ACARS messages).
Station: the ground station it talks to.
Position: its last reported position.
Last heard, Msgs: the time of its last message, and how many messages it sent.
13.6. Messages
The message table lists the messages received, newest at the bottom:
Time: when the message was received.
Freq: the frequency in kHz.
Station: the ground station that sent the message, or the one the aircraft talks to.
Kind: ACARS (an ACARS message), Position (a position report), Frequencies (an aircraft reporting which ground stations it hears, with its position), Logon (an aircraft logging on to a ground station; shown when it carries the aircraft’s flight number and position, which then also appear in Flight, the airline column and the aircraft table), Data (other data). With RAW on, also Squitter, logons without a position, System table and ACARS part (see below).
A long ACARS message sent in several parts is joined into one row, as in the ACARS window: ACARS ×3 for a message in 3 parts, shown once its last part has arrived, or with (incomplete) when a part was still missing after 30 seconds. Parts sent again are left out.
Dir: Down for a message from an aircraft, Up for a message from a ground station.
Addr: as in the Aircraft table.
Then come the columns of the ACARS window (Mode, Aircraft, Type, Model, Flight, Airline, Label, Meaning, Blk), Level (the strength of the message) and Message: the text of an ACARS message, or a summary in plain words, for example Flight BA0117 at 53.250° N 15.500° W, 10:16:40 UTC.
RAW switches to the technical view. The table then also shows the frequent link messages: the ground stations’ announcements (Squitter), aircraft logging on without a position (Logon), parts of the ground stations’ frequency list (System table), and the single parts of a long ACARS message (ACARS part). The Message column adds each message’s data in hexadecimal, and the status line shows the technical counters. Click RAW again for the plain view.
LOG writes the messages to a .csv file, with all columns plus the data in hexadecimal. The link messages and ACARS parts are written only while RAW is on. As in the other decoders, the Filter is ignored. Erase clears the message table and forgets parts still waiting for the rest of their message; it does not change the two tables above it, the counters or a log file already written.
13.7. The status line
The status line says in plain words what the window is doing, for example 7 channels in view · 12 messages.
N channels in view, or No HFDL channel in view.
N skipped: too many channels for this rate: see skipped above.
N messages: messages received since RX was turned on.
HFDL comes in bursts; quiet minutes are normal, and a band can be silent at this time of day: shown while nothing has been received yet.
N could not be read: bursts that were received but too damaged to decode.
receiver’s spectrum looks mirrored (I/Q swapped): the receiver delivers its signal mirrored.
the stations use a newer frequency list; some frequencies may read wrong until it has been received: the ground stations send their frequency list from time to time; until the new one is complete, a few frequencies may be shown wrong.
N dropouts: the app missed parts of the signal from the receiver, for example on a busy USB hub.
After RX is turned on or TUNE is clicked, the line starts with what happened to the tuning (see below). With RAW on, it shows the technical counters instead.
13.8. How tuning works
The window decodes the whole received band, not the frequency on the main window. Tuning, panning and the mouse wheel on the main window work as usual, and the window follows the band at once.
When RX is turned on, or TUNE is clicked, and the chosen band is not in view, the window tunes the receiver so that as many of the band’s channels as possible are in view. It keeps the receiver’s centre a few kHz away from every channel, because most receivers have a small spike at their centre. The status line says what happened:
Tuned to … MHz: all 15 channels of 8.9 MHz in view, or Tuned to … MHz: 7 of the 15 channels of 8.9 MHz in view (a higher sample rate shows more).
Not retuned: another decoder needs the current frequency — decoding the HFDL channels in view: a decoder that has to stay on its own frequency is on (for example ACARS, POCSAG, AIS or an AM time signal).
Not retuned: VDL2 is on and needs its VHF band — decoding the HFDL channels in view (or VDL4): VDL2 and VDL4 work around 136 MHz, HFDL on shortwave, and one receiver can’t do both. Turn the other window off first. In the same way, VDL2 and VDL4 don’t retune while HFDL is on.
This receiver does not reach 8.9 MHz (shortwave). …: the receiver doesn’t cover the band (see What you need).
Recording: decoding the HFDL channels it contains: an I/Q recording plays. Its frequency can’t change, so the channels inside the recording are decoded.
ADS-B and DAB+ take the whole receiver over: starting one of them turns HFDL RX off. HFDL also works from an I/Q recording made on an HFDL band.
13.9. Tips
Ground stations announce themselves every 32 seconds. If the Ground stations table stays empty for several minutes, the band is closed at this time of day, or the antenna doesn’t pick it up: try another band.
Messages from aircraft are weaker than the ground stations and come in less often. The ground station you hear may be thousands of kilometres away, and the aircraft talking to it even farther.
An RTL-SDR in direct sampling mode is often several hundred Hz off on shortwave: turn on Wide search until the strip shows how far off it is.
13.10. Not yet
Positions that are only inside the text of ACARS messages are not added to the Aircraft table, and the aircraft and ground stations are not shown on a map.
14. ALE (Automatic Linking)
ALE (Automatic Link Establishment) is used on HF so radios can find each other without an operator watching one frequency. Stations send short sounding calls, then set up a link and may send a text message. It is used by government, military and some amateur nets.
Use Freq to pick a catalog channel, then RX. RX sets USB or LSB and a 3 kHz bandwidth, as required by that entry. Manual keeps the current VFO.
Decoded traffic is listed with time, type, from, to and the message. Type chooses what is shown (sounding, call, to, message, command). Sounding is off by default because those bursts are frequent and usually not the traffic of interest.
15. RDS (FM Radio Text)
RDS is the data sent by many broadcast FM stations together with the audio: station name, programme type, and RadioText (the scrolling line with the song title or a station message).
Tune to an FM station in WFM, then RX. The decoder does not change the frequency or the mode. The station panel shows the current name and related fields; the list below it is RadioText as it arrives.
RAW shows the incoming RDS groups as hex instead of RadioText.
16. DAB+ (Digital Radio)
DAB+ is digital broadcast radio, used in much of Europe and Australia. Many stations are sent together on one channel, as a group called an ensemble (also called a multiplex). The channels are in Band III, between 174 and 240 MHz, and are named 5A to 13F.
The receiver must reach Band III and run at 2.048 MS/s or more. An inexpensive RTL-SDR stick is enough. Receivers that only cover shortwave, or that have a low sample rate, cannot receive DAB+; the window says so when you click RX.
Choose the Channel, then click RX. RX takes the receiver over: it tunes to the channel, switches to RAW and to the sample rate DAB+ needs. While it runs, the receiver can’t be tuned from the main window. Turning RX off restores the previous frequency, mode and sample rate. If you don’t know which channel is used where you live, step through the channels with < and > next to the channel list: a channel with an ensemble shows Signal and then Locked after a few seconds.
The reception panel at the top shows:
Signal: Searching (no DAB signal found yet), Signal (a DAB signal is there, but its station information can’t be read yet) or Locked (station information is being read).
Ensemble: the name of the group of stations on this channel, and its Ensemble ID.
SNR: the signal-to-noise ratio. The station list needs about 5 dB; clean sound needs more.
Offset: how far the signal is from the channel centre. This is the receiver’s own frequency error and is corrected automatically.
FIC: the share of station-information blocks received without error.
The list below shows every station in the ensemble with its type, bit rate and protection level. Click a station to play it. DAB+ stations play in stereo through the main window’s volume and mute. Older stations that still use classic DAB (shown as DAB (MP2)) play as well. Services that send data instead of sound are named by what they carry, for example EPG (the programme guide), Journaline (news pages), Traffic (TPEG) (traffic information for navigation systems), GNSS corrections (satellite positioning corrections) or just Data. They play no sound.
While a station plays, the now playing panel shows the text the station sends with its programme, usually the song and artist, or the name of the show. Many stations also send pictures (the slideshow): cover art, the presenter, or news. The newest picture is shown beside the text. Some stations send a new picture every 30 to 60 seconds, some send none.
Audio frames OK shows how much of the sound was received without errors since the station was selected. Below about 95 % the sound has gaps: improve the antenna, or try a station on another channel. Sound shows Buffering… for about a second after a station is selected, or after the signal dropped out, and Signal too weak when nothing can be played.
DAB+ also works from an I/Q recording, if it was recorded on a DAB channel at 2.048 MS/s or more. The channel then stays at the recorded frequency.
The programme guide, the news pages and the traffic information below are received in the background while RX is on and this window is open, whichever station you listen to. Each comes with a button next to the channel, shown only when the ensemble sends that service. The button lights up once the first data has arrived. These services are sent in a loop, so this takes from a minute to a few minutes. What was received stays when you turn RX off and on again, and is cleared when you change the channel. In each of their windows, Save… writes everything received into a text file, and Erase (the bin) clears it; it then fills up again by itself.
16.1. Programme guide
Many ensembles send a programme guide (EPG) with the stations: what each station broadcasts today and in the next days. When the ensemble sends one, the Guide button appears, and the panel of the selected station shows a Programme line with what is on now and what comes next.
Click Guide for the whole schedule of a station. Choose the station at the top; the programme on air now is marked. Save… writes the guide of every station into a text file.
16.2. News pages
Some ensembles, mainly in Germany, send Journaline: short text pages with news, weather, traffic or sport results, sorted in menus. They come as a service of their own, or together with a station’s sound (for example Dlf on the German ensemble DR Deutschland).
Click News, choose where the pages come from under Service at the top, then click an entry to open its page. Back and the line of page names above the page take you back. An entry shown as not received yet points to a page that hasn’t arrived; pages are sent in a loop and appear by themselves. Save… writes every page of the service into one text file.
16.3. Traffic
Some ensembles send traffic information for car navigation systems (TPEG), for example “ARD TPEG” on the German regional ensembles. Click Traffic for the list of traffic events: what happened (for example roadworks or an accident), what it does to traffic (no traffic flow, queuing, slow traffic), closed lanes, advice, from and until when, and how long the affected section is. A map beside the list shows the road sections. Click an event to see its section on the map; click a dot on the map to find its event in the list. The colour of a section shows the effect: red for stationary traffic or no traffic flow, orange for queuing, yellow for slow traffic.
The messages don’t contain road names; the map shows where the section is. Some events only carry a road code for navigation systems and can’t be shown on the map; the status line counts them. Below the service name, a line sums up the traffic flow the service also sends for many road sections. Some broadcasters encrypt their traffic information for paying customers; the window then says so and shows nothing else.
16.4. Satellite positioning corrections
The German ensemble DR Deutschland carries GEPOS, shown as GNSS corrections in the list: correction data from the Federal Agency for Cartography and Geodesy (BKG) that lets suitable satellite receivers (GPS and others) find their position to within a few centimetres. Select it to see what it sends: the provider, how recent the corrections are, which satellite systems they cover, for how many satellites orbit data arrived, and the data rate.
REC saves the raw correction data to a file (format RTCM 3), for example for Geo++ SSR2OBS, which turns it into corrections an RTK receiver can use. Recording stops when you click REC again, select another station, turn RX off or close the window. The data is free to use under the CC BY 4.0 licence (© GeoBasis-DE/BKG).
17. DMR (Digital Mobile Radio)
DMR is a digital two-way radio system. Businesses, transport companies, security services and many radio amateurs use it. A DMR radio sends the voice as data, so the decoder can show who is calling whom, and plays the voice through the speaker.
Most DMR traffic goes through a repeater: a radio station on a hill or a tall building that receives the radios on one frequency and sends them out again, much further, on another. Many amateur repeaters are linked over the internet, so a call can be heard on many repeaters at once.
A DMR call usually goes to a talkgroup: a group number that radios join, for example for a region, a country or a topic. Every radio set to that talkgroup hears the call. In the amateur networks, talkgroup 262 is Germany and 91 is worldwide, for example. A call can also go to one single radio (a private call).
Every DMR radio has a number, the radio id (for example 2636548). DMR itself carries only these numbers, not names. Many radios also send a short text with their name or callsign, the talker alias; only then does the window show a name.
Note
Some DMR networks encrypt their calls. The window shows that a call is encrypted, but its voice is never played: nothing is decrypted. Whether you may listen to such radio traffic at all depends on the law of your country.
17.1. Where to look
DMR is used on the VHF and UHF bands, often between 144 and 174 MHz and between 400 and 470 MHz. Amateur DMR repeaters are mostly in the 70 cm band (430 to 440 MHz) and in the 2 m band (144 to 146 MHz). Online repeater lists and frequency databases for scanner listeners show the repeaters near you. An inexpensive RTL-SDR stick is enough.
Tune to the output frequency of a repeater: that is where it sends. While someone talks, the repeater shows as a signal about 10 kHz wide on the panadapter; between calls it is usually off the air.
17.2. The two time slots
A DMR repeater carries two calls at the same time on one frequency. It does this by taking turns very quickly: it sends a short piece of one call, then a short piece of the other, about 17 times a second each. These two turns are called the time slots, TS1 and TS2. Each one is like a channel of its own and carries its own calls and talkgroups. The window follows both at once.
17.3. Using the window
Tune to the frequency in the main window, then click RX. The top bar, from left to right:
RX starts and stops decoding on the frequency you are tuned to. RX sets NFM (at least 12.5 kHz wide) and centres the receiver exactly on the frequency. There is no Freq control: tune in the main window.
Voice chooses which time slot you hear: TS1, TS2 or Auto (see Listening below). The choice is remembered.
Filter hides rows of the call log (see Filter above), for example
To=TG 262,Alias=DL1or-Data.IDLE turns into a green SYNC while DMR is being received.
LOG writes every finished call and data message to a
.csvfile. Erase (the bin) clears the call log in the window.
DMR can’t run while another tool holds the receiver; ADS-B and DAB+ take the whole receiver over and turn DMR RX off.
DMR also works from an I/Q recording, as long as the frequency is inside the recording.
17.4. The signal panel
Signal: Searching (no DMR found yet on this frequency) or DMR (DMR is being received).
Sent by: Repeater (the output of a repeater, both time slots), Radio (a radio sending to a repeater; you hear only one side then) or Direct (radio to radio, without a repeater).
Colour code: a number from 0 to 15 that every DMR transmission carries. It works like an access code: repeaters that share a frequency in one area use different colour codes, and a radio only listens to its own one.
Bit errors: the share of bits the error correction had to repair. Below 1 % is a clean signal; above 5 % the voice breaks up.
Offset: how far the signal is from the tuned frequency. It is corrected automatically.
Spectrum inverted appears when the receiver delivers the signal upside down. The decoder corrects this by itself.
Under it, one card for each time slot, TS1 and TS2, with what the slot is doing (idle, voice or data). During a call the card shows:
Talkgroup 262 for a group call, or Private call to 3100001 for a call to one radio. Call (reading ids…) means the call has started, but its numbers haven’t come through yet.
From with the radio id of the radio talking, its talker alias if it sends one, and the length of the call in seconds, for example From 2636548 · DL1ABC · 12 s.
A position, when the radio sends one.
Capsules for Encrypted and Emergency.
Without a call, the card shows No call, or the last thing the slot carried, for example End of call or a control message.
17.5. Listening
The speaker plays the voice of one time slot, through the main window’s volume and mute. Voice in the top bar chooses which:
Auto plays the first slot that carries a call and stays with it until that call ends, so two calls never mix. Then it takes the next one.
TS1 or TS2 plays only that slot.
The Voice line under the slot cards says what the speaker does: Waiting for a call (or Waiting for a call on TS2 with a fixed slot), Playing TS1 ((muted) is added when the main window is muted) or TS1 is encrypted — no voice. Between calls the speaker is silent.
Auto skips encrypted calls: while one slot carries an encrypted call, a clear call on the other slot is played.
17.6. The call log
Every finished call or data message becomes a row: Time (UTC), Slot, CC (colour code), Type (Group, Private or Data), From (the radio id), To (TG 262 for a talkgroup, or the radio id called), Alias (the talker alias), Duration and Detail (EMERGENCY, Encrypted, a position, a text message, or Faded (no end of call) when the signal ended without the call’s normal end). LOG writes the same columns to the CSV file.
The status line counts the DMR bursts received and the rows of the log.
17.7. Not yet
Some kinds of data are shown as a data message but not decoded.
Large networks that move each call to another frequency (trunked DMR) are not followed: the window decodes the frequency you are tuned to.
18. FT8 (Ham Digital)
FT8 is a weak-signal amateur mode from the WSJT family (Joe Taylor, K1JT). Short messages with callsigns and Maidenhead locators are sent in timed slots. It is used worldwide on HF (and some VHF) to make contacts at low power. This window also decodes FT4 (shorter slots) and FT2.
Each mode has its own published USB frequencies. Select Mode first (FT8, FT4 or FT2), then the band. RX sets USB and starts decoding.
A pass lasts 15 seconds for FT8, 7.5 seconds for FT4, and about 3 seconds for FT2. The bar at the top shows how far the current slot has run. FT8 and FT4 use even and odd UTC slots: even-slot rows are green, odd-slot rows are blue.
Map shows stations that sent a locator.
19. WSPR (Propagation)
WSPR (Weak Signal Propagation Reporter) is an amateur beacon mode from the same WSJT family as FT8. Stations send a callsign, locator and power at very low power so others can see which bands are open. There is no conversation — only these beacons.
Each pass lasts two minutes (even UTC minutes). The list stays empty until the first slot finishes.
Use Freq to pick a band, then RX. RX sets USB and a 3 kHz bandwidth.
Map shows the stations that were decoded.
20. Time Signal
Long-wave time stations send the civil time as a slow stream of bits, once per minute. Clocks and radios use them as a time reference. This decoder covers DCF77 (Germany), MSF (United Kingdom), WWVB (United States), JJY (Japan) and TDF (France).
Use Freq to pick a station, then RX. Bits of the current minute are shown at the top as they arrive. When the minute is complete, a row is added with the decoded time and the offset from the Mac clock.
Stations also send parity bits. If parity fails, that minute may be wrong.
22. Speech / Transcribe / Translate
This decoder transcribes spoken audio and can translate it, so a broadcast in another language can be followed as text.
It uses only Apple on-device speech recognition and translation (Apple Intelligence). Apple Intelligence must be enabled on the Mac. Check SDR-Receiver ▸ Settings…, AI tab.
Tune to a voice station (any mode that produces speech). Select Language, then RX. Squelch should be on so empty audio is not sent to the recognizer.
Speech also transcribes the voice of the DMR decoder and DAB+. While one of them plays through the speaker, Speech hears what the speaker plays. Turn on RX in that decoder’s window and in Speech. The squelch doesn’t matter then: between calls the DMR decoder is silent.
The upper strip is the live line. It may change while the recognizer is still working. When a segment is finished it is added to the lower part of the window. That lower text is what is logged, and what is translated if Translate is not None.
Timestamp starts each new block with a time. LOG writes the finished text to a file.
1. Band Plan
A band plan is a map of frequency ranges: amateur, broadcast, maritime and so on. The app includes a General plan with allocations that are the same in most of the world, plus further plans for regions or special uses.
Open Tools ▸ Band Plan. Enable a plan with its checkbox. Enabled plans appear as the coloured ribbon on the spectrum, so the current range is visible while tuning. The ribbon can also be turned off under DISP.
Band on the main window lists sections from the enabled plans. Selecting a section tunes to its centre and may set the mode.
2. Frequency list
The Frequency List holds reference catalogs of stations, not personal memories. There are no markers on the panadapter for these rows. Show ▸ Stations at VFO lists the catalog entries for the frequency currently tuned. Only catalogs that are Enabled here appear in that window.
The app includes:
General — well-known frequencies that apply in most places
EiBi — a published shortwave broadcast schedule (station names and transmission hours in UTC)
further catalogs that can be created or imported
New creates a catalog. Give it a unique ID and a title.
Import / Export can download a fresh EiBi list from eibispace.de (this replaces only the EiBi catalog), import a CSV file into a user catalog, or export a user catalog as CSV.
A CSV file for import needs a first line with the column names and at least a name and a frequency column. Further columns are read when present: mode, tags, timeUtc, itu, language, target and remarks; other columns are ignored. The columns can be separated by commas, semicolons or tabs, as spreadsheet programs write them. When the column name says the unit, for example Frequency (MHz) or freq_kHz, the numbers are read in that unit. Otherwise a number with a decimal point below 1000 is read as MHz (145.5), a whole number below 100000 as kHz (6195), and larger whole numbers as Hz. Rows that can’t be read are skipped, and the import message lists them.
Add, edit and delete apply to entries in user catalogs. In General and EiBi, Edit shows the selected entry read-only, with long tags and remarks in full. Right-click a row to copy, cut or paste. The same clip can be pasted into Memories, and memories can be pasted here.
Rows outside the range of the connected receiver are shown grey.
3. Memories
Memories are stored channels. Besides frequency they can keep mode, bandwidth, AGC, squelch, step and display span. Bandwidth, squelch and span are optional: if they are not stored, recall leaves the current setting as it is.
A marker is drawn above the frequency scale for each memory. Click a marker to recall it: the receiver tunes to that frequency and applies the stored settings.
Create a memory with M+ on the main window, or from Tools ▸ Memories. The list can be imported and exported as CSV.
Rows outside the range of the connected receiver are shown grey. Right-click a row to copy, cut or paste. The same clip can be pasted into the Frequency List, and frequency-list rows can be pasted here.
Change applies an edit to every memory the current filter is showing. That is useful for adding a tag to a group of memories, or setting the same mode on a range.
Example: set NFM on all memories between 100 and 200 MHz. First filter with:
frequency>100,-Frequency>200
That keeps frequencies above 100 MHz and hides those above 200 MHz. Then open Change, set Mode to Set NFM, and Apply.
4. Scanner
The Scanner hops through frequencies and records those that are busy.
Choose what to scan:
Range — from a start frequency to an end frequency, in a chosen step. The current mode and bandwidth are used.
Preset — a built-in range such as 2 m amateur FM or air-band voice. Selecting a preset also sets mode and bandwidth.
Memories — memories that match a tag filter (empty means all).
Frequency List — entries from the enabled frequency catalogs, also with an optional tag filter.
Detect is either Level (a signal stronger than the entered dB value) or SQL open (the squelch on the main window opens). For SQL open, set squelch on the VFO so it only opens on a busy channel.
Timing is Fast, Medium, Slow or Manual (how long to wait after a hop, and how long to listen). Scanning always runs from low frequency to high.
Resume after a hit:
Stay — remain on that frequency
After silence — move on when the channel has been quiet for the given time
After seconds — move on after the given time even if the channel is still busy
Loop starts again at the beginning of the list. Audio is muted while hopping and restored on a hit or on Stop.
Start begins the scan. Hits appear in the list with a count and the minimum and maximum dB seen on that frequency. Stop ends the scan. Double-click a row to go there. M+ stores the selected hit as a memory. Skip ignores that frequency for the rest of the session. Continue resumes after Stay or a double-click.
5. Audio Recording
Audio Recording writes the speaker audio, not the I/Q stream. What is heard after HPF, LPF, NR and squelch is stored as a WAV file. This is separate from I/Q recording on the main window.
Folder… chooses where files are stored. A folder is required before recording can start.
Type:
Continuous — one file, including quiet periods
Pause on SQL — one file; writing stops while squelch is closed, or between calls while the DMR decoder plays
Split on SQL — a new file each time squelch opens, or for each call while the DMR decoder plays
If squelch is off, Pause and Split behave like Continuous.
Recording a decoder. While a decoder plays through the speaker (DMR or DAB+), Audio Recording records that decoder’s sound, because that is what you hear. The squelch doesn’t matter then. Instead, the DMR decoder tells Audio Recording when a call is on. Pause on SQL then records only the calls, and Split on SQL writes one file per call. A pause of up to about 1.5 seconds, for example while the other side answers, stays in the same file. DAB+ has no calls, so a DAB+ station is recorded without pauses in every type. Start the recording once the DAB+ station plays.
Filename patterns can include date, frequency, mode or a sequential number.
Use the recorder controls on the right to start, stop and play. Files in the folder appear in the list. A row can be played, renamed or deleted. Very short captures are discarded.
6. Controllers
A tuning knob or a MIDI controller makes tuning feel like a real receiver. Open Tools ▸ Controllers and choose the controller:
MIDI Controllers: DJ and other MIDI controllers, over USB or Bluetooth. Several can be used at once. Add one with Add MIDI Controller, choose its device, then map its knobs and buttons. The Bluetooth button next to the device pairs a Bluetooth MIDI controller.
Icom RC-28: Icom’s USB tuning knob with three buttons.
FlexControl: the USB tuning knob with three buttons.
Keyboard: keys of the Mac keyboard, for example the arrow keys to tune or F-keys for other actions. Keys you type into a text field, such as the frequency field, stay with that field.
Switch the controller on and choose its device. For the RC-28 and the FlexControl the knob tunes right away: the app starts with a mapping for them (RC-28: knob tunes, TX button mutes, F-1 / F-2 make the tuning step smaller / larger; FlexControl: knob tunes, knob click changes the tuning step, AUX 1 mutes, AUX 2 changes the mode, AUX 3 turns squelch on and off).
Edit Mapping opens the mapping editor. Each row connects a control of the controller to an action. Add a row with +, then press the button or turn the knob: the editor finds it. For the keyboard, press the key combination.
Knobs: Tune and Tune Reverse (by the tuning step, like the mouse wheel), Zoom.
Knobs or faders: Volume, Squelch Level, Bandwidth. A knob changes them step by step, a fader sets them to its position.
Buttons: tune up or down one step, tuning step larger or smaller, next or previous mode, mute on / off, squelch on / off, next AGC setting, zoom in or out, IQ recording start / stop.
LEDs: muted, squelch on, IQ recording.
While tuning is locked (for example by the Scanner), the knob doesn’t tune.
1. Stations at VFO
Show ▸ Stations at VFO lists frequency-list entries for the frequency currently tuned. Memories can show a marker on the spectrum; a frequency list often has several stations on the same channel, so a list is used instead of markers. The window can stay open while tuning.
Only catalogs that are Enabled in the Frequency List appear here.
If an entry has operating hours, it is highlighted green when those hours include the current time. Hours are always UTC. The UTC clock at the top of the main window is the reference.
The columns show frequency, name, hours, country (ITU), language, mode, tags and remarks.
Double-click a row to tune to that station.
2. Tune Stack
Show ▸ Tune Stack remembers frequencies visited in this session. Panning the display without changing the VFO does not add an entry.
Stay on a frequency for a few seconds and it is pushed onto the stack, with the demodulation mode. The stack holds the last ten. Click a row, or use the up and down buttons, to return there.
DELETE removes the selected entry. CLEAR empties the stack. The list is not kept after the app is quit.
Common Issues
Stuttering audio or waterfall
If the audio or the waterfall stutters, connect the receiver directly to the Mac, not through a USB hub. Try a different USB port.
Latest version
Keep both the app and macOS up to date. The app requires macOS 26 or later.
Check for Update under SDR-Receiver ▸ Settings…, Support, looks for a newer version.
What changed in this version
After an update, What’s New lists what that version added. It appears at every start until you click Don’t Show Again; Continue only closes it. After the next update it appears again with the new notes. What’s New in SDR-Receiver ▸ Settings…, Support, opens the notes at any time.
Version History, in the same place, lists the notes for every release rather than only the current one. It is the quickest way to find out when a control appeared, or whether a change that is being looked for is in the installed version at all.
Getting in touch
If the problem remains, use Contact Support in the app (Help menu, or SDR-Receiver ▸ Settings… then Support).
Write a Review under SDR-Receiver ▸ Settings…, Support, opens the app’s page in the Mac App Store to rate and review it.