SDR-Receiver

1. About the App

_images/main-screen.png

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.

_images/add-receiver.png

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.

_images/select-device.png

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

_images/main-screen.png

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.

_images/dsp-settings.png

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.

_images/bw-settings.png

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

_images/demo-receiver.png

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:

_images/freq-selection.png

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 text

  • berlin,hamburg — keep rows that contain either

  • -test — hide rows that contain that text

  • Call=K1JT — keep rows where the Call column contains that value

  • Country=-russia — hide rows where the Country column contains that value

  • dB>-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.

2. FSK / NAVTEX / RTTY

FSK (Frequency Shift Keying) sends text by switching between two tones. The tones are Mark and Space. Shift is the frequency difference between them. Baud is the symbol rate.

The same window covers several services that all use two-tone FSK:

  • Ham RTTY — amateur radio teletype, commonly 45.45 baud and 170 Hz shift

  • Weather RTTY — meteorological text broadcasts (for example DDH47)

  • NAVTEX / SITOR-B — maritime safety text on MF, with error correction

  • DSC — Digital Selective Calling on marine radio (alerting and calling, not a conversation)

  • EFR Teleswitch — long-wave utility signalling used for tariff and load switching

Frame is the character layout (start and stop bits, or a continuous code such as 4/7 for NAVTEX). Enc is the alphabet: ITA2 (Baudot) for classic RTTY, CCIR476 for NAVTEX, ASCII, DSC or Selcall. UOS (Unshift On Space) is for ITA2: after a space, the decoder returns to letters. Inv swaps Mark and Space if the station is sent inverted.

This decoder uses the IQ stream. Demodulation mode does not have to be set for decoding itself. A catalog frequency may still set USB so the signal can be heard.

_images/fsk-decoder.png

Use Freq to pick a catalog frequency, or tune manually. Preset fills Mark, Shift, Baud, Frame and Enc for a known service (Weather DDH47, Weather 50/450, Ham RTTY, NAVTEX / SITOR-B, DSC, EFR Teleswitch). The same values can be set by hand; that selects Custom.

Tuning is two steps:

  1. Zoom the waterfall until the two FSK lines are visible. Move the frequency so the M and S markers sit on those lines.

  2. Use the ellipse display and fine-tune until two ellipses stand at 90 degrees to each other.

_images/fsk-decoder-waterfall.png

RAW shows hexadecimal instead of decoded text. LOG writes received text to a file.

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.

_images/cw-decoder.png

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.

_images/hffax-decoder.png

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, or FLEX with its speed, for example FLEX 1600/2: 1600 bits per second with two tones; 3200/4 means 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.

_images/pocsag-decoder.png

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.

_images/sstv-decoder.png

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.

_images/ads-b-decoder.png

RAW shows the incoming frames instead of the aircraft list. Map shows aircraft positions and tracks.

_images/ads-b-map.png

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 1200 for 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 METAR or Location=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.

_images/ais-decoder.png

RAW shows the incoming messages instead of the vessel list. Map shows ship positions and tracks.

_images/ais-map.png

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.

_images/aprs-decoder.png

Map shows position reports.

_images/aprs-map.png

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.875 doesn’t read 847. 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.

_images/acars-decoder.png

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.

_images/ale-decoder.png

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.

_images/rds-decoder.png

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.

_images/dab-decoder.png

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.

_images/dab-guide.png

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.

_images/dab-news.png

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.

_images/dab-traffic.png

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.

_images/dab-gepos.png

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=DL1 or -Data.

  • IDLE turns into a green SYNC while DMR is being received.

  • LOG writes every finished call and data message to a .csv file. Erase (the bin) clears the call log in the window.

_images/dmr-decoder.png

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.

_images/ft8-decoder.png

Map shows stations that sent a locator.

_images/ft8-map.png

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.

_images/wspr-decoder.png

Map shows the stations that were decoded.

_images/wspr-map.png

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.

_images/time-signal-decoder.png

21. Loran-C / eLoran (Radio Navigation)

Loran-C is a radio navigation system on long wave, at 100 kHz. Before satellite navigation it guided ships and aircraft. Groups of transmitters, called chains, send short, strong pulses at exactly known times. A receiver measures how much later the pulses of one transmitter arrive than those of another, and works out where it is from these time differences.

Most Western chains were switched off around 2010–2015, but the Russian Chayka chains (the Russian version of Loran-C) and chains in Asia are still on air, and eLoran (enhanced Loran) is being tested and built again as a backup for satellite navigation. At night, and in much of Europe also by day, a Chayka chain can be heard with a simple long-wave antenna.

