Tagged: RDS

Muxwright: A Multi-Standard Radio and TV Test Transmitter for the PlutoSDR

Thank you to Peter Holzhauser for writing in and sharing Muxwright, a multi-standard radio and TV test transmitter for the ADALM-Pluto (PlutoSDR). Peter has in the past submitted his ESPSoup, and Etherbulb projects. Muxwright is intended for home lab testing only, with the Pluto connected to the receiver under test via cable and attenuator or inside a shielded box, as radiating broadcast standards over the air requires a frequency assignment.

Muxwright can generate FM stereo with RDS/RBDS, DAB+, DVB-T, DVB-T2, DVB-C, DVB-S/S2, ATSC 1.0, ISDB-T, DTMB and analog PAL/NTSC TV, plus DVB-S2 DATV for QO-100 and other amateur bands (which of course requires an amateur radio license). The digital TV modulators run directly on the Pluto and everything is controlled from a browser dashboard. The Pluto's RX input can also be used as a monitoring receiver for expected vs. actual test reports.

The software runs on Windows 10/11 via WSL2 and is currently at Beta 0.4. The README notes that it has only been verified on the original Pluto Rev. B, and that DVB-T2, ATSC, ISDB-T and DTMB are still untested with real TV sets. The code is MIT licensed (with the FM/RDS module under GPL-3.0) and available on GitHub, however, the Windows installer is only available by request via email from the website.

Muxwright Transmitting DVB-T with a PlutoSDR
Muxwright Transmitting DVB-T with a PlutoSDR

AI Disclaimer: The project's GitHub commit history lists Claude as a co-author.

SDR– Updated to V2.2: Many New Decoders, Tools and KrakenSDR Direction Finding and Beamforming Support Added

Last month we posted about the release of SDR-- (SDR minus minus), an open-source app that lets you visually wire together a receiver on a canvas. Since that time, Julian, the developer of SDR--, has been busy adding support for many decoders, various tools, and improving performance. Julian has also added KrakenSDR support, with radio direction-finding and beamforming blocks. Julian shares the following update for SDR-- V2.20:

New Decoders

  • Aviation and satellite: VDL2, HFDL, Inmarsat Aero and STD-C, Iridium, Drone Remote ID, 406 MHz beacons
  • Voice: TETRA, Tetrapol, GSM downlink, DECT, D-STAR, FreeDV, NXDN, dPMR
  • Data: LoRa (LoRaWAN, Meshtastic, MeshCore), ISM sensors, End-of-Train, DSC, BLE, Wi-Fi survey
  • Weather: NOAA APT, Meteor LRPT, WEFAX, radiosondes with landing forecast
  • Broadcast: DVB-T/T2, DVB-S2X, DAB packet mode, DRM with xHE-AAC

Coherent and mobile

  • Direction finding, beamforming and passive radar on the KrakenSDR
  • An iOS app with CarPlay for DF while driving is in TestFlight. Android is coming soon.

Hardware

  • Native Support: KrakenSDR, RTL-SDR Blog V4 Lite, AntSDR, PlutoSDR, SDRplay, Airspy, bladeRF and ESP-SDR
  • NanoVNA and antenna rotators
  • rtl_tcp and ADS-B Beast output for other apps

Tools

  • A satellite node with Doppler correction, plus a map with footprints and tracks
  • A spectrum monitor that classifies signals automatically, and a scanner with priorities and lockouts
  • Antenna calculator, noise figure, PER tester, SID monitor
  • Audio denoise, call recording, and a decoder log grouped by station
  • Event outputs: CSV, desktop notifications, PostgreSQL, InfluxDB

App

  • A redesigned UI with a unified look for every node
  • Multi-user editing, remote access from a browser, built-in HTTPS
  • An MCP server, so an AI assistant can build and tune a canvas

Performance

All measured on an M4 Max, full results at https://sdrmm.com/benchmarks:

  • DSP against GNU Radio:
  • FIR is 3.5x faster
  • NCO is 3x faster
  • FM demod is 4x faster
  • DDC is 1.6x faster
  • A 4096-point FFT is 1.6x faster than FFTW
  • Decoding rate in noise (48 trials per decoder across an SNR range):
  • ADS-B: 68%, against 56% for readsb and 50% for dump1090-fa
  • POCSAG: 73%, against 50% for multimon-ng
  • DMR: 81%, against 60% for dsd-fme
  • NXDN: 67%, against 23% for dsd-fme

