ShinySDR: a software-defined radio receiver

ShinySDR is the software component of a software-defined radio receiver. When combined with suitable hardware devices such as the RTL-SDR, HackRF, or USRP, it can be used to listen to or display data from a variety of radio transmissions.

Features and applications

Remote operation:
The receiver can be listened to and remotely controlled over a LAN or the Internet;
the user interface works the same everywhere.

Receive and decode telemetry data:
ShinySDR can decode and display ADS-B, APRS, WSPR, and the telemetry formats supported by rtl_433. When position information is available, it is displayed on a map with animated extrapolated positions.

Telemetry support requires installation of additional (open source) software as described in the installation instructions.

Frequency database:
Jump to favorite stations; catalog signals you hear; import published tables of band, channel, and station info. Stations with known coordinates can be displayed on the map.

Persistent waterfall display: You can zoom, pan, and retune without losing any of the displayed history, whereas many other programs will discard anything which is temporarily offscreen, or the whole thing if the window is resized. If you zoom in to get a look at one signal, you can zoom out again.

For developers

All server code is Python, and has no mandatory build or install step; simply restart the server to apply a change.

Plugin system allows adding support for new modes (types of modulation) and hardware devices.

Demodulators prototyped in GNU Radio Companion can be turned into plugins with very little additional code. Control UI can be automatically generated or customized and is based on a generic networking layer.

Missing features

ShinySDR is not particularly CPU-efficient or otherwise optimized.

Remote operation is not suitable for multiple users; there are no independent sessions. Yet.

Installation is not very friendly if you're not already familiar with building C and Python software.

Many features are incomplete and backward compatibility of new versions is not guaranteed.

Requirements

ShinySDR operates as a specialized web server, running on the machine which has your SDR hardware attached. ShinySDR is known to be compatible with Mac OS X and Linux; in principle, you can use anything which can also run GNU Radio and Python and has enough CPU power (a Raspberry Pi will not do).

Google Chrome (excluding Chrome for iPhone or iPad) is the recommended browser as the most testing has been done with it. Some functionality may be missing or broken on other browsers.

Currently, the client must have the same endianness and floating-point format as the server.
This may be fixed in the future (if I ever hear of this actually being a problem, or if the data in question is switched to fixed-point to reduce data rate).