Tagged: rtl2832u

Testing Airspy’s New WebSpy Web SDR Interface with an RTL-SDR

A couple of weeks ago we posted about "WebSpy", a new web client for Airspy software defined radios. Developer @lambdaprog, (aka Youssef Touil) has kindly provided us with an early beta of the server to test.

WebSpy is built into SpyServer, and SpyServer is an existing program that streams data from Airspy and RTL-SDR devices directly to SDR#. This new beta SpyServer now incorporates WebSpy into it, so once SpyServer is running on the server, all you need to do is run the binary and browse to https://SERVER_IP_ADDR:5555 in a browser, and the WebSpy interface will show.

As SpyServer supports RTL-SDR dongles, WebSpy also works as intended with RTL-SDRs. So in our test, we used a remote RTL-SDR connected to a networked Pi 5 and started up WebSpy. As the default includes self-signed certificates, you will get an unsecured warning from your browser, but this is safe to ignore. If you were to share your WebSpy publicly, you would want to generate your own certificates. Youssef recommended using acme.sh for that.

Clicking the power icon in the web interface starts the SDR connection, and then you can tune to frequencies using the top tuning interface like you would with SDR#. Audio is extremely clear, as if you were running the SDR directly. As Youssef explained in our earlier post, WebSpy uses some proprietary IQ compressors that preserve spurious-free dynamic range, and it does all the IQ decoding directly in the browser to avoid audio codec compression artifacts.

With an Airspy and RTL-SDR receiving a narrowband 12.5 kHz voice channel, we got about 25 kb/s network usage. Reducing the channel size to 2.4 kHz LSB reduces the usage to around 13 kB/s. A wideband FM signal at 200 kHz uses about 240 kB/s. Of course, expanding the channel size to the max 2.4 MHz of the RTL-SDR results in a much higher network bandwidth of 1.2 MB/s, but there are not many situations that would require that.

We tested in Chrome, Edge, and Firefox, and all browsers worked fine. In terms of CPU usage, it barely touched 10% on any core with a single user. Youssef mentioned that a single Pi 5 should be able to serve up to 40 simultaneous sessions for WFM users, and hundreds for SSB/AM users (and we suspect NFM too).

WebSpy CPU Usage
WebSpy CPU Usage

The implementation of WebSpy is still pretty bare in this beta. Most of the features present in SDR# are not there, but Youssef mentioned that these are being worked on, and plugin support may even be added in the future. You also can't tune individual frequency digits with the mouse wheel like you can in SDR#, and there are no squelch or bias-tee controls.  But as this is still in development, we expect more features and tweaks in the future. 

WebSpy Running an RTL-SDR
WebSpy Running an RTL-SDR
WebSpy Running an Airspy
WebSpy Running an Airspy

TunerScope: A Browser App to Help Optimize HDTV Antenna Positioning with an RTL-SDR

Thank you to Luke Berndt for writing in and sharing with us a new RTL-SDR browser-based app he's created called TunerScope. TunerScope is a spectrum analyzer program that focuses on helping users in areas with ATSC digital TV achieve perfect HDTV antenna positioning.

The app runs entirely in a Chrome browser, so you can just connect your RTL-SDR to your device, browse to https://tunerscope.com, and start using the app instantly. 

TunerScope has a few interesting features, including the use of spectrum stitching to visualize the full 6 MHz + wide ATSC signals as the RTL-SDR only provides 2.56 MSPS max, multipath detection via in-channel flatness, a snapshot reference trace to see how well your antenna movements are helping, an SNR reading, location-aware channel labeling and a tower map, and a channel list view.

We note that from what we can gather, this app appears to be designed for the US only and may only support ATSC signals and FCC lookups for the location aware features.

AI-Disclaimer: From a comment on the YouTube video it appears TunerScope was developed with Claude. 

I got better HDTV using an SDR

DeepSDR Updates: Live Public Safety Incident Map with an RTL-SDR, Whisper and an LLM

Last week we posted about Hubquhq's DeepSDR project (project contact page), which collects transcribed voice data from multiple public safety radio channels and then uses an LLM to summarize and plot incidents on a map.

Recently, he wrote in again and wanted to share additional information about the project and how it works after receiving a few questions from interested parties. He writes:

