2020-12-14 00:47:11 +01:00
# SDR++, The bloat-free SDR software
![Screenshot ](https://i.imgur.com/WejsiFN.png )
2020-07-19 18:09:59 +02:00
SDR++ is a cross-platform and open source SDR software with the aim of being bloat free and simple to use.
2020-12-14 01:07:30 +01:00
* [Patreon ](https://patreon.com/ryzerth )
* [Discord Server ](https://discord.gg/aFgWjyD )
## Features
2020-11-26 19:25:58 +01:00
2020-12-14 00:47:11 +01:00
* Wide hardware support (both through SoapySDR and dedicated modules)
* SIMD accelerated DSP
2020-12-14 01:07:30 +01:00
* Cross-platform (Windows, Linux, OSX and BSD)
2020-07-19 18:09:59 +02:00
* Full waterfall update when possible. Makes browsing signals easier and more pleasant
2020-07-19 18:12:03 +02:00
## Comming soon
2020-11-26 19:25:58 +01:00
2020-07-19 18:09:59 +02:00
* Digital demodulators and decoders
2020-07-19 18:23:00 +02:00
* Light theme (I know you weirdos exist lol)
* Waterfall color scheme editor
2020-07-19 21:26:37 +02:00
* Switchable fft size
* other small customisation options
2020-07-19 18:09:59 +02:00
2020-12-22 18:23:26 +01:00
# Installing
## Windows
Download the latest release from [the Releases page ](https://github.com/AlexandreRouma/SDRPlusPlus/releases ) and extract to the directory of your choice.
2020-12-14 01:07:30 +01:00
2020-12-22 18:23:26 +01:00
To create a desktop short, rightclick the exe and select `Send to -> Desktop (create shortcut)` , then, rename the shortcut on the desktop to whatever you want.
## Linux
TODO
## MacOS
TODO
2020-12-14 01:07:30 +01:00
2020-12-22 18:23:26 +01:00
## BSD
TODO
2020-11-26 19:25:58 +01:00
2020-12-22 18:23:26 +01:00
# Building on Windows
## Install dependencies
2020-07-19 18:09:59 +02:00
* cmake
2020-12-22 18:23:26 +01:00
* vcpkg
* PothosSDR (This will install libraires for most SDRs)
After this, install the following depencies using vcpkg:
2020-07-19 18:09:59 +02:00
* fftw3
* portaudio
* glfw
* glew
2020-12-14 01:07:30 +01:00
2020-12-22 18:23:26 +01:00
## Building
```
2020-07-19 18:09:59 +02:00
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
```
2020-12-22 18:23:26 +01:00
## Create a new root directory
```
./create_root.bat
2020-10-24 17:41:22 +02:00
```
2020-12-22 18:23:26 +01:00
## Running for development
If you wish to install SDR++, skip to the next step
2020-12-14 01:07:30 +01:00
2020-12-22 18:23:26 +01:00
You will first need to edit the `root_dev/config` file to point to the modules that were built. Here us a sample if what it would look like:
2020-12-14 01:07:30 +01:00
```json
2020-12-22 18:23:26 +01:00
...
2020-12-14 01:07:30 +01:00
"modules": [
2020-12-22 18:23:26 +01:00
"./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"
2020-12-14 01:07:30 +01:00
]
2020-12-22 18:23:26 +01:00
...
2020-10-24 17:41:22 +02:00
```
2020-07-19 18:09:59 +02:00
2020-12-22 18:23:26 +01:00
Remember that these paths will be relative to the run directory.
Off cours, 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:
2020-10-22 02:28:43 +02:00
```
2020-12-22 18:23:26 +01:00
./build/Release/sdrpp.exe -r root_dev
2020-10-22 02:28:43 +02:00
```
2020-10-24 17:18:54 +02:00
2020-12-22 18:23:26 +01:00
Or, if you wish to run from the build directory:
2020-10-22 02:28:43 +02:00
```
2020-12-22 18:23:26 +01:00
./Release/sdrpp.exe -r ../root_dev
```
## Installing SDR++
If you chose 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
* vcpkg
* 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: portaudio
## Building
replace `<N>` with the number of threads you wish to use to build
```sh
2020-10-22 02:28:43 +02:00
mkdir build
cd build
cmake ..
2020-12-22 18:23:26 +01:00
make -j< N >
2020-10-22 02:28:43 +02:00
```
2020-07-19 18:09:59 +02:00
2020-12-22 18:23:26 +01:00
## Create a new root directory
```sh
sh ./create_root.sh
```
2020-12-14 01:07:30 +01:00
2020-12-22 18:23:26 +01:00
## Running for development
If you wish to install SDR++, skip to the next step
2020-12-14 01:07:30 +01:00
2020-12-22 18:23:26 +01:00
You will first need to edit the `root_dev/config` file to point to the modules that were built. Here us a sample if what it would look like:
2020-12-14 01:07:30 +01:00
```json
2020-12-22 18:23:26 +01:00
...
2020-12-14 01:07:30 +01:00
"modules": [
2020-12-22 18:23:26 +01:00
"./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"
2020-12-14 01:07:30 +01:00
]
2020-12-22 18:23:26 +01:00
...
2020-12-14 01:07:30 +01:00
```
2020-12-22 18:23:26 +01:00
Remember that these paths will be relative to the run directory.
2020-10-24 17:18:54 +02:00
2020-12-22 18:23:26 +01:00
Off cours, remember to add entries for all modules that were built and that you wish to use.
2020-10-24 17:34:18 +02:00
2020-12-22 18:23:26 +01:00
Next, from the top directory, you can simply run:
2020-10-24 17:18:54 +02:00
```
2020-12-22 18:23:26 +01:00
./build/Release/sdrpp.exe -r root_dev
2020-10-24 17:18:54 +02:00
```
2020-12-22 18:23:26 +01:00
Or, if you wish to run from the build directory:
2020-10-24 17:41:22 +02:00
```
2020-12-22 18:23:26 +01:00
./Release/sdrpp.exe -r ../root_dev
2020-10-24 17:41:22 +02:00
```
2020-10-24 17:34:18 +02:00
2020-12-22 18:23:26 +01:00
## Installing SDR++
Coming soon!
2020-07-19 18:12:03 +02:00
# Contributing
2020-09-06 16:31:50 +02:00
2020-07-19 18:09:59 +02:00
Feel free to issue pull request and report bugs via the github issues.
2020-08-05 13:00:32 +02:00
I will soon publish a contributing.md listing the code style to use.
# Credits
2020-09-06 16:31:50 +02:00
## Patrons
* [SignalsEverywhere ](https://signalseverywhere.com/ )
2020-10-04 15:23:40 +02:00
* [Lee Donaghy ](https://github.com/github )
2020-08-05 13:07:12 +02:00
## Contributors
* [aosync ](https://github.com/aosync )
2020-12-22 18:23:26 +01:00
* [Alexsey Shestacov ](https://github.com/wingrime )
2020-08-05 13:11:42 +02:00
* [Benjamin Kyd ](https://github.com/benkyd )
* [Tobias Mädel ](https://github.com/Manawyrm )
2020-08-12 16:43:44 +02:00
* [Raov ](https://twitter.com/raov_birbtog )
2020-09-06 16:31:50 +02:00
* [Howard0su ](https://github.com/howard0su )
## Libaries used
* [SoapySDR (PothosWare) ](https://github.com/pothosware/SoapySDR )
* [Dear ImGui (ocornut) ](https://github.com/ocornut/imgui )
* [spdlog (gabime) ](https://github.com/gabime/spdlog )
* [json (nlohmann) ](https://github.com/nlohmann/json )
2020-12-22 18:23:26 +01:00
* [portaudio (PortAudio community) ](http://www.portaudio.com/ )