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:
References
SoapyRX can be used independently, but has been initially developed for the PhaseSCA project, see the main project repository at phase_data.
-
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"