SDRangel is an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware. There are many analog and digital plugins. Transmit is supported on devices with that capability.
This document will guide you through installing SDRangel on the platform built in the Installing drivers and support for the SDRplay RSP1A on a Raspberry Pi document for your operating system and depends on that installation. This should work for the 64 bit version also.
This procedure is based on https://github.com/f4exb/sdrangel/wiki/Compile-from-source-in-Linux.
The documentation is on the wiki: https://github.com/f4exb/sdrangel/wiki.
# For a 64-bit operating system on a Raspberry Pi 4: export CXXFLAGS='-O3 -mtune=cortex-a72' export CFLAGS='-O3 -mtune=cortex-a72' # For a 64-bit operating system on a Raspberry Pi 5: export CXXFLAGS='-O3 -mtune=cortex-a76' export CFLAGS='-O3 -mtune=cortex-a76' # For other operating systems: export CXXFLAGS='-O3 -march=native -mtune=native' export CFLAGS='-O3 -march=native -mtune=native'
sudo apt-get install libopencv-dev libxml2-dev libavcodec-dev libavformat-dev graphviz bison flex ffmpeg libopus-dev libfaad-dev libqt5webengine5 qtwebengine5-dev qtbase5-private-dev libqt5svg5-dev libhidapi-dev libsamplerate0-dev libqt5gamepad5-dev libtool libflac-dev zlib1g-dev libasound2-dev zlib1g zlib1g-dev
sudo apt install espeak libespeak1 speech-dispatcher-espeak libqt5texttospeech5 libqt5texttospeech5-dev qtbase5-dev qtdeclarative5-dev qtspeech5-speechd-plugin
sudo mkdir -p /opt/build sudo chown $USER:users /opt/build sudo mkdir -p /opt/install sudo chown $USER:users /opt/install
mkdir -p ~/SDRangel #APT #Aptdec is a FOSS program that decodes images transmitted by NOAA weather satellites. cd ~/SDRangel git clone https://github.com/srcejon/aptdec.git cd aptdec git checkout libaptdec git submodule update --init --recursive mkdir build; cd build cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/aptdec .. make -j $(nproc) install #CM265cc cd ~/SDRangel git clone https://github.com/f4exb/cm256cc.git cd cm256cc git reset --hard 6f4a51802f5f302577d6d270a9fc0cb7a1ee28ef mkdir build; cd build cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/cm256cc .. make -j $(nproc) install #LibDAB cd ~/SDRangel git clone https://github.com/srcejon/dab-cmdline cd dab-cmdline/library git checkout msvc mkdir build; cd build cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libdab .. make -j $(nproc) install #MBElib # If MBELIB is already installed, please skip this step. cd ~/ git clone https://github.com/szechyjs/mbelib.git cd mbelib mkdir build; cd build cmake .. make -j $(nproc) sudo make install #SerialDV cd ~/SDRangel git clone https://github.com/f4exb/serialDV.git cd serialDV git reset --hard "v1.1.5" mkdir build; cd build cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/serialdv .. make -j $(nproc) install #DSDcc cd ~/SDRangel git clone https://github.com/f4exb/dsdcc.git cd dsdcc git reset --hard "v1.9.6" mkdir build; cd build cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/dsdcc -DUSE_MBELIB=ON -DLIBSERIALDV_INCLUDE_DIR=/opt/install/serialdv/include/serialdv -DLIBSERIALDV_LIBRARY=/opt/install/serialdv/lib/libserialdv.so .. make -j $(nproc) install #Codec2/FreeDV # If codec2/freedv is already installed, please skip this step. sudo apt install libspeexdsp-dev libsamplerate0-dev cd ~/ git clone https://github.com/drowe67/codec2.git cd codec2 mkdir build cd build cmake .. make -j $(nproc) sudo make install # manually install freedv_rx since it's not part of the default install package sudo install -m 0755 src/freedv_rx /usr/local/bin sudo install -m 0755 src/freedv_tx /usr/local/bin cd ../.. sudo ldconfig #SGP4 cd ~/SDRangel git clone https://github.com/dnwrnr/sgp4.git cd sgp4 mkdir build; cd build cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/sgp4 .. make -j $(nproc) install #LibSigMF #For Trixie and Ubuntu 24.04 and higher, LibSigMF will not compile with compiler optimization flags set. unset CXXFLAGS unset CFLAGS cd ~/SDRangel git clone https://github.com/f4exb/libsigmf.git cd libsigmf git checkout "new-namespaces" mkdir build; cd build cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libsigmf .. make -j $(nproc) install #Restore the compiler flags from the beginning of this procedure. #GGMorse cd ~/SDRangel git clone https://github.com/ggerganov/ggmorse.git cd ggmorse mkdir build; cd build cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/ggmorse -DGGMORSE_BUILD_TESTS=OFF -DGGMORSE_BUILD_EXAMPLES=OFF .. make -j $(nproc) install sudo ldconfig
cd ~/SDRangel git clone https://github.com/f4exb/sdrangel.git cd sdrangel mkdir build; cd build cmake -Wno-dev -DDEBUG_OUTPUT=ON -DRX_SAMPLE_24BIT=ON \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DHACKRF_DIR=/usr/local \ -DRTLSDR_DIR=/usr/lib/aarch64-linux-gnu \ -DSOAPYSDR_DIR=/usr/local \ -DUHD_DIR=/usr/local \ -DAPT_DIR=/opt/install/aptdec \ -DCM256CC_DIR=/opt/install/cm256cc \ -DDSDCC_DIR=/opt/install/dsdcc \ -DSERIALDV_DIR=/opt/install/serialdv \ -DSGP4_DIR=/opt/install/sgp4 \ -DLIBSIGMF_DIR=/opt/install/libsigmf \ -DDAB_DIR=/opt/install/libdab \ -DGGMORSE_DIR=/opt/install/ggmorse \ -DCMAKE_INSTALL_PREFIX=/opt/install/sdrangel .. # If make fails, it could be a memory issue. Try make -j1 install make -j4 install sudo ldconfig
cd ~/.config/ # If you have not run SDRangel yet, create the settings directory. mkdir f4exb cd f4exb # Generate a new wisdom file for FFT sizes: 128, 256, 512, 1024, 2048, 4096, 8192, 16384 and 32768. # This will take a very long time. fftwf-wisdom -n -o fftw-wisdom 128 256 512 1024 2048 4096 8192 16384 32768
pactl load-module module-null-sink sink_name=VirtualRx format=s16le channels=2 rate=48000 sink_properties=device.description="VirtualRx" pactl load-module module-null-sink sink_name=VirtualTx format=s16le channels=2 rate=48000 sink_properties=device.description="VirtualTx"
/opt/install/sdrangel/bin/sdrangel --soapy --fftwf-wisdom ~/.config/f4exb/fftw-wisdom
~/SDRangel/voxangel_1.1/voxangel.py 1 0 0 5 1100