Testing Airspy’s New WebSpy Web SDR Interface with an RTL-SDR
A couple of weeks ago we posted about "WebSpy", a new web client for Airspy software defined radios. Developer @lambdaprog, (aka Youssef Touil) has kindly provided us with an early beta of the server to test.
WebSpy is built into SpyServer, and SpyServer is an existing program that streams data from Airspy and RTL-SDR devices directly to SDR#. This new beta SpyServer now incorporates WebSpy into it, so once SpyServer is running on the server, all you need to do is run the binary and browse to https://SERVER_IP_ADDR:5555 in a browser, and the WebSpy interface will show.
As SpyServer supports RTL-SDR dongles, WebSpy also works as intended with RTL-SDRs. So in our test, we used a remote RTL-SDR connected to a networked Pi 5 and started up WebSpy. As the default includes self-signed certificates, you will get an unsecured warning from your browser, but this is safe to ignore. If you were to share your WebSpy publicly, you would want to generate your own certificates. Youssef recommended using acme.sh for that.
Clicking the power icon in the web interface starts the SDR connection, and then you can tune to frequencies using the top tuning interface like you would with SDR#. Audio is extremely clear, as if you were running the SDR directly. As Youssef explained in our earlier post, WebSpy uses some proprietary IQ compressors that preserve spurious-free dynamic range, and it does all the IQ decoding directly in the browser to avoid audio codec compression artifacts.
With an Airspy and RTL-SDR receiving a narrowband 12.5 kHz voice channel, we got about 25 kb/s network usage. Reducing the channel size to 2.4 kHz LSB reduces the usage to around 13 kB/s. A wideband FM signal at 200 kHz uses about 240 kB/s. Of course, expanding the channel size to the max 2.4 MHz of the RTL-SDR results in a much higher network bandwidth of 1.2 MB/s, but there are not many situations that would require that.
We tested in Chrome, Edge, and Firefox, and all browsers worked fine. In terms of CPU usage, it barely touched 10% on any core with a single user. Youssef mentioned that a single Pi 5 should be able to serve up to 40 simultaneous sessions for WFM users, and hundreds for SSB/AM users (and we suspect NFM too).

The implementation of WebSpy is still pretty bare in this beta. Most of the features present in SDR# are not there, but Youssef mentioned that these are being worked on, and plugin support may even be added in the future. You also can't tune individual frequency digits with the mouse wheel like you can in SDR#, and there are no squelch or bias-tee controls. But as this is still in development, we expect more features and tweaks in the future.








