core | ||
demo | ||
file_source | ||
radio | ||
recorder | ||
root | ||
root_dev | ||
rtl_tcp_source | ||
soapy | ||
source_demo | ||
src | ||
win32 | ||
.gitignore | ||
CMakeLists.txt | ||
license | ||
prepare_root.bat | ||
prepare_root.sh | ||
readme.md |
SDR++, The bloat-free SDR software.
SDR++ is a cross-platform and open source SDR software with the aim of being bloat free and simple to use.
Current Features
- 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
Comming soon
- Multi-VFO
- Plugins
- Digital demodulators and decoders
- 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
- Switchable fft size
- Bias-T enable/disable
- other small customisation options
- Save waterfall and demod settings between sessions
- "Hide sidebar" option
- Input filter bandwidth option
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);
Building on Windows
Requirements
- cmake
- vcpkg (for the packages listed below)
- fftw3
- portaudio
- glfw
- glew
- PothosSDR (for libvolk and SoapySDR)
The build
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
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
.
Building on Linux
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"
}
Building on OSX
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.
The build
mkdir build
cd build
cmake ..
cmake --build . --config Release
Building on OpenBSD
Install requirements
pkg_add fftw3-float glew glfw portaudio-svn
# install volk and SoapySDR manually
The build
mkdir build
cd build
cmake --clang ..
make
cd ..
./prepare_root.sh
cp -Rf root root_dev # if are in dev
mv root/modules ./
Run SDRPP with build/sdrpp
.
Modify root_dev/modules_list.json 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"
}
Contributing
Feel free to issue pull request and report bugs via the github issues. I will soon publish a contributing.md listing the code style to use.