Over the last few months Lucas Teske (author of the Open Satellite Project) has been working on a piece of software called "SegDSP". The idea appears to create a web GUI based SDR receiver for SpyServer streams which can be used to create a cloud of channel demodulators, essentially segmenting the DSP computation burden over multiple computers.
SpyServer is a SDR server application that is compatible with Airspy products and RTL-SDRs. It allows you to connect to these SDRs remotely over a network or internet connection. The SDR server computer sends the radio IQ data over the network allowing you to perform processing remotely. A major advantage of SpyServer compared to other SDR server applications is that it only sends the raw IQ data for the portion of the spectrum that you're interested in which can save a lot of bandwidth.
One key application that Lucas envisions for SegDSP is using it with cloud clusters of single board computers (SBC) like the Raspberry Pi 3. The philosophy is that there will be specific roles for each SBC machine. For example you might have some SDR machines running SpyServers, some processing machines for demodulating and decoding multiple channels, and a storage machine for recording data. Then you can dynamically spawn / despawn workers when needed (for example only spawning a machine when a LEO satellite with data to decode passes over).
SegDSP development is still in the early stages, and appears to only have the web GUI set up at the moment with a few demodulators. But keep an eye on his Twitter @lucasteske for updates too. Lucas also did a talk at the last CyberSpectrum meetup. His talk can be found at 1:30:00 in the recording.
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.
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
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.