SDR++ is a cross-platform and open source SDR software with the aim of being bloat free and simple to use.
- Patreon
- Discord Server
- IRC:
#sdrpp
(libera.chat) NO LONGER ACTIVE, JOIN DISCORD INSTEAD
Features
- Multi VFO
- Wide hardware support (both through SoapySDR and dedicated modules)
- SIMD accelerated DSP
- Cross-platform (Windows, Linux, OSX and BSD)
- Full waterfall update when possible. Makes browsing signals easier and more pleasant
- Modular design (easily write your own plugins)
Installing
MacOS (Apple Silicon M1, M2)
Download the app bundle from the latest nightly build
then install the SDR++.app
bundle by dragging it into Applications.
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 | |||
bladerf_source | Working | libbladeRF | OPT_BUILD_BLADERF_SOURCE | |||
file_source | Working | - | OPT_BUILD_FILE_SOURCE | |||
hackrf_source | Working | libhackrf | OPT_BUILD_HACKRF_SOURCE | |||
hermes_source | Beta | - | OPT_BUILD_HERMES_SOURCE | |||
limesdr_source | Working | liblimesuite | OPT_BUILD_LIMESDR_SOURCE | |||
perseus_source | Beta | libperseus-sdr | OPT_BUILD_PERSEUS_SOURCE | |||
plutosdr_source | Working | libiio, libad9361 | OPT_BUILD_PLUTOSDR_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 | |||
soapy_source | Working | soapysdr | OPT_BUILD_SOAPY_SOURCE | |||
spectran_source | Unfinished | RTSA Suite | OPT_BUILD_SPECTRAN_SOURCE | |||
spectran_http_source | Unfinished | - | OPT_BUILD_SPECTRAN_HTTP_SOURCE | |||
spyserver_source | Working | - | OPT_BUILD_SPYSERVER_SOURCE | |||
usrp_source | Beta | libuhd | OPT_BUILD_USRP_SOURCE |
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 | |||
audio_sink | Working | rtaudio | OPT_BUILD_AUDIO_SINK | |||
network_sink | Working | - | OPT_BUILD_NETWORK_SINK | |||
new_portaudio_sink | Beta | portaudio | OPT_BUILD_NEW_PORTAUDIO_SINK | |||
portaudio_sink | Beta | portaudio | OPT_BUILD_PORTAUDIO_SINK |
Decoders
Name | Stage | Dependencies | Option | Built by default | Built in Release | Enabled in SDR++ by default |
---|---|---|---|---|---|---|
atv_decoder | Unfinished | - | OPT_BUILD_ATV_DECODER | |||
dmr_decoder | Unfinished | - | OPT_BUILD_DMR_DECODER | |||
falcon9_decoder | Unfinished | ffplay | OPT_BUILD_FALCON9_DECODER | |||
kgsstv_decoder | Unfinished | - | OPT_BUILD_KGSSTV_DECODER | |||
m17_decoder | Beta | - | OPT_BUILD_M17_DECODER | |||
meteor_demodulator | Working | - | OPT_BUILD_METEOR_DEMODULATOR | |||
radio | Working | - | OPT_BUILD_RADIO | |||
weather_sat_decoder | Unfinished | - | OPT_BUILD_WEATHER_SAT_DECODER |
Misc
Name | Stage | Dependencies | Option | Built by default | Built in Release | Enabled in SDR++ by default |
---|---|---|---|---|---|---|
discord_integration | Working | - | OPT_BUILD_DISCORD_PRESENCE | |||
frequency_manager | Working | - | OPT_BUILD_FREQUENCY_MANAGER | |||
recorder | Working | - | OPT_BUILD_RECORDER | |||
rigctl_client | Unfinished | - | OPT_BUILD_RIGCTL_CLIENT | |||
rigctl_server | Working | - | OPT_BUILD_RIGCTL_SERVER | |||
scanner | Beta | - | OPT_BUILD_SCANNER | |||
scheduler | Unfinished | - | OPT_BUILD_SCHEDULER |
Troubleshooting
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
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
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.
This has now been fixed. If a config file is corrupted it'll just reset it to its default state.
"hash collision" error when starting
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.
"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).
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).
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
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.
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++.
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...
Contributing
Feel free to submit pull requests and report bugs via the GitHub issue tracker. I will soon publish a contributing.md listing the code style to use.
Credits
Patrons
- Bob Logan
- Christian Häusler
- Croccydile
- Dale L Puckett (K0HYD)
- Daniele D'Agnelli
- D. Jones
- Dexruus
- EB3FRN
- Eric Johnson
- Ernest Murphy (NH7L)
- Flinger Films
- Frank Werner (HB9FXQ)
- gringogrigio
- Jeff Moe
- Joe Cupano
- KD1SQ
- Kezza
- Krys Kamieniecki
- Lee Donaghy
- Lee KD1SQ
- .lozenge. (Hank Hill)
- Martin Herren (HB9FXX)
- ON4MU
- Passion-Radio.com
- Paul Maine
- Peter Betz
- Scanner School
- Scott Palmer
- SignalsEverywhere
- Syne Ardwin (WI9SYN)
- W4IPA
- William Arcand (W1WRA)
- Yves Rougy
- Zipper
Contributors
- Aang23
- Alexsey Shestacov
- Aosync
- Benjamin Kyd
- Benjamin Vernoux
- Cropinghigh
- Fred F4EED
- Howard0su
- John Donkersley
- Joshua Kimsey
- Martin Hauke
- Marvin Sinister
- Maxime Biette
- Paulo Matias
- Raov
- Cam K.
- Shuyuan Liu
- Syne Ardwin (WI9SYN)
- Szymon Zakrent
- Tobias Mädel
- Youssef Touil
- Zimm