Building a Software-Defined Radio Environment with radioconda

category: gnss
tags: pocketsdr

Introduction

radioconda is an open-source software that enables users to build a complete PC environment for software-defined radio (SDR) in one go.

In the past, building a GNU Radio environment was challenging because it required matching the versions of various dependent software. Although tools like PyBOMS (Python Build Overlay Managed Build System) existed for GNU Radio environment setup, they were almost exclusively built on Linux systems.

In this article, to use GNSS open-source software Pocket SDR v0.15 or later, I installed radioconda on Windows 11, Debian GNU/Linux 13, and macOS Tahoe 26.6.2.

Installation on Windows

Installing radioconda on Windows is straightforward. You can either download radioconda-Windows-x86_64.exe from the installer page and run it, or use the Windows standard package manager winget. Here, I used winget.

winget install ryanvolz.radioconda

After installation is complete, a radioconda item appears in the Start menu. GNU Radio Companion (for building software-defined radio with block diagrams) and command prompts for using Pocket SDR can be launched from the menus under this item.

Installation on Linux

Like Windows, you can install radioconda on Linux using the installer or a package manager like apt. Here, considering running Pocket SDR headlessly (without a monitor or keyboard connected) and accessing it remotely, I performed a minimal installation using apt.

apt update
apt install git gcc g++ make libusb-1.0-0-dev libfftw3-dev python3 libsoapysdr-dev soapysdr-tools soapysdr-module-all

I installed it following the README.md instructions for Pocket SDR and confirmed that GPS signal reception was working.

installing radioonda on macOS

Installation on macOS

After backing up the .bashrc file in the home directory, I performed the installation using the installer, since the installer modifies this file.

radioconda uses anaconda, a Python environment switching tool. It was able to coexist with pyenv, another environment switching tool I regularly use.

I downloaded the command-line shell script radioconda-MacOSX-arm64.sh from the installer page and ran it. By default, it installs to $HOME/radioconda directly under the home directory. Uninstallation is simply a matter of deleting this directory.

After running bash radioconda-MacOSX-arm64.sh in the terminal, I answered all the questions with default settings (by simply pressing the return key). I also accepted the default answer for the final question “May I modify your .bashrc?”.

installing radioonda on macOS

I then closed and reopened the terminal. Since .bashrc was modified, anaconda is executed, the prompt changes to (base) %, and Python from radioconda now runs. Running conda deactivate restores the original environment, but entering this command every time is tedious.

Therefore, I decided to run conda activate base only when using GNU Radio or Pocket SDR, and enter conda deactivate to return to the original environment after use.

conda deactivate
conda config --set auto_activate_base false

I moved the portion of .bashrc that was modified to .zprofile.

However, in my environment, radioconda did not install correctly.

conda activate base
python -c "import numpy; print(numpy.__version__)"
python -c "from gnuradio import gr; print('GNU Radio Python OK')"

installing radioonda on macOS

Neither the Python numpy module nor the gnuradio module worked. So I updated conda-forge, openblas, libgfortran, and libgfortran5 using the following method:

conda install -c conda-forge openblas libgfortran libgfortran5

With this update, GNU Radio Companion also started working correctly.

installing radioonda on macOS

On macOS, it appears that modifying the Makefile is necessary to build the Pocket SDR command-line tools. I am currently investigating whether there is a way to run these command-line tools on a macOS PC without installing radioconda.


Related article(s):