Category: Applications

CyberRadio: A Minimal GPU Accelerated Radio App for Most SDRs

Programmer Luigi F. Cruz has recently released a new SDR app called "CyberRadio". CyberRadio is a minimal SDR app, which allows you to listen to FM and AM radio. It does not have any spectrum analyzer or waterfall display. As it is based on SoapySDR, it supports almost every SDR including the RTL-SDR, and runs on Linux, maxOS Sierra, Windows 10 and ARM SoCs.

Luigi also notes that he has made use of cuSignal and Numba functions which enable GPU acceleration on CUDA compatible graphics cards.

The app is still in pre-release status, so no binaries are available. However, Luigi has provided installation instructions for Linux on the GitHub.

CyberRadio Screenshot
CyberRadio Screenshot

Remote Spectrum Monitoring with OpenWebRX, RTL-SDR and the Balena Cloud Service

Thanks to Alan Boris of Balena.io for submitting their new blog post titled "Running OpenWebRX on balena to remotely monitor local radio spectrum". Balena.io is an IoT cloud service that is used for "building, deploying, and managing fleets of connected Linux devices".

In the blog post, they show how it's possible to use a RTL-SDR and Raspberry Pi running OpenWebRX to remotely monitor the radio spectrum over the internet. This of course has been done many times before, however, the novel thing here is the use of the Balena cloud platform which makes installing and managing the Raspberry Pi running OpenWebRX much easier.

Balena has a has a special balenaOS image that is first burned on the Raspberry Pi's SD card. The OS image is pre-generated with your home WiFi details, so upon boot it automatically connects to the internet and can be accessed on the balenaCloud dashboard. At that point you can easily remotely push the pre-made Balena "sdr-spectrum-monitor" docker image to the Pi from the Balena online dashboard. This docker image has OpenWebRX and the RTL-SDR drivers already installed on it. It's then a simple matter of connecting to OpenWebRX via the local IP address as you would normally.

This is quite a nice system as it avoids needing to perform the "fiddly" steps of setting up WiFi, connecting to the Pi, determining the Pi's IP address, and installing the RTL-SDR drivers and OpenWebRX software manually.

Balena also has a very simple way to make the OpenWebRX server accessible from outside your network. The only steps required are to set a port variable in the Balena cloud dashboard, and enable the "public device URL" option. No need to fiddle around with unblocking ports or dynamic DNS services.

Balena.io appears to be free for personal use, allowing you to add and manage up to 10 devices before needing to pay.

RTL-SDR & OpenWebRX Installed and Managed via Balena Cloud.
RTL-SDR & OpenWebRX Installed and Managed via Balena Cloud.

DSDPlusUI: A Graphical User Interface for DSD+

Over on Twitter Annunaki (@StupotSinders) has been teasing some screenshots of a GUI for DSD+ that he's been developing over the past few weeks. And now he has released the software which is called "DSDPlusUI". DSD+ is mostly command line based, so a GUI could be useful for newbies. The software can be downloaded from the DSDPlusUI groups.io page.

DSD+ (aka Digital Speech Decoder) is a free closed source program that is compatible with RTL-SDR and various other SDRs which is used to decoder digital speech protocols such as P25 P1, DMR, NXDN and more. DSD+ Fastlane is a paid upgrade which allows subscribers to receive the latest updates to the software early. 

DSD+ GUI by Annunaki
DSD+ GUI by Annunaki

Receiving and Decoding NFC with an RTL-SDR and GNURadio

Having been inspired by an NFC activated coffee machine at his work, back in 2017 Jean Christophe Rona uploaded a blog post showing how he used an RTL-SDR and GNU Radio to sniff and decode NFC (Near-Field Communication) tags. His post first goes into detail showing how NFC works and goes on to create a GNU Radio flow graph with custom GNU Radio block for decoding the NFC Miller code. The final result was him being able to demodulate the coffee machine to tag communication. We note that in Jeans experiments he used a standard RTL-SDR dongle with the HF driver hack in order to receive the NFC frequency of 13.56 MHz, but these days it should also be possible to simply use direct sampling on an RTL-SDR Blog V3 unit.

More recently Martin Schaumburg (5ch4um1 on YouTube), wrote in and wanted to share his video showing his replication of Jean's experiments. Martin's video shows him using a simple coiled up wire antenna on his RTL-SDR to receive NFC communication from an NFC reader to NFC tag, and he shares a few tips on getting the software to work.

RTLSDR NFC decoding reader to tag communication with a rtl-sdr and gnuradio.

Update 13 January 2020: Martin has added a second video with some additional information and tests.

RTLSDR decoding NFC, or: how to get two signals for the price of one.

Tracking down a Water Leak with RTLAMR

Earlier in the year Clayton discovered that his water bill had suddenly gone up one month. Suspecting a leaky appliance he set out to discover what it was by using an RTL-SDR and the rtlamr decoder. The rtlamr decoder is able to decode water meters that transmit usage data wirelessly via the Itron ERT protocol which is typically found in the unlicensed 900 - 920 MHz band in the USA and Canada.

Clayton wrote a simple Python script to plot the usage data extracted by rtlamr, and after a week determined that water was being consumed at 10 liters an hour even while away from home. Suspecting a leak in the toilets he turned off their valves and the next day saw that the reading remained constant when away, indicating that he'd found the leak.

A water leak graphed by decoding an Itron ERT water meter with RTL-SDR
A water leak graphed by decoding an Itron ERT water meter with RTL-SDR

KiwiSDR Now Supports DRM Decoding

KiwiSDR have recently implemented DRM decoding into their OpenWebRX implementation. Digital Radio Mondiale (DRM) is a type of digital shortwave radio signal that is used by some international shortwave radio broadcasters. It provides superior audio quality compared to AM stations thanks to digital audio encoding.

