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://18.104.22.168: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.
Over on Twitter @lambdaprog and @mm6dos, developers of SDR# and Airspy SDR products have tweeted videos showing off an Android watch being used as an SDR interface. They use a prototype of their upcoming Airspy HF+ SDR, their SpyServer streaming software and an Android watch. The Android watch receives the streaming FFT and audio data from a server running the SpyServer and Airspy HF+.
They write that this new SpyServer client is mainly for phones and tablets and is efficient enough to run on a watch. It appears that this lightweight version of the SpyServer sends compressed FFT and audio instead of a slice of the IQ data like the current SpyServer, making it very light on the client side CPU and network usage.
If you’re interested in the Airspy HF+ we have an initial review available here.
Back in March the team behind the Airspy SDR and SDRSharp software released the SpyServer, a piece of software that allows you to stream radio data from a remote Airspy receiver over a network. Then later in April they added full support for the RTL-SDR dongle as well.
This Easter the Airspy team have released SpyServer 2.0, which improves the streaming efficiency significantly (changelog). Now the full 8 MHz bandwidth of the Airspy should be easily streamable over an internet connection. With SpyServer 1.0 it was difficult to make use of the full bandwidth of the Airspy because the network data usage was very high, since it was streaming the full raw IQ data for the sampling rate/bandwidth selected. In SpyServer 2.0 the server does not stream the full raw data, and instead only streams the wideband FFT data (for displaying the waterfall and FFT graph), and the raw data from the currently selected IF bandwidth. Of course the full IQ data can still be streamed if desired by selecting the ‘Use full IQ’ checkbox.
This new efficiency means that WFM uses only about 1.3 MB/s, and narrow band modes like NFM/AM/SSB only use about 120 kB/s of network data which is easily achievable over a local network and internet. This data usage is almost independent of the sampling rate/bandwidth selected so you can stream the full 8 MHz offered by the Airspy without trouble. Normally streaming the full raw data for 8 MHz would use about 40 MB/s, which is difficult to achieve over a local network, and impossible over the internet.
We tested the new SpyServer over our local network and were able to stream the full 8 MHz of the Airspy with no problems. With the RTL-SDR we were also able to stream 2.4 MHz without issue. WFM and NFM modes worked clearly and no skips or significant lag was noticed over a local WiFi N connection. Hopefully in the future SpyServer will be developed further to enable compressed audio streaming as well for even lower network data usage.
Some Operational Notes:
To run SpyServer on Windows simply double click on spyserver.exe. On Linux extract “spyserver_linux_x86” and the config file, and then run “sudo chmod +x spyserver_linux_x86”. Then run it with “./spyserver_linux_x86”.
Connect to it on the remote PC in SDR# using the servers IP address which can be found by typing “ipconfig /all” in Windows command prompt, or “ifconfig” on Linux.
To select between using the Airspy and RTL-SDR for the SpyServer you will need to edit the spyserver.config file with a text editor and edit the “device_type” string.
SpyServer runs on Windows/Linux as well as small embedded computers such as Raspberry Pi’s and Odroids. Download the Raspberry Pi and Odroid servers separately from SDR# at http://airspy.com/download.
SpyServer is NOT compatible with software that expects an rtl_tcp server such as SDRTouch.
We have also seen Lucas Teske of the OpenSatellite project use the SpyServer for streaming a GOES16 downlink over a network connection with an Odroid C2. He writes that soon the OpenSatellite project software will directly support SpyServer.
About a month ago the Airspy and SDRSharp development team released their new ‘SpyServer’ software. SpyServer is a streaming server for Airspy devices, which allows them to be used over a network connection. It is somewhat similar to rtl_tcp which is familiar to RTL-SDR users, although unlike rtl_tcp, SpyServer uses a multiclient architecture which allows several clients to connect to the server at the same time with each being able to choose individual bandwidth settings.
To use SpyServer with the RTL-SDR you’ll first need to edit the “spyserver.config” file which is in the SDR# folder. Open this file with a text editor like Notepad, and set the “device_type” to “RTL-SDR”. Now you can run spyserver.exe on your server and it will use your RTL-SDR. Multiple dongles can be used by editing the “device_serial” string in the config file. Next on the client PC run the latest version of SDR#, and choose the Source as “Spy Server”. Here you can enter your networked PC’s IP address to connect to it.
We tested the updated SpyServer with an RTL-SDR dongle and it worked perfectly. On an 802.11n WiFi connection we were able to stream up to 1 MSPS without problems. 2 MSPS was a bit jittery, but on an Ethernet or 802.11ac WiFi connection it should work with no problems. We also tested connecting two PC’s to a single SpyServer and both were able to run at the same time without trouble. The client which connects first gets to keep control of the center frequency and gain, whilst the second client has those options locked.
SDR# has just been updated to version 1525 (changelog) and it now includes a new program called ‘SpyServer’. SpyServer is a Windows based streaming server for Airspy devices, and is somewhat similar to what rtl_tcp is for RTL-SDR devices. To run the server, all that you need to do is plug in the Airspy on the server PC and open the server software. Then on the remote PC select the ‘SpyServer’ radio source in SDR# and enter the server IP and default port.
We tested SpyServer with our Airspy R2 and found that it worked perfectly, however due to the very high data rates the maximum bandwidth cannot be used over a slow network. On a standard WiFi connection we were able to use a bandwidth of up to 250 kHz, and on a remote test server over the internet only 37.5 kHz. The author of SDR#, Youssef Touil however has mentioned that a gigabit network can support the maximum 10 MSPS bandwidth option with no problems. We assume that SpyServer will eventually be updated to include low bandwidth options which only stream compressed demodulated audio and waterfall data.
The SpyServer is also implemented with a special multi client DDC architecture. This allows for many clients to connect to a single server, and they can each have a different frequency and bandwidth (within the current active bandwidth around the center frequency).
We think that the SpyServer should also work well with the upcoming Airspy HF+, an HF optimized SDR.