Browse by type
SDR++ is a cross-platform and open source SDR software with the aim of being bloat free and simple to use.
Download the latest release from the Releases page and extract to the directory of your choice.
To create a desktop shortcut, rightclick the exe and select Send to -> Desktop (create shortcut), then, rename the shortcut on the desktop to whatever you want.
Download the latest release from the Releases page and extract to the directory of your choice.
Then, run:
sudo apt install libfftw3-dev libglfw3-dev libglew-dev libvolk2-dev libsoapysdr-dev libairspyhf-dev libiio-dev libad9361-dev librtaudio-dev libhackrf-dev
sudo dpkg -i sdrpp_debian_amd64.deb
If libvolk2-dev is not available, use libvolk1-dev.
Install the latest release from the sdrpp-git AUR package
There are currently no existing packages for other distributions, for these systems you'll have to build from source.
You might get lucky by using the installer downloadable from the Releases page.
This guide requires you to have Homebrew installed. Check out https://brew.sh/ on how to do so.
Get yourself a copy of the source code. This can be done by downloading the source package from the Releases page. Extract it to a location of your choice. Alternativley you can clone https://github.com/AlexandreRouma/SDRPlusPlus.git using git.
brew install \
airspy \
airspyhf \
cmake \
codec2 \
fftw \
glew \
glfw \
hackrf \
libbladerf \
librtlsdr \
portaudio \
rtl-sdr \
soapyrtlsdr \
volk
mkdir build
cd build
cmake .. \
-DOPT_BUILD_AUDIO_SINK=OFF \
-DOPT_BUILD_BLADERF_SOURCE=OFF \
-DOPT_BUILD_M17_DECODER=ON \
-DOPT_BUILD_NEW_PORTAUDIO_SINK=ON \
-DOPT_BUILD_PLUTOSDR_SOURCE=OFF \
-DOPT_BUILD_PORTAUDIO_SINK=ON \
-DOPT_BUILD_SOAPY_SOURCE=OFF
make -j$(sysctl -n hw.ncpu)
The above was tested on macOS Big Sur (11.5).
Check jobs.build_macos in the build_all.yaml workflow for the exact options used for building the package available in the releases
There are currently no BSD packages, refer to Building on Linux / BSD for instructions on building from source.
The preferred IDE is VS Code in order to have similar development experience across platforms and to build with CMake using the command line.
C:/Program Files (x86)/RtAudio/)After this, install the following dependencies using vcpkg:
You are probably going to build in 64 bit so make sure vcpkg installs the correct versions using .\vcpkg.exe install <package>:x64-windows
IMPORTANT: Replace <vcpkg install directory> with vcpkg's install directory.
mkdir build
cd build
cmake .. "-DCMAKE_TOOLCHAIN_FILE=<vcpkg install directory>/scripts/buildsystems/vcpkg.cmake" -G "Visual Studio 16 2019"
cmake --build . --config Release
./create_root.bat
This will create the root_dev directory that will be used to save the configs of sdrpp and the modules.
You will next need to edit the root_dev/config.json file to point to the modules that were built. If the file is missing in your folder run the application once and it will create one with default value -- see later on how to run the application.
From the top directory, you can simply run:
./build/Release/sdrpp.exe -r root_dev -s
Or, if you wish to run from the build directory e.g. build/Release and adapt the relative path to the root_dev folder:
./sdrpp.exe -r ../../root_dev -s
The optional -s argument is for keeping the console active in order to see the error messages.
Because all the paths are relative, for the rest of the command line instructions we are going to assume you are running from the top directory using the former command.
As mentioned previously you need to edit root_dev/config.json to add the modules that were built. From the default configuration file you need to add the paths in the modules section. Add to this list all the modules you wish to use.
...
"modules": [
"./build/radio/Release/radio.dll",
"./build/recorder/Release/recorder.dll",
"./build/rtl_tcp_source/Release/rtl_tcp_source.dll",
"./build/soapy_source/Release/soapy_source.dll",
"./build/audio_sink/Release/audio_sink.dll"
]
...
You also need to change the location of the resource and module directories, for development, I recommend:
...
"modulesDirectory": "root_dev/modules",
...
"resourcesDirectory": "root_dev/res",
...
Remember that these paths will be relative to the run directory.
If you choose to run SDR++ for development, you do not need this step.
First, copy over the exe and DLLs from build/Release/ to root_dev.
Next you need to copy over all the modules that were compiled. To do so, copy the DLL file of the module (located in its build folder given below) to the root_dev/modules directory and other DLLs (that do not have the exact name of the module) to the root_dev directory.
The modules built will be some of the following (Repeat the instructions above for all you wish to use):
build/radio/Release/build/recorder/Release/build/rtl_tcp_source/Release/build/spyserver_source/Release/build/soapy_source/Release/build/airspyhf_source/Release/build/plutosdr_source/Release/build/audio_sink/Release/Depending on which module you want to build, you will need to install some additional dependencies. Here are listed every module that requires addition dependencies. If a module enabled by default and you do not wish to install a perticular dependency (or can't, eg. the BladeRF module on Debian Buster), you can disable it using the module parameter listed in the table below
Next install dependencies based on the modules you wish to build (See previous step)
Note: make sure you're using GCC 8 or later as older versions do not have std::filesystem built-in.
replace <N> with the number of threads you wish to use to build
mkdir build
cd build
cmake ..
make -j<N>
sh ./create_root.sh
If you wish to install SDR++, skip to the next step
First run SDR++ from the build directory to generate a default config file
./sdrpp -r ../root_dev/
Then, you will need to edit the root_dev/config.json file to point to the modules that were built. Here is an example of what it should look like:
...
"modules": [
"./build/radio/radio.so",
"./build/recorder/recorder.so",
"./build/rtl_tcp_source/rtl_tcp_source.so",
"./build/soapy_source/soapy_source.so",
"./build/audio_sink/audio_sink.so"
]
...
Note: You can generate this list automatically by running find . | grep '\.so' | sed 's/^/"/' | sed 's/$/",/' | sed '/sdrpp_core.so/d' in the build directory.
You also need to change the location of the resource and module directories, for development, I recommend:
...
"modulesDirectory": "./root_dev/modules",
...
"resourcesDirectory": "./root_dev/res",
...
Remember that these paths will be relative to the run directory.
Of course, remember to add entries for all modules that were built and that you wish to use.
Next, from the top directory, you can simply run:
./build/sdrpp -r root_dev
Or, if you wish to run from the build directory, you will need to correct the directories in the config.json file, and then run:
./sdrpp -r ../root_dev
To install SDR++, run the following command in your build folder:
sudo make install
Not all modules are built by default. I decided to disable the build of those with large libraries, libraries that can't be installed through the package manager (or pothos) and those that are still in beta. Modules in beta are still included in releases for the most part but not enabled in SDR++ (need to be instantiated).
| Name | Stage | Dependencies | Option | Built by default | Built in Release | Enabled in SDR++ by default |
|---|---|---|---|---|---|---|
| airspy_source | Working | libairspy | OPT_BUILD_AIRSPY_SOURCE | ✅ | ✅ | ✅ |
| airspyhf_source | Working | libairspyhf | OPT_BUILD_AIRSPYHF_SOURCE | ✅ | ✅ | ✅ |
| bladerf_source | Working | libbladeRF | OPT_BUILD_BLADERF_SOURCE | ⛔ | ⚠️ (not Debian Buster) | ✅ |
| file_source | Working | - | OPT_BUILD_FILE_SOURCE | ✅ | ✅ | ✅ |
| hackrf_source | Working | libhackrf | OPT_BUILD_HACKRF_SOURCE | ✅ | ✅ | ✅ |
| limesdr_source | Working | liblimesuite | OPT_BUILD_LIMESDR_SOURCE | ⛔ | ✅ | ✅ |
| sddc_source | Unfinished | - | OPT_BUILD_SDDC_SOURCE | ⛔ | ⛔ | ⛔ |
| rtl_sdr_source | Working | librtlsdr | OPT_BUILD_RTL_SDR_SOURCE | ✅ | ✅ | ✅ |
| rtl_tcp_source | Working | - | OPT_BUILD_RTL_TCP_SOURCE | ✅ | ✅ | ✅ |
| sdrplay_source | Working | SDRplay API | OPT_BUILD_SDRPLAY_SOURCE | ⛔ | ✅ | ✅ |
| soapy_source | Working | soapysdr | OPT_BUILD_SOAPY_SOURCE | ✅ | ✅ | ✅ |
| spyserver_source | Working | - | OPT_BUILD_SPYSERVER_SOURCE | ✅ | ✅ | ✅ |
| plutosdr_source | Working | libiio, libad9361 | OPT_BUILD_PLUTOSDR_SOURCE | ✅ | ✅ | ✅ |
| Name | Stage | Dependencies | Option | Built by default | Built in Release | Enabled in SDR++ by default |
|---|---|---|---|---|---|---|
| audio_sink | Working | rtaudio | OPT_BUILD_AUDIO_SINK | ✅ | ✅ | ✅ |
| network_sink | Working | - | OPT_BUILD_NETWORK_SINK | ✅ | ✅ | ✅ |
| new_portaudio_sink | Beta | portaudio | OPT_BUILD_NEW_PORTAUDIO_SINK | ⛔ | ✅ | ⛔ |
| Name | Stage | Dependencies | Option | Built by default | Built in Release | Enabled in SDR++ by default |
|---|---|---|---|---|---|---|
| falcon9_decoder | Unfinished | ffplay | OPT_BUILD_FALCON9_DECODER | ⛔ | ⛔ | ⛔ |
| m17_decoder | Beta | - | OPT_BUILD_M17_DECODER | ⛔ | ✅ | ⛔ |
| meteor_demodulator | Working | - | OPT_BUILD_METEOR_DEMODULATOR | ✅ | ✅ | ⛔ |
| radio | Working | - | OPT_BUILD_RADIO | ✅ | ✅ | ✅ |
| weather_sat_decoder | Unfinished | - | OPT_BUILD_WEATHER_SAT_DECODE |
$ claude mcp add SDRPlusPlus \
-- python -m otcore.mcp_server <graph>