Tagged: rtl_tcp

SDRx.IO – A Public Server Network for RTL_TCP and/or Spyserver Stations

Thank you to Matt from SDRx.io for submitting a story on our forums about his project called SDRx.IO which is a service that hopes to be a platform that allows remote users to find and connect to public RTL_TCP and/or SpyServer servers. Matt writes:

A few days ago I started a project called SDRx.io. I could not find any platform with public RTL-TCP servers, so I thought I would try to make one for fun.

SpyServer mode (through internet proxy) is also supported. The official map/directory currently does not seem to support this. SpyServer is the default mode, because SDR stations can "somewhat" be shared between multiple clients.

Users can switch radio station modes using the web interface.

SDRx.io routes traffic in a way that protects the actual endpoint from internet exposure, and the server network acts as a CDN (the project currently has 5 servers). Servers can be seen as proxies for radio stations that host the SDR hardware.

The early preview currently on the site only has my own first 2 stations in Switzerland for VHF/UHF, and I am now looking for other users who would be interested in hosting/sharing new radio stations to connect to this project, or participate otherwise.

Required network throughput for RTL-TCP is about 35 mbps at 2.048 MS/s

I know there are already several other projects with public SDR servers, but few carry the full IQ signal, and none are currently providing direct TCP connections compatible with the rtl_tcp protocol.

Your feedback is of course welcome here :D

The service is currently not yet active due a lack of initial interest, but if you are interested you can get in contact with Matt at [email protected].

SDRx.IO Homepage

Running an RTL-SDR on an old OpenWRT Router

With the rising cost of computing hardware like Raspberry Pi's, Jaime Badillo decided to instead make use of one of a cheap old router, and set it up as an RTL-SDR server. To do this, Jaime took his old router and installed on it the free open source firmware OpenWRT, which is essentially a Linux operating system. Once this was completed, he was able to SSH into the router and install the RTL-SDR drivers and rtl_tcp software just as he would with a Raspberry Pi 4.

Jaime has uploaded a tutorial document that shows how to installed OpenWRT, how he configured the network settings and how he installed the RTL-SDR drivers and connected to rtl_tcp remotely via SDRSharp. The tutorial is written in Spanish, however we have uploaded an English Google translated version here. Jaime has also uploaded a YouTube video showing the router server in action.

SDR# receiving data from rtl_tcp running on an old router.

Automatically Starting rtl_tcp on a Remote PC via Android

Over on his YouTube channel M Khanfar has put together a tutorial for an interesting idea. The idea is to use an automatic SSH connection to tell your Windows PC to run rtl_tcp whenever you open SDRTouch or RFAnalyzer on your Android device. SDRTouch and RFAnalyzer are both Android based SDR applications and rtl_tcp is a server which allows both apps to connect to a remote RTL-SDR over a network connection.

To set this up, Khanfar first sets up OpenSSH on his Windows PC which allows a secure remote connection to the PC. On his Android device he then installs MacroDroid and RaspController. MacroDroid is an app that help you automate tasks on your Android device, and RaspController is an app designed for remotely controlling a Raspberry Pi, but also works on Windows via the SSH connection. These apps are then setup so that an SSH connection to the Windows PC is automatically opened whenever SDRTouch is run. From within the SSH connection rtl_tcp is then started.

Full text instructions are available in the video description.

Automate MacroDroid with RTL_TCP through OpenSSH under Windows 10

SignalsEverywhere: How to set up an RTL-SDR SpyServer on Windows

Over on YouTube SignalsEverywhere/Harold is back with a new video tutorial that shows users how to set up a SDR# SpyServer with an RTL-SDR dongle. SpyServer is a program included with SDR# that allows you to access your Airspy or RTL-SDR dongle remotely through the internet or local network connection. Thanks to it's compression techniques and that it does most processing on the server side, it requires significantly less network bandwidth compared to a raw IQ server like rtl_tcp.

In the video Harold first shows how to access the SpyServer network in SDR# which consists of many remote SpyServers that have been made accessible to the public for free. He then goes on to explain how you can set up your own SpyServer by simply editing a text config file. He notes that you may need to perform port forwarding on your router if you wish to make the server publicly accessible.

Significantly Improving RTL_TCP’s Performance with Ring Buffers

Thank you to an anonymous contributor for bringing to attention a two part blog post by Stephen Blinick. Stephen's post details how the performance of rtl_tcp can be significantly improved by modifying to code to use a ring buffer instead of using semaphore based locking. If you weren't aware, rtl_tcp is a program that allows you to run your RTL-SDR remotely, and connect to it over a network connection.

The result is a tremendous performance improvement in rtl_tcp according to Stephen. Before the changes he noted that his Raspberry Pi 3B+ could only support a sample rate of 1.92 MSPS over WiFi, and even that had 1-2 seconds of lag. After the ring buffer changes his Pi 3B+ can handle the maximum sample rate of 3.2 MSPS with zero lag. On his Pi Zero W he can achieve a sample rate of 1.92 MSPS over WiFi with minimal lag, whereas before he could only achieve 0.92 MSPS with huge 5-10 second of lag.

The patch is available as a pull request over on the Osmocom GitHub.

