Software radio distribution and installer for conda
Radioconda is a software distribution and installer for conda, designed to provide a comprehensive environment for software-defined radio (SDR) applications. It includes tools like GNU Radio, gqrx, inspectrum, and support for various SDR devices such as ADALM-PLUTO, Airspy, BladeRF, Ettus USRPs, Funcube Dongle Pro, HackRF, LimeSDR, Mirics MSi001/MSi2500, Red Pitaya, RFSpace/NetSDR/CloudSDR, RTL-SDR, and Sound Card devices.
Key Features:
Offers a collection of open-source SDR tools bundled with conda.
Supports multiple SDR devices through device libraries like libiio, airspyhf, bladeRF, UHD, SoapyFCDPP, Lime Suite, libmirisdr, SoapyRedPitaya, and rtl-sdr.
Integrates with conda/mamba for package management, allowing users to install additional packages or upgrade existing ones.
Available as a cross-platform installer for Linux (x86_64, aarch64, ppc64le), macOS (Intel/Apple Silicon), and Windows (x86_64).
Provides both command-line and graphical installation options.
Audience & Benefit:
Ideal for researchers, engineers, hobbyists, and anyone working with software-defined radios. Radioconda simplifies the setup process by providing a pre-configured environment, enabling users to focus on their projects without worrying about package dependencies or installations. It serves as an alternative to Anaconda or Miniforge but specialized for SDR applications.
Radioconda can be installed via winget, ensuring a seamless experience across supported platforms.
README
This repository holds cross-platform installers for a collection of open source software radio packages bundled with the conda package manager, including
Digital RF
GNU Radio (including an increasing list of out-of-tree modules)
gqrx
inspectrum
and support for the following SDR devices and device libraries:
Once installed, you will have a fully functional conda distribution/environment, meaning that you can use the conda or mamba commands to install additional packages (if available through conda-forge) or upgrade to the latest versions. Think of radioconda as an alternative to Anaconda or Miniforge, but specialized for software radio.
NOTE: Radioconda is built from packages maintained by the conda-forge project. If you have questions or issues that are specific to the conda installation of a particular package, please report them at the corresponding feedstock repository.
You will mostly use radioconda through the command line, although on Windows some applications will install shortcuts to the Start menu.
Windows
Launch "radioconda Prompt" from the Start menu (you can find it under the "radioconda" directory). From this command line, you can run mamba to install/upgrade packages or run any of the applications installed with radioconda. Some applications can also be launched through shortcuts added to the Start menu.
Linux and macOS
Launch your favorite terminal. Depending on the options you chose while installing, you may or may not already have the radioconda "base" environment activated automatically (you will see "(base)" on your command line prompt). To otherwise activate the radioconda "base" environment, run:
conda activate base
If this fails because the conda command is not found, you can activate the environment manually by running
sh /bin/activate
From an activated environment, you will be able to run mamba to install/upgrade packages or run any of the applications installed with radioconda.
Installing packages
To install a particular package:
mamba install
Upgrade
Once you have radioconda installed, you can stay up to date for all packages with:
mamba install --file https://github.com/radioconda/radioconda-installer/releases/download/20NN.NN.NN/radioconda-$(conda info | sed -n -e 's/^.*platform : //p').lock
Install from radioconda metapackage
If you're starting with a fresh environment or are comfortable dealing with package conflicts, you can install the latest release using the radioconda metapackage from the ryanvolz channel:
To use particular software radio devices, it might be necessary to install additional drivers or firmware. Find your device below and follow the instructions. (Help add to this section by filing an issue if the instructions don't work or you have additional instructions to add!)
Once you can talk to the hardware (by following the instructions below), you may want to perform the post-install steps detailed on the Pluto users wiki.
Airspy (R2, Mini, HF+)
Windows users
The WinUSB driver for your device will most likely be installed automatically, and in that case there is no additional setup. If for some reason the driver is not installed and the device is not recognized, install the WinUSB driver with Zadig, selecting your Airspy device.
Linux users
Install a udev rule by creating a link into your radioconda installation:
# run the next line only for the Airspy R2 or Mini
sudo ln -s $CONDA_PREFIX/lib/udev/rules.d/52-airspy.rules /etc/udev/rules.d/52-radioconda-airspy.rules
# run the next line only for the Airspy HF+
sudo ln -s $CONDA_PREFIX/lib/udev/rules.d/52-airspyhf.rules /etc/udev/rules.d/52-radioconda-airspyhf.rules
sudo udevadm control --reload
sudo udevadm trigger
Then, make sure your user account belongs to the plugdev group in order to be able to access your device:
sudo usermod -a -G plugdev
You may have to restart for this change to take effect.
Then, make sure your user account belongs to the plugdev group in order to be able to access your device:
sudo usermod -a -G plugdev
You may have to restart for this change to take effect.
LimeSDR
Windows users
The conda-forge package uses libusb to communicate over USB with your LimeSDR device, instead of the standard CyUSB library which is not open source. If you have used your LimeSDR with another software package, you will have to switch USB drivers to one compatible with WinUSB/libusb.
It may be auto-selected since it is missing a driver
It may not have a sensible name, but you can verify the USB ID
Ensure the target driver (middle of the interface) reads "WinUSB"
Click "Install Driver" or "Replace Driver"
Developers
Usage
Each installer package is built from a specification directory in installer_specs using conda constructor. An installer can be built manually using the build_installer.py script. The specification directories set the exact versions of the included packages so that constructor will produce a predictable result that can be tracked by git for each release. In turn, the specification directories are created/updated by re-rendering the radioconda environment specification file using the rerender.py script.
So, the procedure to create a new installer package is:
Update the environment specification file radioconda.yaml, if desired.
Re-render the constructor specification directories by running rerender.py.
Commit the changes to produced by steps 1 and 2 to the git repository.
Build the installer package for a particular platform by running build_installer.py.
Release
To release a new version of radioconda and build installer packages using GitHub's CI:
Update the repository following steps 1-3 above.
Make a new pre-release on GitHub with a name equal to the version.
Wait until all artifacts are uploaded by CI
Mark the pre-release as a release
NOTE: using a pre-release is important to make sure the "latest" links work.