This document will guide you through installing SDR applications on the platform built in the document: Installing drivers and support for the SDRplay RSP1A on a Raspberry Pi and depends on that installation.
This document is intended to be followed in the order it is written. If you want to skip installing one of applications, there may be some missing prerequisites.
sudo apt install mumble mumble-server
# Look to see that "Installed" does not appear after libusb-0.1-4 apt list -a libusb-0.1-4 # If it is installed, remove it: sudo apt remove libftdi1 libftdi-dev libusb-0.1-4 sudo apt autoremove
sudo apt-get install protobuf-compiler libopus-dev libspeexdsp1 libspeexdsp-dev libjpeg62-turbo libjpeg62-turbo-dev libconfig++9v5 libconfig++-dev libftdi1-2 libftdi1-dev libsndfile1-dev libsndfile1 libjpeg-dev libprotoc-dev liblimesuite-dev liblimesuite20.10-1
sudo ln -s /usr/include/libftdi1/ftdi.h /usr/include/ftdi.h sudo ln -s /usr/lib/arm-linux-gnueabihf/libftdi1.so.2.5.0 /usr/lib/arm-linux-gnueabihf/libftdi.so.1 sudo ln -s /usr/lib/arm-linux-gnueabihf/libftdi1.so.2.5.0 /usr/lib/arm-linux-gnueabihf/libftdi.so
cd ~/ git clone https://codeberg.org/qradiolink/qradiolink cd qradiolink/ # To get the last release # git checkout master # To get the latest version with recent changes (instead of git checkout master): git checkout next sh ./build_debian.sh
build/qradiolink # or from anywhere ~/qradiolink/build/qradiolink
sudo apt-get install freeglut3 freeglut3-dev libgtk2.0-dev libgtk-3-dev libtinyxml2.6.2v5
cd ~/ git clone https://github.com/jgaeddert/liquid-dsp cd liquid-dsp ./bootstrap.sh ./configure make -j 4 sudo make install sudo ldconfig
sudo apt-get install libasound2-dev portaudio19-dev cd ~/ Download http://www.music.mcgill.ca/~gary/rtaudio/release/rtaudio-5.2.0.tar.gz tar -zxvf rtaudio-5.2.0.tar.gz cd rtaudio-5.2.0 # ./configure --help # display the available options ./configure --with-jack --with-alsa --with-pulse mkdir build cd build cmake ../ make -j 4 sudo make install sudo ldconfig cd tests # Try one of these to see if it will play something. Press CTRL-C to exit. ./playsaw 1 48000 ./playsaw 1 44100 ./playsaw 2 44100 # 2 different sawtooth waveforms, one in each speaker # If you don't hear a sound from any of these, it may have selected the headphone output. # Set speakers as default pacmd set-default-sink 0
sudo apt install libgtk2.0-dev libgtk-3-dev
cd ~/ git clone --recurse-submodules https://github.com/wxWidgets/wxWidgets.git # Alternately, if you downloaded the archive to ~/ # tar -xvf wxWidgets-3.1.5.tar.bz2 # rename the install folder to wxWidgets cd wxWidgets/ mkdir -p ~/Develop/wxWidgets-staticlib ./autogen.sh ./configure --with-opengl --disable-glcanvasegl --disable-shared --enable-monolithic --with-libjpeg --with-libtiff --with-libpng --with-zlib --disable-sdltest --enable-unicode --enable-display --enable-propgrid --disable-webview --disable-webviewwebkit --prefix=`echo ~/Develop/wxWidgets-staticlib` CXXFLAGS="-std=c++0x" make -j4 sudo make install sudo ldconfig
cd ~/ git clone https://github.com/cjcliffe/CubicSDR.git cd CubicSDR mkdir build cd build # Works with HDMI, Headphones and Default cmake ../ -DOTHER_LIBRARIES:FILEPATH=/usr/lib/gcc/arm-linux-gnueabihf/10/libatomic.so -DCMAKE_BUILD_TYPE=Release -DwxWidgets_CONFIG_EXECUTABLE=~/Develop/wxWidgets-staticlib/bin/wx-config -DUSE_HAMLIB=1 -DUSE_AUDIO_PULSE=0 -DUSE_AUDIO_OSS=0 -DUSE_AUDIO_ALSA=1 make -j 4 # You can now run the build from the folder, note if you're on 64-bit linux it will be in x64/ x86/CubicSDR # Install CubicSDR (and launcher in Applications menu) sudo make install sudo ldconfig
# portaudio should have been installed for RtAudio. sudo apt install portaudio19-dev
export CXXFLAGS='-O2 -march=native -mtune=native' export CFLAGS='-O2 -march=native -mtune=native' cd ~/ git clone https://github.com/csete/gqrx.git gqrx cd gqrx mkdir build cd build cmake .. make -j 4 sudo make install sudo ldconfig
sudo apt-get install libopenal-dev libalut0 libalut-dev
pip install SpeechRecognition sudo apt install python3-pyaudio
cd ~/SpeechRecognition-3.10.0 sudo python3 setup.py install #Test installation: python3 import speech_recognition # There should be no error ^D to exit.
cd ~/Desktop git clone https://gitlab.com/righthalfplane/SdrGlut.git cd SdrGlut make -f makefileRaspbian Run the program: ./sdrglut.x or ~/Desktop/SdrGlut/sdrglut.x
sudo mousepad /etc/openal/alsoft.conf
sudo apt-get install alsoft-conf sudo alsoft-confClick on the Backend tab. Disable everything except ALSA and PortAudio. Make sure that ALSA is listed first. The distortion should be gone the next time you run the program.
cd ~/ git clone -b master https://github.com/jketterl/csdr.git cd csdr mkdir build cd build cmake .. make -j4 sudo make install cd ../.. sudo ldconfig
cd ~/ git clone -b master https://github.com/jketterl/pycsdr.git cd pycsdr sudo python3 setup.py install install_headers cd ..
cd ~/ git clone -b master https://github.com/jketterl/js8py.git cd js8py sudo python3 setup.py install cd .. sudo ldconfig
cd ~/ git clone -b master https://github.com/jketterl/owrx_connector.git cd owrx_connector mkdir build cd build cmake .. make -j4 sudo make install cd ../.. sudo ldconfig
cd ~/ git clone -b master https://github.com/jketterl/codecserver.git cd codecserver mkdir build cd build cmake .. make -j4 sudo make install cd ../.. # Move the service file to the correct location sudo mv /usr/local/lib/aarch64-linux-gnu/systemd/system/codecserver.service /lib/systemd/system sudo ldconfig # Create the codecserver user and set permissions: sudo adduser --system --group --no-create-home --home /nonexistent --quiet codecserver sudo usermod -aG dialout codecserver # The username "codecserver" is used for the systemd service unit. # Copy the configuration file sudo mkdir -p /usr/local/etc/codecserver sudo cp ~/codecserver/conf/codecserver.conf /usr/local/etc/codecserver # Add configuration for mbelib: sudo mousepad /usr/local/etc/codecserver/codecserver.conf # Add these 3 lines to the end of codecserver.conf: [device:mbelib] driver=mbelib unvoiced_quality=3 # Save and close the file. sudo systemctl daemon-reload sudo systemctl restart codecserver
cd ~/ git clone https://github.com/szechyjs/mbelib.git cd mbelib mkdir build; cd build cmake .. make -j $(nproc) sudo make install cd ~/ sudo ldconfig
cd ~/ git clone https://github.com/fventuri/codecserver-mbelib-module.git cd codecserver-mbelib-module mkdir build cd build cmake .. make -j $(nproc) sudo make install cd .. sudo ldconfig sudo systemctl restart codecserver
cd ~/ git clone -b master https://github.com/jketterl/digiham.git cd digiham mkdir build cd build cmake .. make -j4 sudo make install cd ../.. sudo ldconfig
cd ~/ git clone -b master https://github.com/jketterl/pydigiham.git cd pydigiham sudo python3 setup.py install cd ..
# Do not install this if the codec2 packages are installed. # If you install the freedv package, it will also install libhamlib4. cd ~/ git clone https://github.com/drowe67/codec2.git cd codec2 mkdir build cd build cmake .. make -j4 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 cd ../.. sudo ldconfig
sudo apt-get install libboost-program-options-dev cd ~/ git clone https://github.com/mobilinkd/m17-cxx-demod.git cd m17-cxx-demod mkdir build cd build cmake .. make -j4 sudo make install cd ../.. sudo ldconfig
sudo git clone https://github.com/hessu/aprs-symbols /usr/share/aprs-symbols
sudo mkdir /var/lib/openwebrx # If necessary, change the user from pi to your actual user name. sudo chown pi. /var/lib/openwebrx # Warning, This step will overwrite any existing user database. sudo sh -c "echo [] > /var/lib/openwebrx/users.json" # If necessary, change the user from pi to your actual user name. sudo chown pi. /var/lib/openwebrx/users.json sudo chmod 0600 /var/lib/openwebrx/users.json
cd ~/ git clone -b master https://github.com/jketterl/openwebrx.git cd openwebrx # Create an initial user for the web configuration interface. Replace [username] with the name you will be using. ./openwebrx.py admin adduser [username] # Enter and confirm the password
# Open the SDRPlay device once before running OpenWebRX to avoid a crash. SoapySDRUtil --probe="driver=sdrplay" # Start OpenWebRX sudo systemctl start codecserver cd ~/openwebrx ./openwebrx.py
http://localhost:8073 # Using the IP address of your Raspberry Pi, you can open it on another computer on your local network. ip address # IP addresses for all of your interfaces will be displayed. Substitute that for localhost in the URL as in the example below. http://192.168.1.12:8073 # If you can set up your router, you can access OpenWebRX from the Internet.