SDR++, The bloat-free SDR software
 
 
 
 
 
Go to file
Howard Su ef36283370 Add instruction for Linux 2020-10-24 23:41:40 +08:00
core Merge pull request #28 from howard0su/experimental 2020-10-24 14:55:41 +02:00
demo Save before changes 2020-10-01 01:21:15 +02:00
file_source new fixes 2020-10-20 00:32:17 +02:00
radio Push before merge 2020-10-22 02:33:50 +02:00
recorder Added baseband recording 2020-10-22 12:53:46 +02:00
root new fixes 2020-10-20 00:32:17 +02:00
root_dev Fixed typo in root CMakeLists.txt 2020-10-24 15:33:00 +02:00
rtl_tcp_source Fixed scripting + cleaner code + fixed RTLTCP 2020-10-07 22:44:54 +02:00
soapy Consolidate Linux and OSX build 2020-10-23 10:53:48 +08:00
source_demo New module system 2020-10-01 13:46:12 +02:00
src new modole system 2020-09-19 12:48:34 +02:00
win32 Push before merge 2020-09-06 15:39:09 +02:00
.gitignore Use pkg for every module, and link them static 2020-10-23 10:37:10 +08:00
CMakeLists.txt Fixed typo in root CMakeLists.txt 2020-10-24 15:33:00 +02:00
license added license 2020-07-20 00:43:36 +02:00
prepare_root.bat new fixes 2020-10-20 00:32:17 +02:00
prepare_root.sh make prepare_root.sh a proper program and take advantage of globbing 2020-10-24 09:44:15 +02:00
readme.md Add instruction for Linux 2020-10-24 23:41:40 +08:00

readme.md

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.

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

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.

Credits

Patrons

Contributors

Libaries used