The KiwiSDR is a US$299 HF SDR that can monitor the entire 0 - 30 MHz band at once. It is designed to be web-based and shared, meaning that the KiwiSDR owner, or anyone that they've given access to can tune and listen to it via a web browser over the internet. Many public KiwiSDRs can be found and browsed from the list at sdr.hu.

The new DRM implementation is based on DREAM 2.1.1 which is an opensource DRM decoder that can be used with any HF capable SDR. Due to computational limits of the BeagleBone singleboard computer which the KiwiSDR runs on, only one DRM channel can be decoded at any one time, restricting this capability to only one user at a time. However, if the KiwiSDR is running on the newer BeagleBone AI, it can support up to four DRM channels. KiwiSDR write that work is still ongoing to improve the code, so this situation may improve in the future.

KiwiSDR Decoding DRM
KiwiSDR Decoding DRM

Meteor M N2-2 Has Failed but Recovery May be Possible

UPDATE: It has now been confirmed by Roscosmos that the satellite was struck by what is presumed to be a micrometeorite which caused a leak of thermal transfer gas, and hence a sudden orbit change. It seems unlikely that the satellite will begin operations again as the satellite cannot operate it's camera sensors without thermal cooling. Data is being transmit currently on the X-Band, however, it appears to be a stored image only, rather than live images.

On December 18, 2019, an abnormal situation was recorded on the Meteor-M spacecraft No. 2-2 associated with an external impact (presumably a micrometeorite) on its structure. As a result, he changed the parameters of the orbit and switched to a non-oriented flight mode with high angular velocities.

In accordance with the inherent logic of operation, the device stopped fulfilling the target task and automatically switched to energy-saving mode when the on-board systems that were not involved in ensuring its functioning (including all on-board target equipment) are turned off.

After entering into the zone of Russian ground-based controls with the Meteor-M spacecraft No. 2-2, communication was established and work began to restore its operability: damping angular velocities, transferring to the standard orientation, receiving telemetric and target information.

Currently, work is underway with the satellite under the program of the chief designer. Meteor-M No. 2-2 is in an oriented flight; regular control sessions are conducted with it to receive telemetric information and information from target equipment.

Happysat's Notes:

Depressurization caused gas that was inside and used for heat transfer to leak out.

Resulting in some devices onboard overheating, while others did stop working.

Batteries are working under harsh thermal conditions.

Experts analyzing MSU-MR images during the incident to confirm collision.

------------------------- Original Post -------------------------

On December 18 Meteor M N2-2 suffered a failure that appears to have changed it's orbit. Roscosmos is quiet on the issue, but speculation by R4UAB is that there was a depressurization or on board explosion. However, Happysat who appears to be in contact with Roscosmos insiders has noted that on December 20 the orbit has been stabilized, and that they are working on recovering the operation of the satellite. Currently the LRPT signal and all sensors remain OFF.

Meteor M N2-2 is a Russian weather satellite that was successfully launched into orbit on July 5 2019. Like with the NOAA and Meteor M N2 satellites, it is possible to receive weather satellite images from this satellite with an RTL-SDR (when it is operational).

The older but still operational Meteor M2 satellite has failed several times in it's history too, each time with the satellite entering an unstable tumble. However, each time the satellite was recovered back into full operation after a few days.

The Meteor-M2 Satellite
The Meteor-M N2-2 Satellite

RadioCapture – Software to Capture, Archive and Listen to Trunked Radio From Many Sources Now Open Sourced

Back in April 2019 we posted about Matt Mills' Radiocapture.com website which is a web service that you can feed that automatically captures analogue and digital trunked radio conversations with an RTL-SDR, and allows public users to play back conversations via the web interface. The Radiocapture page which shows what the software is capable of is also active at radiocapture.com/radio

Back in April Matt was fundraising via Patreon and hoping to make development of Radiocapture his day job, but unfortunately he's had to call it quits for now. Since he no longer has time to work on it, Matt has open sourced the RF side of the software. The software description reads:

[Radiocapture-rf] is capable of using multiple networked computers and multiple SDR radios to demodulate the control channel of P25, EDACS, and Motorola trunking systems, as well as some limited support (alpha quality) for scanning for systems, LTR trunking, and "police scanner" style audio capture.

It is designed to effectively scale to an infinite capacity of trunked systems, captured transmission volume, and dongle bandwidth (more dongles = more available bandwidth, more cpus = more channels and more systems). (There is one remaining feature to be implemented to really make this work well, dongle redis autodiscovery (frontend_connect should autodiscover and use available dongles) and splitting the rc_frontend/receiver.py into one process per dongle.

The frontend initializes the SDRs in whatever configured frequency range, and presents a server interface where clients can connect and request a specific channel be created and forward to them. The frontend will then attach a channel, and output to a UDP sink (might be something better now, I forget). On the backend side, a control_demodulator is listening to that sink and doing the actual RF demodulation, which is passed into redis for distribution to other services. The backend is effectively a bunch of microservices that work together to track & record all ongoing transmissions and do some amount of deduplication. This entire setup is designed such that it can be scaled across as many servers/computers as necessary (although there are a few caveats/things I never got around to implementing in how it actually works). Recorded transmissions are decorated with a metadata scheme in their mp3 tags that is designed to be able to be loaded into the Radiocapture.com database. Finally completed mp3s are dropped into an activemq queue for publishing.

Matt notes that the software in it's current state isn't considered as "ready to distribute" as you may need some decent experience with Linux and Python to get it up and running.

RadioCapture logged audio
RadioCapture logged audio