element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products & Partners
    Products & Partners
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
RoadTests & Reviews
  • Products & Partners
  • More
RoadTests & Reviews
Review Blogs Raspberry Pi CM5 roadtest - SDR++
  • Blogs
  • Forum
  • Documents
  • RoadTests
  • Reviews
  • Polls
  • Files
  • Members
  • Sub-Groups
  • More
  • Cancel
  • New
Join RoadTests & Reviews to participate - click to join for free!
  • Share
  • More
  • Cancel
  • Author Author: gpolder
  • Date Created: 8 Oct 2026 9:00 PM Date Created
  • Views 17 views
  • Likes 2 likes
  • Comments 0 comments
Related
Recommended
  • software defined radio
  • Raspberry Pi CM5

Raspberry Pi CM5 roadtest - SDR++

gpolder
gpolder
8 Oct 2026
Raspberry Pi CM5 roadtest - SDR++

image

In my previous CM5 RoadTest articles I covered the initial setup of the Raspberry Pi Compute Module 5 and the installation and testing of the RTL-SDR. The next step was to try SDR++, one of the more versatile SDR applications available for Linux. Although a growing number of SDR applications are becoming available, I decided to start with SDR++ because it is lightweight, fast, and straightforward to use. Most importantly for my setup, it offers native support for the USRP, without requiring the additional SoapySDR abstraction layer. This makes it a logical starting point for testing both my RTL-SDR dongle and the USRP B205mini-i on the Raspberry Pi CM5.

This article is a little later than originally planned, because in the meantime, I also worked on a proper tuning control for the SDR. I had seen the approach taken by s1m0n3t, who built a standalone touchscreen SDR receiver using SDR++ together with a conventional rotary encoder and push buttons, connected to the GPIO port (https://community.element14.com/products/roadtest/rv/roadtest_reviews/1930/building-a-standalone-touchscreen-sdr-receiver-on-the-raspberry-pi-cm5).

I decided to take a rather different approach. Instead of using a conventional mechanical encoder, I built a high-resolution optical encoder interface using a very small Digispark ATtiny85. The encoder appears to the computer as a standard USB mouse wheel, making it independent of the particular SDR software being used. The complete project is described in my article Optical rotary encoder as a USB mouse wheel for SDR.

image

Installing SDR++

My first thought was to use one of the precompiled SDR++ packages, but from the README on its github repository (https://github.com/AlexandreRouma/SDRPlusPlus) I learned that the precompiled packages did not contain the USRP support by default. Therefore I decided to compile SDR++ from source. This also had the advantage that I could explicitly enable other SDR sources I wanted to test.

Building SDR++ from source

The first step was to install the compiler and the required development libraries. This included the libraries for RTL-SDR, FFTW, VOLK, RtAudio and the graphical interface.

sudo apt install build-essential cmake pkg-config git \
  libfftw3-dev libglfw3-dev libglew-dev libvolk-dev \
  libzstd-dev librtaudio-dev librtlsdr-dev rtl-sdr \
  pipewire-alsa

For compiling the USRP software module, I installed the UHD development package as well. This brought in a considerable number of additional SDR and development packages, but it meant that UHD support could be enabled when compiling SDR++.

sudo apt install libuhd-dev

I then cloned the SDR++ source repository and configured a separate build directory. For this test I enabled the USRP source while leaving several other SDR sources disabled.

git clone https://github.com/AlexandreRouma/SDRPlusPlus.git

cd SDRPlusPlus
mkdir build
cd build

cmake .. \
  -DOPT_BUILD_AIRSPY_SOURCE=OFF \
  -DOPT_BUILD_AIRSPYHF_SOURCE=OFF \
  -DOPT_BUILD_HACKRF_SOURCE=OFF \
  -DOPT_BUILD_PLUTOSDR_SOURCE=OFF \
  -DOPT_BUILD_USRP_SOURCE=ON

The configuration completed successfully. In particular, CMake found both the RTL-SDR library and UHD:

-- Checking for module 'librtlsdr'
--   Found librtlsdr, version 2.0.3
-- Checking for module 'libusb-1.0'
--   Found libusb-1.0, version 1.0.28
-- Checking for module 'uhd'
--   Found uhd, version 4.8.0.0+ds1-2
-- Configuring done
-- Generating done

The actual compilation was then surprisingly uneventful and quick. Using three parallel jobs, the complete build finished successfully.

make -j3

Finally, I installed the resulting application:

sudo make install

SDR++ was installed as a native application, including the main executable, libraries, plugins, band plans, themes and icons. So, unlike the first attempt with the precompiled package, I now had a working SDR++ installation on the CM5. It even was added to the Raspberry Pi OS 'Other' Menu.

image

First tests with the RTL-SDR

The first and most important test was with the RTL-SDR. This worked very well. SDR++ started normally, the RTL-SDR was recognised and I could use the CM5 as an SDR receiver without any obvious problems.

This is probably the most interesting result of this part of the RoadTest. The CM5 has no problem running a modern SDR application such as SDR++, while simultaneously driving the 1280 × 800 display. The combination makes for a surprisingly capable little SDR platform.

image

The first USRP test

I also tried the same installation with my USRP B205mini-i. For this first test, however, the result was not successful. Although UHD was found during the SDR++ configuration and the USRP source was included in the build, I was not able to get the B205mini-i working with SDR++.

For now I will leave it at that. The USRP deserves a separate investigation, and I will report on that in a later article rather than mixing the troubleshooting into this first SDR++ test.

Bottom line

Getting SDR++ onto the CM5 required a little more work than simply installing a precompiled package, mainly since I needed USRP support that was not availible in the precompiled package. Building SDR++ from source proved to be a straightforward and quick alternative.

Once installed, the result was encouraging. SDR++ runs very well on the CM5 and the RTL-SDR works great. The first attempt with the USRP B205mini-i was unsuccessful, but I will investigate that separately.

Combined with the optical USB tuning knob, the CM5 is starting to look much more like a real standalone SDR platform rather than simply a Raspberry Pi running an SDR application. That makes this a promising direction for the remainder of the RoadTest.

  • Sign in to reply
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube