Blog

Install SDR++ server on Raspberry Pi 4

Linux9 December 2024

SDR++ is a highly versatile software-defined radio (SDR) application that supports various SDR devices and platforms. By setting up an SDR++ server on a Raspberry Pi 4, you can connect to it from another computer on the network and use it remotely. In this guide, I'll will walk you through the steps to install and configure SDR++ on your Raspberry Pi 4.

Prerequisites

Before starting, ensure your Raspberry Pi 4 has the following:

  • Raspberry Pi OS (64 bit) or another compatible Linux distribution installed.
  • Up to date software packages.
  • Internet access for downloading dependencies and source codes from GitHub.

Step 1: Install dependencies

The first step is to install the required libraries and tools for compiling the source code. These dependencies are essential for building and running SDR++ and its supported SDR drivers. Run the following commands:

sudo apt update
sudo apt install git cmake libusb-1.0-0-dev libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libsoapysdr-dev libairspy-dev libairspyhf-dev libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev

These commands update the package list and install the necessary libraries for USB communication, FFT computations, driver support for various SDRs, and more.

Step 2: Download and install the RTL-SDR drivers

If you're using an RTL-SDR dongle, you'll need to build and install the appropriate drivers. Start by cloning the rtl-sdr-blog repository and follow the steps below:

git clone https://github.com/rtlsdrblog/rtl-sdr-blog.git
cd rtl-sdr-blog
mkdir build && cd build
cmake .. -DINSTALL_UDEV_RULES=ON
make -j$(nproc)
sudo make install
sudo cp ../rtl-sdr.rules /etc/udev/rules.d/
sudo ldconfig

This installs the RTL-SDR drivers for the RTL-SDR v3 or v4 dongle and the necessary udev rules, enabling the system to recognize your device automatically. The sudo ldconfig command ensures that the libraries are correctly linked.

Step 3: Download and install SDR++

Next, download and compile the SDR++ source code by cloning its GitHub repository:

git clone https://github.com/AlexandreRouma/SDRPlusPlus.git
cd SDRPlusPlus
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install

Step 4: Set up and run the SDR++ server

Once the compilation is complete, hopefully without errors, you can run SDR++ as a server. To start the server, execute the following command:

sdrpp -s

This starts SDR++ in server mode. Ensure that your Raspberry Pi's firewall and network settings permit connections to the server.

Step 5: Start SDR++ automatically on Raspberry Pi boot (optional)

To ensure SDR++ starts automatically when your Raspberry Pi reboots, you can use crontab. Follow these steps to configure it:

  1. Open the crontab configuration file for the current user:

    crontab -e
    

    If this is your first time using crontab, you'll be prompted to select an editor. Choose your preferred editor (e.g., nano or vim).

  2. Add the following line to the end of the file to run SDR++ in server mode at boot:

    @reboot /usr/bin/sdrpp -s
    
  3. Save and close the file. If you are using nano, you can press Ctrl + O, then Enter, and Ctrl + X to exit. For vim, type :wq instead, then hit Enter.

  4. Finally, reboot your Raspberry Pi to make these changes effective:

    sudo reboot
    

Conclusion

You now have a functional SDR++ server running on your Raspberry Pi 4. This setup may also work on the Raspberry Pi 5, though I haven't personally tested it. Enjoy your new SDR++ server!