Unfortunately this patch might not be included in the official upstreamed Osmocom drivers because Stephen submitted the patch as a pull request to the GitHub, and Osmocom only accept patches via their mailing list. If anyone reading this is familiar with the Osmocom patch submission requirements, we'd like to encourage you to help submit this patch for consideration.

Ring Buffer Patch for rtl_tcp
Ring Buffer Patch for rtl_tcp

rsp_tcp: An rtl_tcp compatible IQ Server for SDRplay SDRs

The SDRplay team have released an updated version of a program called "rsp_tcp" (originally written by F4FHH Nicholas). This is a streaming IQ server for SDRplay devices, which is directly ported from the original rtl_tcp code that was designed for RTL-SDRs. The rsp_tcp code is fully compatible with the rtl_tcp protocol, so this should allow almost any software that accepts an rtl_tcp stream as an input to use an SDRplay device as the SDR hardware instead of an RTL-SDR.

The downside to using this server is that in order to be compatible with the standard rtl_tcp protocol, the software will downgrade the RSP data stream from 14-bits to 8-bits only, thus forfeiting the RSP's greater dynamic range. However, if a custom ExtIO plugin is used on the client software, then the full 14-bits can be restored.

On their forums the SDRplay team write:

This software is based on a fork of F4FHH’s version of RTL TCP Server. It has been updated to support the RSP features, but also contains an extended mode. The extended mode allows the client (via a compatible interface) to fully control all aspects of the RSPs, including notch filters, Bias-T enable and switching ports (where applicable)

The user guide for the server software can be found on our downloads page and also here: https://www.sdrplay.com/docs/SDRplay_RS ... _Guide.pdf

We have provided binaries for Windows, Mac and RPi on our downloads page and the source code for all platforms can be found on our GitHub repository: https://github.com/SDRplay/RSPTCPServer

To utilise the extended mode, extra commands need to be sent from the client. We have provided an example of this in the form of an ExtIO plugin. You can find the Windows dll on our downloads page and the source code for the plugin on our GitHub repository: https://github.com/SDRplay/ExtIO_RSP_TCP

In standard mode, the server will be compatible with any RTL server client.

The team also note that they have updated their Raspberry Pi SD card to include the server.

Using the VirtualHere USB Server for Remote RTL-SDR

Over on our forums one user luc4sss has been discussing a method for using RTL-SDR's and perhaps other SDR dongles remotely which does not rely on rtl_tcp, SpyServer or other SDR specific server software. Using an SDR remotely is advantageous because it can allow you to position the SDR closer to the antenna, which results in less signal loss from long runs of lossy coax cable.

Instead of rtl_tcp, luc4sss uses a program called VirtualHere, which is a server that can work with any USB device. It essentially allows you to use USB devices over a network with the remote device acting as if it was plugged directly into your remotely operated PC. The server can run on single board Linux computers like the Raspberry Pi and luc4sss has been using an $8 Orange Pi Zero 256 MB as his server.

With the VirtualHere software and RTL-SDR running on his Orange Pi Zero, he's able to connect to a remote RTL-SDR over his network. He writes that data usage is about 5 - 6 MB/s so a wired Ethernet connection or high quality WiFi connection would be required. In comparison rtl_tcp should use about the same amount of data, but server software with some compression and data saving techniques implemented like SpyServer use much less data and is efficient enough to be used over the internet.

We can see the VirtualHere software being very useful for use with RTL-SDR compatible programs that don't have rtl_tcp support, which is most of them. It should also be useful for other SDRs that don't have streaming server software available.

VirtalHere is not free as a license costs $49. But it does have a 10-day trial period which supports 1 device being shared at a time.

VirtualHere USB Network Server
VirtualHere USB Network Server

Luc4sss has also uploaded a video on YouTube that shows him running the VirtualHere server and client, and connecting to the remote RTL-SDR with GQRX and dump1090. He also shows the data usage which is about 6 MB/s when running the RTL-SDR at 2.8 MSPS. Operation appears to be problem free and with almost entirely no latency as well.

RTL-SDR over Ethernet with VirtualHere Client/Server

QuestaSDR Android App now with Remote Network Streaming: RTL-SDR, Airspy, SDRplay Supported

Back in April we posted about QuestaSDR, which had just released the Android version of its SDR software. Recently QuestaSDR programmer 'hOne' wrote in and noted that a new update has enabled remote streaming in QuestaSDR.

To get set up, just run the Windows version of QuestaSDR on a PC, and open the "SDR Server" app. Once the server is running, you can connect to it via the Android version of QuestaSDR over a network connection. The server supports the RTL-SDR, Airspy and any ExtIO compatible device such as SDRplay units. As far as we're aware, this is the only Android app that currently supports streaming from non rtl_tcp compatible units such as the Airspy and SDRplay.

hOne has been able to run an Airspy at the maximum bandwidth of 10 MSPS through his network connection. He also notes that you can now zoom into the IF spectrum in detail by using the new "IF Spectrum" plugin.

hOne also notes that the streaming feature is currently in beta, and any bugs/suggestions or feedback are welcome.

QuestaSDR Streaming over a network connection with an Airspy
QuestaSDR Streaming over a network connection with an Airspy
AirSpy windows server, android client LAN Remote