Cross-Platform SDR Software
Go to file
2021-04-25 19:44:41 +02:00
.github Fixed ubuntu version in CI 2021-04-25 03:53:31 +02:00
airspy_source removed unused bug 2021-04-18 20:08:28 +02:00
airspyhf_source Bugfix for OSX 4 2021-04-18 19:24:56 +02:00
audio_sink Bugfix for OSX 4 2021-04-18 19:24:56 +02:00
bladerf_source Bugfix for OSX 4 2021-04-18 19:24:56 +02:00
core Fixed frequency select not updating when disabling VFO 2021-04-24 19:26:22 +02:00
demo_module adde contributing.md 2021-04-25 19:44:41 +02:00
discord_integration adde contributing.md 2021-04-25 19:44:41 +02:00
falcon9_decoder Bugfix for OSX 4 2021-04-18 19:24:56 +02:00
file_source Bugfix for OSX 4 2021-04-18 19:24:56 +02:00
hackrf_source Fixed hackrf performance issues 2021-04-22 02:18:43 +02:00
meteor_demodulator meteor demodulator now saves the recording path 2021-04-22 19:18:19 +02:00
plutosdr_source Bugfix for OSX 4 2021-04-18 19:24:56 +02:00
radio push before merge 2021-04-24 20:58:33 +02:00
recorder Bugfix for OSX 4 2021-04-18 19:24:56 +02:00
root Fixes to filtering 2021-04-17 03:38:48 +02:00
rtl_sdr_source Bugfix for OSX 4 2021-04-18 19:24:56 +02:00
rtl_tcp_source Bugfix for OSX 4 2021-04-18 19:24:56 +02:00
rx888_source Bugfix for OSX 4 2021-04-18 19:24:56 +02:00
sdrplay_source Fixed gain bug for RSPduo 2021-04-21 14:53:09 +02:00
soapy_source Bugfix for OSX 4 2021-04-18 19:24:56 +02:00
spyserver_source Bugfix for OSX 4 2021-04-18 19:24:56 +02:00
src changes to the build system 2020-12-22 14:50:26 +01:00
weather_sat_decoder Bugfix for OSX 6 2021-04-18 19:32:18 +02:00
win32 Push before merge 2020-09-06 15:39:09 +02:00
.gitignore changes to the build system 2020-12-22 14:56:57 +01:00
cmake_uninstall.cmake Generate a Linux desktop icon 2021-02-12 00:03:30 +01:00
CMakeLists.txt Renamed discord-integration to discord_integration 2021-04-21 19:52:16 -04:00
contributing.md adde contributing.md 2021-04-25 19:44:41 +02:00
create_root.bat changes to the build system 2020-12-22 14:50:26 +01:00
create_root.sh changes to the build system 2020-12-22 14:50:26 +01:00
license added license 2020-07-20 00:43:36 +02:00
make_debian_package.sh New debian deb build file 2021-02-12 00:15:35 +01:00
make_windows_package.ps1 Added pothos to windows CI 10 2021-04-25 00:25:02 +02:00
readme.md Fixed typos and some grammar 2021-04-24 09:59:57 -07:00
sdrpp.desktop Generate a Linux desktop icon 2021-02-12 00:03:30 +01:00

SDR++, The bloat-free SDR software

Screenshot SDR++ is a cross-platform and open source SDR software with the aim of being bloat free and simple to use.

Linux Build

Features

  • Wide hardware support (both through SoapySDR and dedicated modules)
  • SIMD accelerated DSP
  • Cross-platform (Windows, Linux, OSX and BSD)
  • Full waterfall update when possible. Makes browsing signals easier and more pleasant

Coming soon

  • Digital demodulators and decoders
  • Light theme (I know you weirdos exist lol)
  • Waterfall color scheme editor
  • Other small customisation options

Installing

Windows

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.

Linux

Debian-based (Ubuntu, Mint, etc)

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.

Arch-based

Install the latest release from the sdrpp-git AUR package

Other

There are currently no existing packages for other distributions, for these systems you'll have to build from source.

MacOS

TODO

BSD

There are currently no BSD packages, refer to Building on Linux / BSD for instructions on building from source.

Building on Windows

Install dependencies

  • cmake
  • vcpkg
  • PothosSDR (This will install libraries for most SDRs)
  • rtaudio

After this, install the following dependencies using vcpkg:

  • fftw3
  • glfw
  • glew

Building

mkdir build
cd build
cmake .. "-DCMAKE_TOOLCHAIN_FILE=C:/Users/Alex/vcpkg/scripts/buildsystems/vcpkg.cmake" -G "Visual Studio 15 2017 Win64"
cmake --build . --config Release

Create a new root directory

./create_root.bat

Running for development

If you wish to install SDR++, skip to the next step

You will first 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/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.

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/Release/sdrpp.exe -r root_dev

Or, if you wish to run from the build directory:

./Release/sdrpp.exe -r ../root_dev

Installing SDR++

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 modue) 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/

Building on Linux / BSD

Install dependencies

  • cmake
  • fftw3
  • glfw
  • glew
  • libvolk

Next install dependencies based on the modules you wish to build:

  • soapy_source: SoapySDR + drivers for each SDRs (see SoapySDR docs)
  • airspyhf_source: libairspyhf
  • plutosdr_source: libiio, libad9361
  • audio_sink: librtaudio-dev

Note: make sure you're using GCC 8 or later as older versions do not have std::filesystem built-in.

Building

replace <N> with the number of threads you wish to use to build

mkdir build
cd build
cmake ..
make -j<N>

Create a new root directory

sh ./create_root.sh

Running for development

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

Installing SDR++

To install SDR++, run the following command in your build folder:

sudo make install

Contributing

Feel free to submit pull requests and report bugs via the GitHub issue tracker. I will soon publish a contributing.md listing the code style to use.

Credits

Patrons

Contributors

Libraries used