(feel free to verify yourself with cargo xtask compare dsp)

The speed comes from hand-written SIMD kernels (NEON, AVX2, AVX-512), one shared downconversion for all channels on a radio, and a DSP path that never locks or allocates. The noise gains come from decoding IQ directly with
coherent receivers and soft decisions.

SDR-- Screenshot
SDR-- Screenshot

AI Disclaimer: This software is likely to be AI-assisted or vibe-coded.

SDR–: A Software-Defined Radio Application with Visual Signal Path

Thank you to Julian for writing in and sharing with us his interesting project called SDR-- (SDR minus minus). SDR-- is an open-source app that lets you wire devices, decoders, and displays together on a desktop window or browser-based canvas. It is described as "a software-defined radio application with a visual signal path. Connect devices, decoders, displays, and recorders on a canvas, then pin the controls you use to a rack."

A separate Rust server, which can sit on the same PC or a remote computer (like a Raspberry Pi), handles the DSP. Julian notes that SDR-- has native RTL-SDR support, and decoders for ADS-B, AIS, POCSAG, FT8, SSTV, and RDS are already implemented, with more in progress. The app also has a built-in signal generator and a repository of IQ recordings that can be used for experimentation and testing the various decoders.

The project releases are available on GitHub releases, and they cover Windows, Linux, and MacOS. 

SDR-- Screenshot
SDR-- Screenshot

9GRadio: An Android RTL-SDR App for Spectrum Monitoring and Decoding Analog/HAM/Aviation/Marine Radio Traffic

Thank you to Richard (9G5AR) for writing in and sharing with us the release of his open source Android app called 9GRadio. Richard writes that 9GRadio is an app designed for spectrum monitoring/analysis and the decoding of analog/ham/aviation and marine radio traffic.

In terms of demodulation it supports AM, FM, NFM, WFM, WFM Stereo, USB, LSB, CW, CWR, DSB and RAW IQ modes.

For digital decoding, it supports APRS, digital voice modes such as DMR, D-STAR, YSF, dPMR, NXDN, and aircraft, marine, and datalink modes such as ADS-B, AIS, ACARS, RDS, and multilateration.

Richard also notes that 9GRadio includes a full multilateration stack for locating transmitters, which works with 2+ networked 9GRadio receivers. Interestingly, the multilateration stack is noted to be protocol-agnostic, meaning it should work not only with ADS-B, but also with any mode that provides a digital identity for a transmission, such as AIS, ACARS, RDS, and digital voice modes.

The app is not available on the Google Play Store, but the APK is available for sideloading on the project's GitHub Releases page, along with the open source code.

9GRadio GIF of various screens
9GRadio GIF of various screens

NyxScope: A Windows Multi-Protocol SDR Decoder Program with Multiple Digital Native Decoders

WARNING: Multiple people have noted that this program is not working as expected and may be overly buggy.

Recently, we've learned about NyxScope, a multi-protocol SDR receiver program for Windows that comes with multiple native decoders built right into the software. Their own description describes this all-in-one program best:

You get spectrum and waterfall, multiple concurrent VFOs, trunked-radio following, digital voice, aviation and marine tracking, paging, ISM sensors, HD Radio, and transcription, in one binary.

NyxScope includes decoders for P25 Phase 1 and Phase 2 voice, EDACS and NXDN control channels, ADS-B, AIS, ACARS, POCSAG, FLEX, LoRa CSS PHY + LoRaWAN MAC, Morse, RDS, CTCSS/DCS, Iridium decoding (with voice), and also includes a signal classification tool, Bluetooth LE scanner, and Whisper voice-to-text transcriber. It also outsources decoding of other protocols to mature decoding software such as multimon-ng, rtl_433, dsd-neo, nrsc5, direwolf, dumpvdl2, dump978, rs41mod where required, noting that the outsourced decoders are bundled with the software, meaning no extra installation work is required.

