The scope of this tool is to handle signal acquisition from a Software-Defined Radio (SDR). Using SoapySDR as backend, it supports every SDR supported by the latter -- as long as the corresponding module is installed. Its output can later be used to create datasets of signals and perform pre-processing with other software.
Note
SoapyRX is an independent tool, initially developed for the PhaseSCA research project about electromagnetic side channel.
- One-shot "record-plot-cut-save" cycle 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 per-signal interactive operations (e.g., cutting)
- Use complex numbers (I/Q) for storage (
numpy.complex64) - Live display (buffered recording, like an oscilloscope, not like a spectrum analyzer)
- 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 .Tip
This section is NOT needed if you install SoapySDR using your package manager!
-
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"