This document will guide you through installing SDR applications on the platform built in the document: Installing drivers for the SDRplay RSP1A and HackRF One on Raspberry Pi and Debian and depends on that installation.
# 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 libfftw3-single3 libfftw3-double3 python3-setuptools python3-paho-mqtt netcat-openbsd libsndfile1 liblapack3 libreadline8t64 gfortran libgfortran5 libgomp1 libasound2t64 ca-certificates libopus0 sudo apt-get install sox libtool libfftw3-dev libsamplerate-dev gnuplot gnuplot-x11 libudev-dev libprotobuf-dev libicu-dev
sudo apt-get install libfftw3-single3 libfftw3-double3 python3-setuptools python3-paho-mqtt netcat-openbsd libsndfile1 liblapack3 libreadline8 gfortran libgfortran5 libgomp1 libasound2 ca-certificates libopus0 sudo apt-get install sox libtool libfftw3-dev libsamplerate-dev gnuplot gnuplot-x11 libudev-dev libprotobuf-dev libicu-dev
sudo apt-get install libfftw3-single3 libfftw3-double3 python3-setuptools python3-paho-mqtt netcat-openbsd libsndfile1 liblapack3 libreadline8 gfortran libgfortran5 libgomp1 libasound2t64 ca-certificates libopus0 sudo apt-get install sox libtool libfftw3-dev libsamplerate-dev gnuplot gnuplot-x11 libudev-dev libprotobuf-dev libicu-dev
cd ~/ git clone https://github.com/jketterl/csdr.git cd csdr mkdir build cd build cmake .. make -j $(nproc) sudo make install cd ../.. sudo ldconfig
cd ~/ git clone https://github.com/jketterl/pycsdr.git cd pycsdr sudo python3 setup.py install install_headers cd ..
cd ~/ git clone https://github.com/js8call/js8call/ cd js8call # JS8Call has been ported to qt6. Use this version for qt5. git checkout v2.2.0-ga mkdir build cd build cmake .. make -j $(nproc) sudo make install cd ../.. sudo ldconfig
cd ~/ git clone https://github.com/jketterl/js8py.git cd js8py sudo python3 setup.py install cd ..
cd ~/ git clone https://github.com/jketterl/owrx_connector.git cd owrx_connector mkdir build cd build cmake .. make -j $(nproc) sudo make install cd ../.. sudo ldconfig
sudo apt-get install libprotobuf-dev protobuf-compiler libudev-dev cd ~/ git clone https://github.com/jketterl/codecserver.git cd codecserver mkdir build cd build cmake .. make -j $(nproc) sudo make install cd ../.. # For Raspberry Pi OS, Bullseye only: move the service file to the correct location (other systems should work without this) 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
# 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 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 https://github.com/jketterl/digiham.git # For Trixie and newer OSes mousepad ~/digiham/CMakeLists.txt # On line 11, change set(CMAKE_CXX_STANDARD 11) # To set(CMAKE_CXX_STANDARD 17) # Save and close the file. cd digiham mkdir build cd build cmake .. make -j $(nproc) sudo make install cd ../.. sudo ldconfig
cd ~/ git clone https://github.com/jketterl/pydigiham.git cd pydigiham sudo python3 setup.py install cd ..
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
sudo apt-get install libboost-program-options-dev libgtest-dev cd ~/ git clone https://github.com/mobilinkd/m17-cxx-demod.git cd m17-cxx-demod mkdir build cd build cmake .. make -j $(nproc) 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 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
# 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.