I run every stage in a separate docker container: Capture (I capture audio as longer sessions for archiving, and separately just short sessions where there's no silence for further processing. I tried using VAD to detect voice, but with radio it was missing some talk, so I just use ffmpeg) > Transcribe > LLM > Finding latitude and longitude for addresses > Grouping connected conversations. 

He has also provided a PDF explaining how DeepSDR works in more detail, which you can download here

DeepSDR Incident Map
DeepSDR Incident Map
DeepSDR Incident Map
DeepSDR Incident Map

isTRAIN: Detecting if a Train is Blocking a Local Crossing By Listening to Railroad Frequencies

Jhestyr takes pride in being punctual, but a local railroad crossing keeps getting in the way. Trains sometimes park across it for hours at a time, and there is no way to know one is sitting there until you have already driven out to it. Every wasted trip to the crossing and back out to an alternative route costs him a significant chunk of time and fuel.

This is why Jhestyr used two RTL-SDR dongles to build isTrain, an open source program that decodes End-of-Train brake pressure and motion telemetry on 457.9375 and 452.9375 MHz, transcribes railroad voice traffic in the 160 to 162 MHz band via Whisper, and fuses both sources into a single live verdict on whether the crossing is blocked.

The program generates a webpage that can be accessed, providing a YES/NO verdict on whether there is a train blocking the crossing. A live public instance of Jhestyr's isTrain webpage is available here https://istrain.jhestyr.net.

AI-Disclaimer: Jhestyr notes that the code was developed with a 60/40 agentic/human split.

The isTrain Web Interface
The isTrain Web Interface

VibeSDR Now Available on the Apple App Store + Running on an Apple Watch

Back in June, we posted about VibeSDR, an AI vibecoded free and open-source mobile SDR client for rtl_tcp and UberSDR/KiwiSDR/OpenWebRX servers developed for iOS and Android. Recently, Stuart Carr (Stuey3D) wrote in again to let us know that VibeSDR is now available on the Apple App Store for £2.99 and is soon to be available on the Android Play Store too.

In terms of updates, Stuart also notes that he's now developed VibeServer, which provides a more network-efficient way to share RTL-SDRs remotely via an Android phone. VibeServer compresses the data and transfers it at 120KB/s instead of the full 4.8MB/s required by rtl_tcp. 

Stuart has also developed an Apple Watch Buddy app version of VibeSDR which runs directly on an Apple Watch, allowing you to view and listen to the spectrum on your wrist. The watch version is still in beta, but Stuart notes that you can join the free beta on TestFlight.

As before, the latest open source code can be found on the VibeSDR GitHub https://github.com/stuey3d/vibesdr.

Finally, Stuart has provided us with 20 free promo codes to give away for the Apple App Store version of VibeSDR. To win a promo code, simply comment on this post (making sure to enter an email in the email field), reply to the X post, or comment on the Facebook Post (note that for Facebook you must montior your comment for a reply as Facebook does not allow private messages). 

Update: All promo codes have now been allocated, thanks!

AI-Disclaimer: This software was vibecoded with Claude.

VibeSDR Running on an Apple Watch
VibeSDR Running on an Apple Watch
Introducing VibeSDR Jr: A full SDR Client on your wrist.

DeepSDR: Building a Live Public Safety Incident Map with an RTL-SDR, Whisper and an LLM

Over on Reddit and YouTube, user Hubquhq has shown how he created a live incident map using an RTL-SDR, Whisper and an LLM. The idea behind the system is to monitor multiple public safety voice communication channels with an RTL-SDR, transcribe everything into text using Whisper, and then use an LLM to categorize events and extract details such as addresses. Categorized incidents are then plotted on a map, allowing the user to visualize patterns. 

For example, in his YouTube video, he shows how he mapped cardiac, animal, drug overdose, vehicle collision, rescue, and hazmat events over time, building a powerful database of what is happening in his city.

The program and code does not seem to be available for download anywhere, but Hubquhq does provide a contact link for anyone interested. 

Systems that can monitor every RF voice and data channel on the spectrum and summarize them via an LLM are something we expect to see more of in the future as AI and LLMs improve.

Updates: Updated post with more information here.

DEEP SDR: How I Built an Incident Map

Exploring the Art and Science of Spectral Painting with SDR

Thank you to Paul Maine, who wrote in and wanted to share some experiments he and Gary Schafer have been doing with spectral painting. Spectral painting is the art of drawing pictures directly on the spectrum waterfall, which a software-defined radio makes visible. Paul has written the post below:

What happens when radio technology meets digital artwork? The result is something fascinating called Spectral Painting—the ability to create images that appear inside the radio frequency spectrum.

Gary Schafer (@signalgalaxiesunlimited) and Paul “The SDR Guy” Maine (@paulmaine6433) have teamed up to explore this unique combination of software-defined radio, signal processing, and creativity. Together, they have created companion videos on Spectral Painting and released them at the same time, each approaching the topic from a different perspective. For the best experience, it is recommended to watch Gary’s video first, followed by Paul’s practical demonstration.

Gary begins the journey by diving into the theory behind Spectral Painting. Using GNU Radio flowgraphs and GNU Octave scripts, he explains how images can be transformed into signals and displayed within the frequency spectrum.

Paul then takes Gary’s GNU Radio flowgraph and GNU Octave scripts from theory into practice. Using multiple SDR platforms, he demonstrates how to transmit spectral images using both the HackRF and TRX-DUO SDRs. He then completes the process by receiving and displaying the images using several different SDR receivers, including the RTL-SDR V3, RTL-SDR V4, and Airspy HF+.

Together, these videos provide a complete journey—from understanding the science behind Spectral Painting to seeing it come alive on real SDR hardware.

Below is an example screen capture of Spectral Painting in action.

Spectral Painting Example
Spectral Painting Example

Start with Gary’s video to learn the concepts and signal processing techniques:

Creating Spectral Paintings using Gnu Radio Companion (and other open source tools)

Then watch Paul’s video to see Spectral Painting transmitted and received using real SDR equipment:

E30 Spectral Painting

A Paper on Clock Distribution for Phase Coherent Operation of RTL-SDR Receivers

Modifying RTL-SDR dongles to run from the same clock source to create a phase-coherent receiver is something that has been done for many years. The original experiments from 2015 by Tatu Peltola and others are what inspired the creation of the KerberosSDR and KrakenSDR coherent RTL-SDR radio systems for radio direction finding.

Recently, Mykhailo Shumilov, an independent researcher in Ukraine, wrote a paper on running RTL-SDR dongles from the same clock, which may be of interest to those working on coherence experiments. In his experiments, he uses an Si5351A as the reference clock and two RTL-SDR dongles. While his paper doesn't cover any new ground, he presents concrete measurements confirming the phase coherence-stabilizing effect of running two RTL-SDR dongles from the same clock. 

AI-Disclaimer: The paper author notes that AI was used to aid in the writing of the paper.

Running two RTL-SDR dongles from a shared clock for phase coherence
Running two RTL-SDR dongles from a shared clock for phase coherence