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.