SDRPlusPlus/readme.md

498 lines
24 KiB
Markdown
Raw Permalink Normal View History

2021-07-09 04:29:16 +02:00
# SDR++, The bloat-free SDR software<br>
2020-12-14 00:47:11 +01:00
![Screenshot](https://i.imgur.com/Ter2MQJ.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.
2021-04-26 20:17:57 +02:00
![Build](https://github.com/AlexandreRouma/SDRPlusPlus/workflows/Build%20Binaries/badge.svg)
2020-12-23 20:22:20 +01:00
2020-12-14 01:07:30 +01:00
* [Patreon](https://patreon.com/ryzerth)
* [Discord Server](https://discord.gg/aFgWjyD)
2021-11-23 20:52:49 +01:00
* [Reddit](https://www.reddit.com/r/sdrpp/)
2022-04-05 21:54:58 +02:00
* IRC: `#sdrpp` ([libera.chat](https://libera.chat)) __**NO LONGER ACTIVE, JOIN DISCORD INSTEAD**__
2020-12-14 01:07:30 +01:00
## Features
2020-11-26 19:25:58 +01:00
2021-10-02 00:16:16 +02:00
* Multi VFO
2020-12-14 00:47:11 +01:00
* Wide hardware support (both through SoapySDR and dedicated modules)
* SIMD accelerated DSP
2024-01-24 18:14:29 +01:00
* Cross-platform (Windows, Linux, MacOS and BSD)
2020-07-19 18:09:59 +02:00
* Full waterfall update when possible. Makes browsing signals easier and more pleasant
2021-10-02 00:16:16 +02:00
* Modular design (easily write your own plugins)
2020-07-19 18:09:59 +02:00
2020-12-22 18:23:26 +01:00
# Installing
2021-07-09 04:29:16 +02:00
2022-11-12 02:19:53 +01:00
## Nightly Builds
Nightly builds contain the very latest features and bugfixes. They are usually just stable as [normal releases](https://github.com/AlexandreRouma/SDRPlusPlus/releases) but are available basically minutes to hours after a change has been pushed to the code.
You can download them [here](https://www.sdrpp.org/nightly). It'll redirect you to the latest nightly on GitHub, scroll down to "Artifacts" and click on the version for your OS.
GitHub currently requires an account for the files to be downloadable so make sure you are logged in.
2020-12-22 18:23:26 +01:00
## Windows
2021-07-09 04:29:16 +02:00
2020-12-22 18:23:26 +01:00
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
2021-04-24 18:59:57 +02:00
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.
2020-12-22 18:23:26 +01:00
## Linux
2021-04-24 04:13:54 +02:00
### Debian-based (Ubuntu, Mint, etc)
2021-07-09 04:29:16 +02:00
2020-12-24 16:27:12 +01:00
Download the latest release from [the Releases page](https://github.com/AlexandreRouma/SDRPlusPlus/releases) and extract to the directory of your choice.
Then, use apt to install it:
2021-07-09 04:29:16 +02:00
2020-12-24 16:27:12 +01:00
```sh
sudo apt install path/to/the/sdrpp_debian_amd64.deb
2020-12-24 16:27:12 +01:00
```
2024-07-07 00:00:23 +02:00
**IMPORTANT: You must install the drivers for your SDR. Follow instructions from your manufacturer as to how to do this on your particular distro.**
2020-12-22 18:23:26 +01:00
2021-04-24 04:13:54 +02:00
### Arch-based
2021-07-09 04:29:16 +02:00
2023-04-10 22:53:41 +02:00
Install from source following the instructions below.
**WARNING: The sdrpp-git AUR package is no longer official, it is not recommended to use it.**
2021-04-24 04:13:54 +02:00
### Other
2021-07-09 04:29:16 +02:00
2021-04-24 04:13:54 +02:00
There are currently no existing packages for other distributions, for these systems you'll have to [build from source](https://github.com/AlexandreRouma/SDRPlusPlus#building-on-linux--bsd).
2020-12-22 18:23:26 +01:00
## MacOS
2021-07-09 04:29:16 +02:00
2022-09-05 15:22:07 +02:00
Download the app bundle from the latest [nightly build](https://www.sdrpp.org/nightly)
2020-12-14 01:07:30 +01:00
2020-12-22 18:23:26 +01:00
## BSD
2021-07-09 04:29:16 +02:00
2021-04-24 04:13:54 +02:00
There are currently no BSD packages, refer to [Building on Linux / BSD](https://github.com/AlexandreRouma/SDRPlusPlus#building-on-linux--bsd) for instructions on building from source.
2020-11-26 19:25:58 +01:00
2020-12-22 18:23:26 +01:00
# Building on Windows
2021-07-09 04:29:16 +02:00
2021-09-20 19:59:35 +02:00
The preferred IDE is [VS Code](https://code.visualstudio.com/) in order to have similar development experience across platforms and to build with CMake using the command line.
2021-07-07 00:38:25 +02:00
2020-12-22 18:23:26 +01:00
## Install dependencies
2021-07-09 04:29:16 +02:00
2021-07-07 00:38:25 +02:00
* [cmake](https://cmake.org)
2021-07-08 22:35:14 +02:00
* [vcpkg](https://vcpkg.io)
2023-09-14 05:43:00 +02:00
* [PothosSDR](https://github.com/pothosware/PothosSDR) (This will install libraries for most SDRs. You have to install it in `C:/Program Files/PothosSDR`)
2021-07-07 00:38:25 +02:00
* [RtAudio](https://www.music.mcgill.ca/~gary/rtaudio/) (You have to build and install it in `C:/Program Files (x86)/RtAudio/`)
2020-12-22 18:23:26 +01:00
2021-04-24 04:13:54 +02:00
After this, install the following dependencies using vcpkg:
2021-07-09 04:29:16 +02:00
2020-07-19 18:09:59 +02:00
* fftw3
2021-07-07 00:38:25 +02:00
* glfw3
* zstd
2020-12-14 01:07:30 +01:00
2021-07-09 04:29:16 +02:00
You are probably going to build in 64 bit so make sure vcpkg installs the correct versions using `.\vcpkg.exe install <package>:x64-windows`
2021-07-07 00:38:25 +02:00
## Building using the command line
2021-07-09 04:29:16 +02:00
2021-07-08 22:35:14 +02:00
**IMPORTANT:** Replace `<vcpkg install directory>` with vcpkg's install directory.
2021-07-09 04:29:16 +02:00
2020-12-22 18:23:26 +01:00
```
2020-07-19 18:09:59 +02:00
mkdir build
cd build
2021-07-08 22:35:14 +02:00
cmake .. "-DCMAKE_TOOLCHAIN_FILE=<vcpkg install directory>/scripts/buildsystems/vcpkg.cmake" -G "Visual Studio 16 2019"
2020-07-19 18:09:59 +02:00
cmake --build . --config Release
```
2021-07-07 00:38:25 +02:00
## Running for development
2021-07-09 04:29:16 +02:00
2021-07-07 00:38:25 +02:00
### Create a new configuration root directory
2021-07-09 04:29:16 +02:00
```bat
2020-12-22 18:23:26 +01:00
./create_root.bat
2020-10-24 17:41:22 +02:00
```
2021-07-09 04:29:16 +02:00
2021-07-07 00:38:25 +02:00
This will create the `root_dev` directory that will be used to save the configs of sdrpp and the modules.
2020-10-24 17:41:22 +02:00
2021-07-07 00:38:25 +02:00
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.
2021-07-08 22:35:14 +02:00
### Run SDR++ from the command line
2020-12-14 01:07:30 +01:00
2021-07-07 00:38:25 +02:00
From the top directory, you can simply run:
2021-07-09 04:29:16 +02:00
```bat
2023-09-14 05:43:00 +02:00
./build/Release/sdrpp.exe -r root_dev -c
2021-07-07 00:38:25 +02:00
```
Or, if you wish to run from the build directory e.g. `build/Release` and adapt the relative path to the `root_dev` folder:
2021-07-09 04:29:16 +02:00
```bat
2023-09-14 05:43:00 +02:00
./sdrpp.exe -r ../../root_dev -c
2021-07-07 00:38:25 +02:00
```
2021-07-09 04:29:16 +02:00
2023-09-14 05:43:00 +02:00
The optional `-c` argument is for keeping the console active in order to see the error messages.
2021-07-07 00:38:25 +02:00
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.
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/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
You also need to change the location of the resource and module directories, for development, I recommend:
2021-07-09 04:29:16 +02:00
```json
...
2021-07-07 00:38:25 +02:00
"modulesDirectory": "root_dev/modules",
...
2021-07-07 00:38:25 +02:00
"resourcesDirectory": "root_dev/res",
...
```
2020-12-22 18:23:26 +01:00
Remember that these paths will be relative to the run directory.
## Installing SDR++
2021-07-09 04:29:16 +02:00
2021-04-24 18:59:57 +02:00
If you choose to run SDR++ for development, you do not need this step.
2020-12-22 18:23:26 +01:00
First, copy over the exe and DLLs from `build/Release/` to `root_dev`.
2021-09-20 19:59:35 +02:00
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.
2020-12-22 18:23:26 +01:00
The modules built will be some of the following (Repeat the instructions above for all you wish to use):
2021-07-09 04:29:16 +02:00
2020-12-22 18:23:26 +01:00
* `build/radio/Release/`
* `build/recorder/Release/`
* `build/rtl_tcp_source/Release/`
* `build/spyserver_source/Release/`
* `build/airspyhf_source/Release/`
* `build/plutosdr_source/Release/`
* `build/audio_sink/Release/`
# Building on Linux / BSD
2021-07-09 04:29:16 +02:00
2021-06-28 02:22:51 +02:00
## Select which modules you wish to build
2021-07-09 04:29:16 +02:00
2021-06-28 02:22:51 +02:00
Depending on which module you want to build, you will need to install some additional dependencies.
2024-04-10 22:09:07 +02:00
Please refer to the module list table further down in this readme for the names, dependencies and build options of each module.
2021-06-28 02:22:51 +02:00
2024-04-10 22:09:07 +02:00
The build options are then passed to the cmake command as such `cmake .. -DOPTION_NAME_HERE=ON -DANOTHER_OPTION_HERE=OFF` etc...
2021-06-28 02:22:51 +02:00
2020-12-22 18:23:26 +01:00
## Install dependencies
2021-07-09 04:29:16 +02:00
2020-12-22 18:23:26 +01:00
* cmake
* fftw3
* glfw
* libvolk
* zstd
2021-04-24 18:59:57 +02:00
2021-06-28 02:22:51 +02:00
Next install dependencies based on the modules you wish to build (See previous step)
2020-12-22 18:23:26 +01:00
2020-12-23 19:23:47 +01:00
Note: make sure you're using GCC 8 or later as older versions do not have `std::filesystem` built-in.
2020-12-22 18:23:26 +01:00
## Building
2021-07-09 04:29:16 +02:00
2020-12-22 18:23:26 +01:00
replace `<N>` with the number of threads you wish to use to build
2021-07-09 04:29:16 +02:00
2020-12-22 18:23:26 +01:00
```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
2021-07-09 04:29:16 +02:00
2020-12-22 18:23:26 +01:00
```sh
sh ./create_root.sh
```
2020-12-14 01:07:30 +01:00
2020-12-22 18:23:26 +01:00
## Running for development
2021-07-09 04:29:16 +02:00
2020-12-22 18:23:26 +01:00
If you wish to install SDR++, skip to the next step
2020-12-14 01:07:30 +01:00
First run SDR++ from the build directory to generate a default config file
2021-07-09 04:29:16 +02:00
```
./sdrpp -r ../root_dev/
```
2021-04-24 18:59:57 +02:00
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:
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/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
```
2021-02-07 12:30:25 +01:00
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:
2021-07-09 04:29:16 +02:00
```json
...
2020-12-26 09:47:37 +01:00
"modulesDirectory": "./root_dev/modules",
...
2020-12-26 09:47:37 +01:00
"resourcesDirectory": "./root_dev/res",
...
```
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
2021-04-24 04:13:54 +02:00
Of course, 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:
2021-07-09 04:29:16 +02:00
2020-10-24 17:18:54 +02:00
```
2020-12-26 09:47:37 +01:00
./build/sdrpp -r root_dev
2020-10-24 17:18:54 +02:00
```
2021-04-24 18:59:57 +02:00
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:
2021-07-09 04:29:16 +02:00
2020-10-24 17:41:22 +02:00
```
2020-12-26 09:47:37 +01:00
./sdrpp -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++
2021-07-09 04:29:16 +02:00
2021-04-24 04:13:54 +02:00
To install SDR++, run the following command in your ``build`` folder:
2021-07-09 04:29:16 +02:00
2021-04-24 04:13:54 +02:00
```sh
2021-04-24 04:17:09 +02:00
sudo make install
```
2020-12-22 18:23:26 +01:00
2022-09-05 15:22:07 +02:00
# Building on MacOS
2022-10-18 11:34:11 +02:00
Warning: This is not for the faint of heart and the instructions are mostly untested. It is recommended to use the [nightly builds](https://www.sdrpp.org/nightly) instead.
## Install dependencies
The dependencies are exactly the same as for linux, see that section for the core dependencies as well as the module list for the per-module dependencies.
You will need to install the dependencies using Homebrew.
Make sure to install portaudio as it'll be needed later.
An example install command would be:
```sh
2022-11-12 02:19:53 +01:00
brew install libusb fftw glfw airspy airspyhf portaudio hackrf rtl-sdr libbladerf codec2 zstd
pip3 install mako
2022-10-18 11:34:11 +02:00
```
### Install volk
You will need to install volk from source. Follow the instructions on their repository. On M1 there are a few more manipulations needed.
## Build
You will need a few special cmake argument on top of the linux ones. You will need to enable the portaudio sink modules `-DOPT_BUILD_PORTAUDIO_SINK=ON -DOPT_BUILD_NEW_PORTAUDIO_SINK=ON` and disable the usual rtaudio sink `-DOPT_BUILD_AUDIO_SINK=OFF` as well as the option to tell SDR++ that it will run as a MacOS bundle `-DUSE_BUNDLE_DEFAULTS=ON`. On MacOS versions older than Catalina (10.15), you will also need to use the internal std::filesystem as the OS can't provide it `-DOPT_OVERRIDE_STD_FILESYSTEM=ON`.
Here is an example of build commands that will build almost all modules at the time of writing. You can always check the CI scripts for the latest arguments just in case but this should work. From the top of the SDRPlusPlus directory:
```sh
mkdir build
cd build
cmake .. -DOPT_BUILD_SOAPY_SOURCE=OFF -DOPT_BUILD_BLADERF_SOURCE=ON -DOPT_BUILD_AUDIO_SOURCE=OFF -DOPT_BUILD_AUDIO_SINK=OFF -DOPT_BUILD_PORTAUDIO_SINK=ON -DOPT_BUILD_NEW_PORTAUDIO_SINK=ON -DOPT_BUILD_M17_DECODER=ON -DUSE_BUNDLE_DEFAULTS=ON -DCMAKE_BUILD_TYPE=Release
2022-10-18 11:34:11 +02:00
make -j<N>
```
2022-10-19 11:02:23 +02:00
## Create bundle and install
2022-10-18 11:34:11 +02:00
From the top of the SDRPlusPlus directory:
```sh
2022-10-18 11:36:35 +02:00
sh make_macos_bundle.sh ./build ./SDR++.app
2022-10-18 11:34:11 +02:00
```
This will create a `SDR++.app` bundle that you can instal like any other MacOS app by dragging it into Applications.
2022-09-05 15:22:07 +02:00
2021-06-28 02:22:51 +02:00
# Module List
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).
## Sources
| 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 | ✅ | ✅ | ✅ |
2024-04-01 19:56:36 +02:00
| audio_source | Working | rtaudio | OPT_BUILD_AUDIO_SOURCE | ✅ | ✅ | ✅ |
| bladerf_source | Working | libbladeRF | OPT_BUILD_BLADERF_SOURCE | ⛔ | ✅ (not Debian Buster) | ✅ |
| file_source | Working | - | OPT_BUILD_FILE_SOURCE | ✅ | ✅ | ✅ |
| fobossdr_source | Beta | libfobos | OPT_BUILD_FOBOSSDR_SOURCE | ✅ | ✅ | ✅ |
| hackrf_source | Working | libhackrf | OPT_BUILD_HACKRF_SOURCE | ✅ | ✅ | ✅ |
| harogic_source | Beta | htra_api | OPT_BUILD_HAROGIC_SOURCE | ⛔ | ⛔ | ✅ |
| hermes_source | Beta | - | OPT_BUILD_HERMES_SOURCE | ✅ | ✅ | ✅ |
| limesdr_source | Working | liblimesuite | OPT_BUILD_LIMESDR_SOURCE | ⛔ | ✅ | ✅ |
2024-02-08 15:01:11 +01:00
| network_source | Unfinished | - | OPT_BUILD_NETWORK_SOURCE | ✅ | ✅ | ⛔ |
2024-01-31 23:34:40 +01:00
| perseus_source | Beta | libperseus-sdr | OPT_BUILD_PERSEUS_SOURCE | ⛔ | ✅ | ✅ |
| plutosdr_source | Working | libiio, libad9361 | OPT_BUILD_PLUTOSDR_SOURCE | ✅ | ✅ | ✅ |
2024-07-15 20:25:53 +02:00
| rfnm_source | Beta | librfnm | OPT_BUILD_RFNM_SOURCE | ⛔ | ✅ | ✅ |
| rfspace_source | Working | - | OPT_BUILD_RFSPACE_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 | ⛔ | ✅ | ✅ |
| sdrpp_server_source | Working | - | OPT_BUILD_SDRPP_SERVER_SOURCE | ✅ | ✅ | ✅ |
2024-04-10 22:09:07 +02:00
| soapy_source | Deprecated | soapysdr | OPT_BUILD_SOAPY_SOURCE | ⛔ | ⛔ | ⛔ |
2022-12-06 08:23:58 +01:00
| spectran_source | Unfinished | RTSA Suite | OPT_BUILD_SPECTRAN_SOURCE | ⛔ | ⛔ | ⛔ |
| spectran_http_source | Beta | - | OPT_BUILD_SPECTRAN_HTTP_SOURCE | ✅ | ✅ | ✅ |
| spyserver_source | Working | - | OPT_BUILD_SPYSERVER_SOURCE | ✅ | ✅ | ✅ |
| usrp_source | Beta | libuhd | OPT_BUILD_USRP_SOURCE | ⛔ | ⛔ | ✅ |
2021-06-28 02:22:51 +02:00
## Sinks
| Name | Stage | Dependencies | Option | Built by default| Built in Release | Enabled in SDR++ by default |
|--------------------|------------|--------------|------------------------------|:---------------:|:----------------:|:---------------------------:|
| android_audio_sink | Working | - | OPT_BUILD_ANDROID_AUDIO_SINK | ⛔ | ✅ | ✅ (Android only) |
| audio_sink | Working | rtaudio | OPT_BUILD_AUDIO_SINK | ✅ | ✅ | ✅ |
2021-08-03 21:37:35 +02:00
| network_sink | Working | - | OPT_BUILD_NETWORK_SINK | ✅ | ✅ | ✅ |
| new_portaudio_sink | Beta | portaudio | OPT_BUILD_NEW_PORTAUDIO_SINK | ⛔ | ✅ | ⛔ |
2022-10-18 11:09:22 +02:00
| portaudio_sink | Beta | portaudio | OPT_BUILD_PORTAUDIO_SINK | ⛔ | ✅ | ⛔ |
2021-06-28 02:22:51 +02:00
## Decoders
| Name | Stage | Dependencies | Option | Built by default| Built in Release | Enabled in SDR++ by default |
|---------------------|------------|--------------|-------------------------------|:---------------:|:----------------:|:---------------------------:|
| atv_decoder | Unfinished | - | OPT_BUILD_ATV_DECODER | ⛔ | ⛔ | ⛔ |
| dab_decoder | Unfinished | - | OPT_BUILD_DAB_DECODER | ⛔ | ⛔ | ⛔ |
2021-08-03 21:37:35 +02:00
| falcon9_decoder | Unfinished | ffplay | OPT_BUILD_FALCON9_DECODER | ⛔ | ⛔ | ⛔ |
2022-10-18 11:09:22 +02:00
| kgsstv_decoder | Unfinished | - | OPT_BUILD_KGSSTV_DECODER | ⛔ | ⛔ | ⛔ |
| m17_decoder | Working | - | OPT_BUILD_M17_DECODER | ⛔ | ✅ | ⛔ |
| meteor_demodulator | Working | - | OPT_BUILD_METEOR_DEMODULATOR | ✅ | ✅ | ⛔ |
2024-01-31 23:34:40 +01:00
| pager_decoder | Unfinished | - | OPT_BUILD_PAGER_DECODER | ⛔ | ⛔ | ⛔ |
| radio | Working | - | OPT_BUILD_RADIO | ✅ | ✅ | ✅ |
| weather_sat_decoder | Unfinished | - | OPT_BUILD_WEATHER_SAT_DECODER | ⛔ | ⛔ | ⛔ |
2021-06-28 02:22:51 +02:00
## Misc
| Name | Stage | Dependencies | Option | Built by default | Built in Release | Enabled in SDR++ by default |
|---------------------|------------|--------------|-----------------------------|:----------------:|:----------------:|:---------------------------:|
| discord_integration | Working | - | OPT_BUILD_DISCORD_PRESENCE | ✅ | ✅ | ⛔ |
2021-08-03 21:37:35 +02:00
| frequency_manager | Working | - | OPT_BUILD_FREQUENCY_MANAGER | ✅ | ✅ | ✅ |
| iq_exporter | Working | - | OPT_BUILD_IQ_EXPORTER | ✅ | ✅ | ⛔ |
| recorder | Working | - | OPT_BUILD_RECORDER | ✅ | ✅ | ✅ |
| rigctl_client | Unfinished | - | OPT_BUILD_RIGCTL_CLIENT | ✅ | ✅ | ⛔ |
2022-10-18 11:09:22 +02:00
| rigctl_server | Working | - | OPT_BUILD_RIGCTL_SERVER | ✅ | ✅ | ✅ |
| scanner | Beta | - | OPT_BUILD_SCANNER | ✅ | ✅ | ⛔ |
2022-10-18 11:09:22 +02:00
| scheduler | Unfinished | - | OPT_BUILD_SCHEDULER | ⛔ | ⛔ | ⛔ |
2021-06-28 02:22:51 +02:00
2021-07-13 20:59:38 +02:00
# Troubleshooting
2021-06-28 02:22:51 +02:00
First, please make sure you're running the latest automated build. If your issue is linked to a bug it is likely that is has already been fixed in later releases
2021-08-04 16:46:32 +02:00
## SDR++ crashes then it won't start again no matter what
This is a bug in 1.0.0 that was fixed in 1.0.1
2022-08-22 14:41:39 +02:00
In some cases, if a crash happened while the config was being saved, the config file would be corrupted and SDR++ would refuse to start because of it.
2021-08-04 16:46:32 +02:00
This has now been fixed. If a config file is corrupted it'll just reset it to its default state.
2021-06-28 02:22:51 +02:00
## "hash collision" error when starting
2021-07-13 20:59:38 +02:00
You likely installed the `soapysdr-module-all` package on Ubuntu/Debian. If not it's still a SoapySDR bug caused by multiple soapy modules coming in conflict. Uninstall anything related to SoapySDR then install soapysdr itself and only the soapy modules you actually need.
2021-06-28 02:22:51 +02:00
## "I don't see -insert module name here-, what's going on?"
If the module was included in a later update, it's not enabled in the config. The easiest way to fix this is just to delete the `config.json` file and let SDR++ recreate it (you will lose your setting relating to the main UI like VFO colors, zoom level and theme).
2021-07-13 20:59:38 +02:00
The best option however is to edit the config file to add an instance of the module you wish to have enabled (see the Module List).
2021-06-28 02:22:51 +02:00
## SDR++ crashes when stopping a RTL-SDR
This is a bug recently introduced by libusb1.4
To solve, this, simply downgrade to libusb1.3
## SDR++ crashes when starting a HackRF
2023-01-06 00:29:33 +01:00
If you also have the SoapySDR module enabled, this is a bug in libhackrf. It's caused by libhackrf not checking if it's already initialized.
2023-01-06 00:30:32 +01:00
The solution until a fixed libhackrf version is released is to disable the soapy_source module from SDR++. For this, go into the "Module Manager" menu and click the `-` button next to the row with "soapy_source". After that, restart SDR++.
2021-06-28 02:22:51 +02:00
## Issue not listed here?
If you still have an issue, please open an issue about it or ask on the discord. I'll try to respond as quickly as I can. Please avoid trying to contact me on every platform imaginable thinking I'll respond faster though...
2020-07-19 18:12:03 +02:00
# Contributing
2020-09-06 16:31:50 +02:00
2021-04-24 18:59:57 +02:00
Feel free to submit pull requests and report bugs via the GitHub issue tracker.
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
2021-07-09 04:29:16 +02:00
* Bob Logan
* [Christian Häusler](https://github.com/corvus-ch)
2021-08-31 18:39:48 +02:00
* Croccydile
2021-09-29 08:53:15 +02:00
* Dale L Puckett (K0HYD)
2021-02-10 21:35:56 +01:00
* [Daniele D'Agnelli](https://linkedin.com/in/dagnelli)
2024-02-10 20:59:37 +01:00
* [David Taylor (GM8ARV)](https://twitter.com/gm8arv)
2021-10-26 16:44:59 +02:00
* D. Jones
2023-03-13 17:29:37 +01:00
* Dexruus
2021-08-04 17:42:20 +02:00
* [EB3FRN](https://www.eb3frn.net/)
2021-08-31 18:39:48 +02:00
* Eric Johnson
2021-12-26 16:49:50 +01:00
* Ernest Murphy (NH7L)
2021-08-31 18:39:48 +02:00
* Flinger Films
2023-03-13 17:55:44 +01:00
* [Frank Werner (HB9FXQ)](https://twitter.com/HB9FXQ)
2022-03-28 22:25:26 +02:00
* gringogrigio
2023-03-13 17:29:37 +01:00
* Jeff Moe
2022-03-28 22:25:26 +02:00
* Joe Cupano
2023-03-13 17:29:37 +01:00
* KD1SQ
* Kezza
2022-03-28 22:25:26 +02:00
* Krys Kamieniecki
2021-08-31 18:39:48 +02:00
* Lee Donaghy
2022-03-28 22:25:26 +02:00
* Lee KD1SQ
* .lozenge. (Hank Hill)
2023-03-13 17:29:37 +01:00
* Martin Herren (HB9FXX)
2021-08-31 18:39:48 +02:00
* ON4MU
* [Passion-Radio.com](https://passion-radio.com/)
2022-04-21 20:25:44 +02:00
* Paul Maine
2023-03-13 17:29:37 +01:00
* Peter Betz
2021-03-08 16:38:48 +01:00
* [Scanner School](https://scannerschool.com/)
2023-03-13 17:29:37 +01:00
* Scott Palmer
* [SignalsEverywhere](https://signalseverywhere.com/)
2021-08-31 18:39:48 +02:00
* Syne Ardwin (WI9SYN)
* [W4IPA](https://twitter.com/W4IPAstroke5)
2023-03-13 17:29:37 +01:00
* William Arcand (W1WRA)
2024-02-10 20:59:37 +01:00
* William Pitchford
2023-03-13 17:29:37 +01:00
* [Yves Rougy](https://www.twitch.tv/yorzian)
2023-03-22 18:20:34 +01:00
* [Zipper](https://github.com/reppiZ)
2020-08-05 13:07:12 +02:00
## Contributors
2021-07-09 04:29:16 +02:00
2021-02-28 17:32:22 +01:00
* [Aang23](https://github.com/Aang23)
2020-12-22 18:23:26 +01:00
* [Alexsey Shestacov](https://github.com/wingrime)
2021-02-28 17:32:22 +01:00
* [Aosync](https://github.com/aosync)
2020-08-05 13:11:42 +02:00
* [Benjamin Kyd](https://github.com/benkyd)
* [Benjamin Vernoux](https://github.com/bvernoux)
2021-02-28 17:32:22 +01:00
* [Cropinghigh](https://github.com/cropinghigh)
2021-05-31 18:39:15 +02:00
* [Fred F4EED](http://f4eed.wordpress.com/)
2020-12-26 23:12:09 +01:00
* [Howard0su](https://github.com/howard0su)
2021-10-25 18:24:33 +02:00
* John Donkersley
* [Joshua Kimsey](https://github.com/JoshuaKimsey)
* [Manawyrm](https://github.com/Manawyrm)
* [Martin Hauke](https://github.com/mnhauke)
2021-07-03 16:15:18 +02:00
* [Marvin Sinister](https://github.com/marvin-sinister)
2021-07-08 22:41:36 +02:00
* [Maxime Biette](https://github.com/mbiette)
2021-02-28 17:32:22 +01:00
* [Paulo Matias](https://github.com/thotypous)
2020-08-12 16:43:44 +02:00
* [Raov](https://twitter.com/raov_birbtog)
* [Cam K.](https://github.com/Starman0620)
2021-08-22 17:18:15 +02:00
* [Shuyuan Liu](https://github.com/shuyuan-liu)
* [Syne Ardwin (WI9SYN)](https://esaille.me/)
2020-12-26 23:12:09 +01:00
* [Szymon Zakrent](https://github.com/zakrent)
2022-06-26 23:36:31 +02:00
* Youssef Touil
2021-07-03 20:31:54 +02:00
* [Zimm](https://github.com/invader-zimm)
2020-12-26 23:12:09 +01:00
2022-03-28 22:25:26 +02:00
2021-04-24 04:30:30 +02:00
## Libraries used
2021-07-09 04:29:16 +02:00
2020-09-06 16:31:50 +02:00
* [SoapySDR (PothosWare)](https://github.com/pothosware/SoapySDR)
* [Dear ImGui (ocornut)](https://github.com/ocornut/imgui)
* [json (nlohmann)](https://github.com/nlohmann/json)
* [rtaudio](http://www.portaudio.com/)
* [Portable File Dialogs](https://github.com/samhocevar/portable-file-dialogs)