An SDR receiver built on SoapySDR.
The scope of this tool is to handle signal acquisition from an SDR. Using SoapySDR as backend, it supports every SDR supported by the latter – as long as the corresponding module is installed. It is not meant to process datasets of signals (e.g., conversion, alignment, normalization).
- Features
-
- One-shot record-plot-cut-save from the command-line.
- Server mode controlled from a client (local socket).
- Multiple synchronized SDRs controlled in parallel.
- Display basic signal visualization (amplitude, phase rotation, time-domain, frequency-domain).
- Perform single-signal operations (e.g., interactive cutting).
- Use complex numbers (I/Q) for storage (
numpy.complex64
). - Live display (buffered recording, like an oscilloscope, not like a spectrum analyzer)/
- Supported devices
- Install SoapySDR and the module corresponding to the desired SDR using packages (refer to your distribution) or sources (refer to Installation of SoapySDR from sources)
- Clone SoapyRX repository and install it using using Pip:
git clone https://github.com/pierreay/soapyrx.git cd soapyrx && pip install --user .
- Install the required dependencies using your distribution package manager:
cmake
g++
python3
numpy
dbg
swig
boost
boost-thread
- Get the source code and build:
cd /tmp && git clone https://github.com/pothosware/SoapySDR.git mkdir SoapySDR/build build && cd SoapySDR/build cmake .. && make -j4
- Install and test if SoapySDR is installed correctly:
sudo make install && sudo ldconfig SoapySDRUtil --info
- We support the following modules:
- Select the module according to your SDR and ensure that the SDR driver is correctly installed on your system, independently of SoapySDR.
- Then, get the source code and build, replacing
$MODULE_URL
and$MODULE_NAME
accordingly:cd /tmp && git clone $MODULE_URL mkdir $MODULE_NAME/build && cd $MODULE_NAME/build cmake .. && make
- Install and test if SoapySDR is able to detect the USRP, replacing
$MODULE_DRIVER
by:rtlsdr
for RTL-SDR.hackrf
for SoapyHackRF.uhd
for SoapyUHD.sdrplay
for SoapySDRPlay3.airspy
for AirSpy.
sudo make install SoapySDRUtil --probe="driver=$MODULE_DRIVER"
Desired features
- Dynamic changes of radio parameters
- E.g., center frequency or sampling rate. Can be implemented using plots sliders?
- Scanner mode
- If dynamic change of radio parameters is fast enough, consider adding a wide-band spectrum scanner using sweeping.