SDRPlusPlus/readme.md

158 lines
4.1 KiB
Markdown
Raw Normal View History

2020-07-19 18:12:03 +02:00
# SDR++, The bloat-free SDR software.
2020-08-05 23:27:39 +02:00
![Screenshot](https://i.imgur.com/Kv7GW3l.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-07-19 18:12:03 +02:00
## Current Features
2020-07-19 18:09:59 +02:00
* Uses SoapySDR for wide hardware support
* Hardware accelerated graphics (OpenGL + ImGui)
* SIMD accelerated DSP (parts of the DSP are still missing)
* Cross-platform
* Full waterfall update when possible. Makes browsing signals easier and more pleasant
2020-07-19 18:12:03 +02:00
## Comming soon
2020-07-19 18:09:59 +02:00
* Multi-VFO
* Plugins
* Digital demodulators and decoders
2020-07-19 18:23:00 +02:00
* Quick replay (replay last n seconds, cool if you missed a short signal)
## Small things to add
* Switchable bandwidth for demodulators
* Switchable audio output device and sample rate
* Recording
* Light theme (I know you weirdos exist lol)
* Waterfall color scheme editor
2020-07-19 21:26:37 +02:00
* Switchable fft size
* Bias-T enable/disable
* other small customisation options
* Save waterfall and demod settings between sessions
* "Hide sidebar" option
2020-07-19 22:00:01 +02:00
* Input filter bandwidth option
2020-07-19 21:26:37 +02:00
## Known issues (please check before reporting)
* Random crashes (yikes)
* Gains aren't stepped
* The default gains might contain a bogus value before being adjusted
* Clicks in the audio
* In some cases, it takes a long time to select a device (RTL-SDR in perticular)
* Min and Max buttons can get unachievable values (eg. min > max or min = max);
2020-07-19 18:09:59 +02:00
2020-07-19 18:12:03 +02:00
# Building on Windows
## Requirements
2020-07-19 18:09:59 +02:00
* cmake
* vcpkg (for the packages listed below)
* fftw3
* portaudio
* glfw
* glew
* PothosSDR (for libvolk and SoapySDR)
2020-08-05 12:50:34 +02:00
## The build
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-08-05 12:50:34 +02:00
## Copying over needed directories
The last step of the build process is copying the `bandplans` and `res` directories to the output directory.
If you followed the steps above, it should be `build/Release`.
2020-07-19 18:12:03 +02:00
# Building on Linux
2020-10-24 17:41:22 +02:00
## install requirements
On Debian/Ubtuntu system:
apt install libglew-dev libglfw3-dev libfftw3-dev libvolk1-dev portaudio19-dev libsoapysdr-dev gcc
## The build
```
mkdir build
cd build
cmake ..
make
```
## Modify root_dev/modules_list.json
If the content is different than the following, change it.
```
{
"Radio": "./radio/radio.so",
"Recorder": "./recorder/recorder.so",
"Soapy": "./soapy/soapy.so",
"RTLTCPSource": "./rtl_tcp_source/rtl_tcp_source.so"
}
```
2020-07-19 18:09:59 +02:00
2020-07-19 18:12:03 +02:00
# Building on OSX
2020-10-22 02:28:43 +02:00
## Install requirements
```
brew tap pothosware/homebrew-pothos
brew install volk glew glfw fftw portaudio
brew install soapysdr
```
You can install additional soapy device support based on your hardware.
2020-10-24 17:18:54 +02:00
2020-10-24 17:34:18 +02:00
## The build
2020-10-22 02:28:43 +02:00
```
mkdir build
cd build
cmake ..
cmake --build . --config Release
```
2020-07-19 18:09:59 +02:00
2020-10-24 17:18:54 +02:00
# Building on OpenBSD
## Install requirements
```
pkg_add fftw3-float glew glfw portaudio-svn
# install volk and SoapySDR manually
```
2020-10-24 17:34:18 +02:00
2020-10-24 17:18:54 +02:00
## The build
```
mkdir build
cd build
cmake --clang ..
2020-10-24 17:34:18 +02:00
make
cd ..
./prepare_root.sh
cp -Rf root root_dev # if are in dev
mv root/modules ./
2020-10-24 17:18:54 +02:00
```
2020-10-24 18:56:32 +02:00
## Run SDRPP with `build/sdrpp`.
Modify root_dev/modules_list.json
2020-10-24 17:41:22 +02:00
If the content is different than the following, change it.
```
{
"Radio": "./radio/radio.dylib",
"Recorder": "./recorder/recorder.dylib",
"Soapy": "./soapy/soapy.dylib",
"RTLTCPSource": "./rtl_tcp_source/rtl_tcp_source.dylib"
}
```
2020-10-24 17:34:18 +02:00
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-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-10-24 17:18:54 +02:00
* [portaudio (PortAudio community)](http://www.portaudio.com/)