21.1. How a chain works

  • A chain has one master and two to five secondaries, named V, W, X, Y and Z.

  • Each station sends a group of 8 pulses, 1 ms apart (the master adds a 9th pulse). The master starts, then each secondary follows after its own fixed delay.

  • The whole sequence repeats every GRI (group repetition interval). A chain is named after its GRI in units of 10 µs: chain 8000 repeats every 80 000 µs (80 ms).

  • The TD (time difference) of a secondary is how many microseconds (µs) after the master’s pulses its pulses arrive at your receiver. The fixed delay is part of it; the rest depends on how far you are from the two stations. So each TD puts you on a line on the map, and two TDs give a position.

  • eLoran stations also send data: the time, their identity and corrections that make the position more accurate. Some send it with an extra 9th pulse (LDC, Loran Data Channel), others by shifting the timing of the last pulses (Eurofix).

21.2. What you need

  • A receiver that tunes 100 kHz: IC-R8600, IC-7760, Airspy HF+, Perseus, or an RTL-SDR in direct sampling (see Receivers). HackRF, ADALM Pluto and FUNcube don’t reach 100 kHz.

  • A long-wave antenna: a long wire, an active whip or a loop. Keep it away from switching power supplies, LED lamps and chargers; they are loud at 100 kHz.

  • A sample rate of at least 50 kS/s.

21.3. Using the window

Turn RX on. The receiver tunes to 100 kHz and listens in AM (the pulses sound like a buzz); when you turn RX off, the mode you had before comes back. Frequency always shows 100 kHz: all chains share this one frequency. Chain is Auto by default: the decoder looks for the chains on air first, then for any GRI. The numbers in this menu (for example GRI 8000) are not frequencies but how often a chain repeats. If you know which chain you hear, pick it to make the search faster; picking a chain also tunes back to 100 kHz if you moved the frequency. Re-sync forgets the chain and starts the search again.

A weak chain needs patience: the decoder adds up the pulses of the last half minute or so, so a far chain can take up to a minute to appear.

After a few seconds the large line shows the chain (for example GRI 8000 · Western Russia (Chayka)), its state (Searching, GRI found, Locked) and the number of stations. SYNC turns green once the decoder holds the chain.

_images/loran-decoder.png

Stations lists the master and the secondaries: name and role, TD in µs, Level in dBFS, SNR (how far the station stands out of the noise), Code (the pulse group’s phase code, A or B, which alternate, and how cleanly it was seen), 9th (the 9th pulse was seen) and eLoran (the data channel the station sends).

Below the table, Pulse shows the averaged pulse of the strongest station: a clean Loran pulse rises in about 65 µs and dies away slowly. A bent shape means sky wave (the signal reflected by the ionosphere at night) or interference. Timeline shows one GRI with the master at 0: each bar is a station’s pulse group, with its letter above it.

The position line shows the position worked out from the TDs, with a rough error radius and the secondaries used. Show on Map shows it on a map, with the error circle. The position needs at least two secondaries whose transmitters are known. Without corrections for the ground the signal travels over, expect it to be off by a few hundred metres or more.

Messages lists the data messages of eLoran stations: time, station, channel (LDC or Eurofix), type (time of day, station identity, correction, …), content and Check (whether the error correction accepted the message). Click a message to see all of it, with the raw data as hex. Plain Loran-C and Chayka chains send no data, so this page stays empty for them. Stations known to send data in 2026: Anthorn in the UK (GRI 6731, Eurofix: time, station identity), the US West Coast chain (GRI 5990, LDC: time) and Salwa in Saudi Arabia (GRI 8830, both, with satellite navigation corrections). With the Demo receiver, the demonstration eLoran (Anthorn) shows Eurofix messages Anthorn really sent.

LOG writes a CSV file: one row per station every 10 seconds while the chain is locked, the position, and every data message. Erase clears the page you are on.

The status line says when the receiver can’t tune 100 kHz, when the frequency was moved away from 100 kHz, when a recording doesn’t contain 100 kHz, or when the sample rate is too low.

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.

_images/speech-decoder.png

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.

_images/bandplan-tool.png

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

_images/frequencies-tool.png

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.

_images/memories-tool.png

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.

_images/change-memories.png

4. Scanner

The Scanner hops through frequencies and records those that are busy.

_images/scan-tool.png

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.

_images/audiorecording-tool.png

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.

_images/controllers.png

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.

_images/stations-at-vfo.png

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.

_images/tunestack.png

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.