Thanks to the work of Lucas Teske, GQRX is now able to connect to SpyServer servers. SpyServer is the IQ streaming server software solution developed by the Airspy SDR developers. It can support Airspy and RTL-SDR devices, and can be used to access these SDRs remotely over a network connection. It is similar to rtl_tcp, but a lot more efficient in terms of network usage, meaning that it performs well over an internet connection. On a previous post we have a tutorial about setting up a SpyServer with an RTL-SDR.
The code modified by Lucas is the gr-osmosdr module, and Lucas' code can be downloaded from his GitHub at github.com/racerxdl/gr-osmosdr. It doesn't yet appear to have been merged into the official osmocom branch. The gr-osmosdr module is a generic block used to access various SDR hardware, so any software that utilizes it (such as GNU Radio) should be able to connect to a SpyServer connection too.
RTL-SDR dongles and other SDRs are often used on single board computers. These small credit sized computers are powerful enough to run multiple dongles, and run various decoding programs. Currently, the most popular of these small computers is the Raspberry Pi 3.
Just recently the Raspberry Pi 3 B+ was released at the usual US$35 price. It is an iterative upgrade over the now older Raspberry Pi 3 B. The 3B+ has an improved thermal design for the CPU, which allows the frequency to be boosted by 200 MHz. WiFi and Ethernet connectivity has also been improved, both sporting up to 3x faster upload and download speeds.
The 3B+ also implements new Ethernet headers which allows for a cleaner Power over Ethernet (PoE) implementation via a hat. Previous PoE hats required that you connect the Ethernet ports together, whereas the new design does not. PoE allows you to power the Raspberry Pi over an Ethernet cable. The official PoE hat is not released yet, but they expect it to be out soon.
The faster processing speed should allow more processing intensive graphical apps like GQRX to run smoother, whilst the improved WiFi connectivity speeds should improve performance with bandwidth hungry applications like running a remote rtl_tcp server. PoE is also a welcome improvement as it allows you to easily power a remote Raspberry Pi + RTL-SDR combination that is placed in a difficult to access area, such as in an attic close to an antenna. Placing the Pi and RTL-SDR near to the antenna eliminates the need for long runs of lossy coax cable. If the Pi runs rtl_tcp, SpyServer or a similar server, then the RTL-SDR can then be accessed by a networked connected PC anywhere in your house, or even remotely over the internet from anywhere in the world.
Thanks to Stefan Dambeck for letting us know that there is now a fork of libairspyhf made by DL9RDZ which contains an adapted version of airspyhf_rx (the raw IQ generator). This enables the Airspy HF+ to be easily integrated into OpenWebRX.
If you weren't aware, OpenWebRX is a browser based SDR interface and server software that allows an SDR to be used by multiple people at the same time over the internet. It performs audio demodulation and compression on the server side allowing for very low and efficient network usage. In this way it is different to Airspy official server solution SpyServer which sends the IQ data over the network. So an OpenWebRX server uses significantly less network bandwidth and might be more suitable for those on slower or capped internet connections.
At the moment we're not seeing any public HF+ servers available on the OpenWebRX database at sdr.hu, but this may change in the future.
Over on YouTube user IW2DZX has uploaded a video showing him using an old EeePC 900 to receive HF with an RTL-SDR V3 running in direct sampling mode on a Raspberry Pi 3 which is running a SpyServer. An EeePC 900 is an old netbook that was released in 2008 which is lightweight, portable and was fairly cheap. Second hand Eeepc's can now be found on eBay for less than $60 US.
By running the RTL-SDR on a Raspberry Pi 3 with SpyServer the need to have the dongle connected to the netbook is eliminated. Instead the radio data from the RTL-SDR is efficiently sent over a network connection and received via the WiFi on the Eeepc.
SDR#'s SpyServer streaming server now supports the direct sampling mode on RTL-SDR dongles and it's probably the cheapest way to set up a HF streaming server. SpyServer is a streaming server for SDR# and Airspy products. Although it's designed for Airspy products it also works well with RTL-SDR dongles.
On RTL-SDR dongles the direct sampling mode allows you to receive HF frequencies by bypassing the tuner. The dynamic range is not quite as good as using an upconverter and there are Nyquist images from sampling at 28.8 MHz centered around 14.4 MHz, but in most cases it is good enough to give people decent HF results especially if filtering is used. Normally a hardware hack is required to enable direct sampling, but our RTL-SDR Blog V3 units have direct sampling built in and ready to go just by connecting an HF antenna to the SMA port, and enabling the Q-branch direct sampling mode.
There is a sample server set up at sdr://184.108.40.206:5555.
Direct Sampling for #RTLSDR was added to Spy Server. This must be the most affordable networked HF radio ever.
The servers that are currently online include some streaming from Airspy HF+ devices, which is the hotly anticipated but as of yet unreleased HF receiver from Airspy. Over the last few months and weeks a number of prototype devices went out to testers and programmers and some have now put them online with a SpyServer. There are also some Airspy One/Mini and RTL-SDR devices available for streaming too.
To connect to one of the servers simply download the latest version of SDR# from airspy.com, and then in SDR# select SpyServer from the Source menu. Enter the URL from the list into the box and press the play button up the top. Note that you must ensure that there are no spaces after entering the URL in SDR#.
Most servers are locked to a particular frequency band, but some allow for free tuning. But if more than one person is connected to the server free tuning will be locked until there is only one person connected again. Currently streaming from most servers seems smooth, but it's possible that some may struggle if many users are connected at once.
A number of people have asked how to use SDR#'s SpyServer with an RTL-SDR. In this tutorial we will show how to set up SpyServer on both Windows and Linux systems. We try to assume as little knowledge as possible, but we do assume that you have decent experience with computers. Also for the Linux/Raspberry Pi setup we need to assume that you have some basic experience with Linux and setting up Raspberry Pi's.
What is SpyServer?
SpyServer is a free RTL-SDR compatible SDR server that is designed to work with the popular SDR# software. It is actually designed for the Airspy range of products, but the author has also made it compatible with RTL-SDR dongles. Running a SpyServer allows you to connect to and use a remotely positioned RTL-SDR over a network connection (such as a local LAN/WiFi or the Internet). Once connected, using the dongle is the same as if the dongle was directly connected to the users PC.
Remote servers are useful as you may want to set up an antenna in a remote location (such as up on your roof or shack), and don't want to run a long lossy coax cable down to the PC. Instead you could run Ethernet cable, or avoid cables by using WiFi. All you'd need is power for a remote computing device like a Raspberry Pi 3. Perhaps you also have a great antenna location at a friends house, or other property and want to access that antenna remotely. Or maybe you want to use your radio while travelling.
SpyServer is similar to another tool that you may already be familiar with called rtl_tcp. However, SpyServer is regarded as superior because it is signficantly more efficient at network usage. Instead of sending the entire raw data like rtl_tcp does, SpyServer only sends the IQ data of the currently tuned in signal. Waterfall data is processed on the server and sent in compressed form. There is one disadvantage to SpyServer in that it requires slightly more powerful computing hardware like a Pi 2 or Pi 3, whereas rtl_tcp can run on the lowest end hardware.
Network usage when streaming with SpyServer will be about 120 KB/s when listening to WFM and about 38 KB/s when listening to narrow band modes for one client being connected. Multiple clients can connect to the SpyServer and share the same currently tuned bandwidth.
Over the last month SDRSharp's SpyServer has been updated several times. SpyServer is a streaming server for SDR# which allows you to use Airspy and RTL-SDR radios remotely over a network connection.
The updates brought improvements such as IQ PCM compression at various bit depths including an efficient 8-bit mode, removing the DC spike residual in the 8-bit streaming mode, and recently improving the 8-bit mode to work like lossy compression for strong signals.
We tested the new 8-bit PCM streaming mode and found it to be extremely efficient with network usage. When streaming at 2 MHz with an RTL-SDR a WFM signal on the older SpyServer versions used to use about 1.2 MB/s without any compression modes, and now with 8-bit compression active it only uses 322 KB/s. A NFM signal used to require 120 KB/s, now only requiring about 38 KB/s. No DC spike is present and no degradation in reception quality is noticeable unless the signal requires over 70 dB of dynamic range, which is unlikely for most signals.
If you've had trouble with SpyServer or rtl_tcp not working well on your slow network connection, then the new updated SpyServer may be the solution for you.