This post describes how I installed ShinySDR on a Raspberry Pi.

I had a RTL-SDR USB receiver (Nooelec) laying around and wanted to use it headless on a Raspberry Pi and use it via a web interface on my iPad. After searching for a while I tried ShinySDR.

Following the installation instructions I did these steps:

Dependencies

Install required and most of the optional packages: sudo apt install gnuradio gr-osmosdr gr-air-modes multimon-ng rtl-433 wsjtx

Install some more dependencies: sudo apt-get install libatlas-base-dev libhdf5-dev libhdf5-serial-dev libatlas-base-dev libjasper-dev

Use latest version of Python package attrs: pip install --upgrade attrs

Making source code Python 3.9 compatible

ShinySDR is currently only supporting Python 2.7 and I didn’t want to install old Python, so I used the branch python3 from w1xm’s fork:

git clone -b python3 https://github.com/w1xm/shinysdr/

Patching for Python 3.9

I needed to fix an import and a changed method name for Python 3.9 in shinysdr/filters.py and shinysdr/types.py, respectively:

Please see my pull request.

Installing

cd shinysdr
python3 setup.py build
sudo python3 setup.py install

This needs to be done after installing:

Latest pip release of txWS 0.9.1 has a bug under Python 3.9, so I installed it directly from Github pip install --upgrade git+https://github.com/MostAwesomeDude/txWS#egg=txWS

Configuration

Create configs: shinysdr --create ./shinysdr-config

I needed to change the ports, because the default ports were used on my system

TODO config, start etc.