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 phasesca.
-
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:
cmakeg++python3numpydbgswigboostboost-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_URLand$MODULE_NAMEaccordingly:
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_DRIVERby:rtlsdrfor RTL-SDR.hackrffor SoapyHackRF.uhdfor SoapyUHD.sdrplayfor SoapySDRPlay3.airspyfor AirSpy.
sudo make install
SoapySDRUtil --probe="driver=$MODULE_DRIVER"