SpyServer 2.0 Released: More Efficient Streaming for Airspy and RTL-SDR

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.

SpyServer WFM Reception. About 1.3 MB/s network usage.
SpyServer WFM Reception. About 1.3 MB/s network usage.
SpyServer NFM Reception. About 120 kB/s network usage.
SpyServer NFM Reception. About 120 kB/s network 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.

38 comments

  1. Kristian

    Trouble starting/connect to spyserver on raspberry pi : [email protected]:~/spyserver $ cd ~/spyserver && ./spyserver
    SPY Server v2.0.1618 – http://airspy.com
    Reading the configuration file: spyserver.config
    Listening for connections on 0.0.0.0:5555
    Accepted client 192.168.1.103:58985 running SDR# v1.0.0.1592 on Microsoft Windows NT 6.2.9200.0
    Device was sleeping. Wake up!
    Could not acquire the device

    Why?

  2. Rick

    any how how to run this oin a pi3 without user having to ssh into to start the spyserver ?
    i had that working with rtl_tcp perfect, it would be great to have this running unattended too,

  3. Pas

    When I run airspy server on my linux machine and connect to it from my SDR# i get the error “Server didn’t send the device capability and synchronisation info”

    i use the latest download SDR# 1.0.0.1560 and airspy server 2.0.1558

      • Pas

        Thank you for the reaction.
        rtl_test is detecting the RTL-Dongel and the latest airspy tools are installed.

        I already have run GNU radio on that machine with the RTL-Dongel zo this is working ok.
        This error happend before the software is connecting to the “hardware” it doesn’t matter if I configure the RTL or Airspy in the config.

        • Bertie

          Well then my next guess would be there there is a firewall on the Linux machine (or possibly somewhere else), you can check if there are rules with something like these commands:
          sudo iptables -L
          sudo iptables -L -v
          if there is no firewall you should get back three blank policies for INPUT, FORWARD and OUTPUT.
          The command to open a port would be something like:
          sudo iptables -I INPUT -p tcp –dport 5555 -j ACCEPT
          or even more restrictive if you know the IP address of your windows PC
          sudo iptables -I INPUT -p tcp -s INSERT_WINDOWS_IP_ADDRESS_HERE –dport 5555 -j ACCEPT
          or if you wanted to restrict access to a local LAN, say if 192.168.0.0 ro 192.168.0.255 are the IP addresses used by the DHCP server/local router. A command something like the following could be used.
          iptables -I INPUT -p tcp -s 192.168.0.0/24 –dport 5555 -j ACCEPT
          ( ref: http://www.putorius.net/2011/05/basic-of-iptables-opening-ports-on.html and https://www.digitalocean.com/community/tutorials/how-to-list-and-delete-iptables-firewall-rules )

          Be very careful when changing the rules on a firewall, one bad screw up and you can’t connect to the machine.

  4. Hans

    I can’t seem to get any reasonable audio out of SDR# as a client , modulation type is the right one selected corresponding to the band, i can hear audio but not recognisable. Using ver. 1555 and it also seems like it’s responding kinda slow in the spectrum. using spysever with a rtl-sdr R820T2 on a linux box over the internet.
    BW usage is about 110-150kb it says.

    could it be a BW problem ? i have 1Mb up on the side of the server.

    • Joe

      I feel like I’m having the same issue, hearing some FM radio audio but it’s skipping. Full IQ makes it a little better but increases the BW use dramatically…

    • Lee

      What’s your ping to the server? Latency could be a problem if the streaming protocol isn’t very robust. Also remember that a 1 Mbps upload is 125 kB/sec so you may be saturating your upload if you are running 110-150 kB/sec. I believe SDR# is reporting bandwidth in kBytes not kbits (little b and big B are different by 8x).

      • Hans

        Tnx i’ll take a look at it. I know that the DSL is not very stable, and sometimes connection to the server is also a bit of a problem. (Indeed you are right about kb and kB).

  5. levinite

    RTL_TCP works but this doesn’t work with RTL-SDR or Airpsy mini. Error is: “Server did not send the device capability info”. There is no hint of any connection made on the server. Latest Ubuntu 32-bit running live on x86 processor.

  6. David Saint Ruby

    Can someone suggest the quasi-supported pi distro that spyserver likes? jesse is a mess. best…. DSR

  7. Lee

    Has anyone gotten SpyServer to work on a Raspberry Pi with a RTL-SDR yet? I had to install GCC-5 to get it to run, but when I try to connect from a Windows client I get the error “Could not acquire the device” on the server and “Device got disconnected” on the client. I did edit the spyserver.config file with ‘device_type = RTL-SDR’ the same way I’ve done with Windows SpyServers that have worked successfully. Dongle works with Gqrx just fine.

    • admin

      I have it working here with both the RTL-SDR and Airspy on Jessie (after installing GCC-5), although the Rpi3 seems to struggle with not having enough computing power for the Airspy and server at max bandwidth. The RTL-SDR works fine though.

      Make sure the RTL-SDR dongle works with rtl_test and it should be working.

      • Lee

        I ran rtl_test and it works just fine. But SpyServer still won’t work with the same errors. I’m using the latest Raspbian Jessie (April 2017), SPY Server (2.0.1551), and SDR# (r1553).

    • Bertie

      I’d like baudline to be open source, and it was annoying enough that miek came along and created inspectrum. If you do not like it, invest part of your lifetime and create something better and make it open source.

      Does that means that you do not use SDR# either, since it is the only client program which supports this (currently) ?

    • y o r d l e

      Why would the creator(s) of SDR#(tm) only make closed-source software?
      So he can keep making profit of his AirSpy(r) ™, what else lol. (They only care about money; They really dont give a fuck about usability)

      Paid for by: TV Licensing

    • Geoff

      It is funny to see the “open source crowd” moan and complain every time a useful piece of closed source software is released. I’m afraid closed source does not automagically remove useful functionality for 99% of the user base. As a software professional, I appreciate it is made freely available for all AND it supports rtl-sdr in addition to their own products. Open source is a privilege — not a damned right.

      • Robert McCloud

        Fully agree. If you don’t like it, keep walking.

        My thanks to the authors. I’m using with rtlsdr and a raspberry pi3 over wifi!

      • Anonymous

        Yeah, you sure like it if the creators of the software just break compatibility with some hardware intentionally (or simply don’t include it) and maybe even abandon it at some point?

        • Geoff

          The idealistic views in open software communities seem good in principle but in reality they are exploitive. The software consuming masses now *expect* the skilled minority to fulfil all their needs for a thank you. This occurring over many years has created many zealots with skewed expections.

          If you buy a graphics card from ATI or Nvidia, you can reasonably expect them each to provide the appropriate level of software support. Nvidia do not support ATI hardware and ATI does not support Nvidia. This is exactly what is happening here yet spyserver additionally supports rtl-sdr for the benefit of many. Nothing more to it.

  8. Anonymous

    It could be a nice feature if the sdr# could be connected to multiple servers with different receivers providing a broader bandwidth in case of rtl-sdr. Moreover, it is unclear, what is the difference to rtl_tcp additionally to spectrum data transfer.

  9. spatieman

    1546 was already a big improvement.
    didnt yet installed 1553 for spyserver, but i already gonna like this.

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>