The software supports RTL-SDR, HackRF, Airpsy, bladeRF, SDRplay, Fobos and PlutoSDR. It also supports using multiple SDRs used in parallel.

The software does not appear to be open source, but it is provided for free with a limitation of 3 concurrent VFOs and a limitation on recording, transcribing, and pager messages. A perpetual per-machine license for $89.95 can be purchased to lift these restrictions and add access to their FCC frequency lookup database.

AI-Disclaimer: While the developers have not noted any use of AI tools, we suspect that AI was used in the creation of this software.

NyxScope Screenshot Scanning the 800 MHz Band
NyxScope Screenshot Scanning the 800 MHz Band

Using an RTL-SDR to Decode Broadcast FM RDS Data on Android

Over on YouTube Double A Labs has posted a new video demonstrating how to use an RTL-SDR and Android device to receive broadcast FM stations, and to decode any associated RDS data. 

In the video Double A uses the SDR Touch Android app and the Advanced RDS function to show the RDS information. He goes on to explain the various pieces of information RDS data provides including clock time, active RDS groups and alternative frequencies.

Tune broadcast FM radio and decode Radio Data System (RDS) information using your Android phone and an RTL-SDR USB (see parts list below). RDS can include station identification, song name, the current time for a receiver to sync its clock, alternative frequencies the same program is on, and more!

Tuning FM Radio & Decoding RDS Data on ANDROID using RTL-SDR USB

Receiving the ‘Hidden’ Broadcast FM SCA Audio Subcarrier with an RTL-SDR and SDR#

Broadcast FM channels can often contain additional subcarriers hidden within the bandwidth. A common subcarrier is Radio Data System (RDS), and this is what provides song and radio station text information to your radio.

Another less commonly seen subcarrier is the Subsidiary communications authority (SCA), which is a separate audio channel hidden within the broadcast FM signal. SCA is typically used for niche radio programs, elevator music, music for doctors offices, and niche services such as reading for the visually impaired. In the past you needed a special hardware SCA radio to receive these channels, however receiving these channels with an SDR is relatively simple. Not all broadcast FM stations will have an SCA service, but the video shown below explains how to find one.

Over on YouTube channel Double A has uploaded a video showing how to decode these SCA subcarriers using an RTL-SDR, two SDR# instances and the MPX Output plugin. The idea to to use a virtual audio cable to pipe the FM Multiplex (MPX) audio output from one instance of SDR# to another. In the second SDR# instance you can then directly tune into the SCA channel. In his video he also explores the FM MPX spectrum, showing the different components, and also how to install and use RDS Spy for decoding RDS.

Tuning an FM Audio Subcarrier (SCA) & Decoding RDS Data with RTL-SDR USB

Experimenting with Broadcast FM RDS (TMC, RT+) and SCA Audio

A typical broadcast FM station can sometimes contain “hidden” subcarriers embedded within the main signal. The subcarriers contain data or audio services.

An example of a data subcarrier hidden within broadcast FM is the “Traffic Message Channel” (TMC). The TMC contains traffic data, and is used on GPS devices that advertise as having live traffic capabilities. TMC data is encrypted so that it can be sold, but is very easily broken. Another data service is RDS-RT+ data which transmits song information, for radios that can display it.

An example of a voice subcarrier (SCA/ACS) might be niche radio stations, such as ethnic stations, elevator music, music for doctors offices etc. Usually a specialized radio is required to receive a SCA channel. In a previous post we showed how a user was able to receive SCA on Windows.

Over on his blog Gough Lui has been investigating the broadcast FM subcarriers in his home town of Sydney, Australia. In his post he looks at TMC, RDS-RT+ and SCA subcarriers and explains a bit about what they are and how they work. He also goes on to receive and decode the subcarriers with an RTL-SDR, gr-rds and GNU Radio. While Gough doesn’t bother to decrypt the TMC service, he can still see when an event occurs and what the even was. Without decryption he just doesn’t know where the location on the event is. For SCA he wrote a GNU Radio program to extract the audio subcarrier and was able to decode audio from a local Indian station for migrants.

SCA GNU Radio Decoder
SCA GNU Radio Decoder