This repository holds cross-platform installers for a collection of open source **software radio** packages bundled with the [conda](https://conda.io/) package manager, including
- Digital RF
- GNU Radio
- gqrx
- gr-satellites
and support for the following SDR devices and device libraries:
The complete list of packages can be found [here](https://github.com/ryanvolz/radioconda/blob/master/radioconda.yaml).
Once installed, you will have a fully functional conda distribution/environment, meaning that you can install additional packages (if available through [conda-forge](https://conda-forge.org/feedstock-outputs)) or upgrade to the latest versions using `conda` or `mamba`, e.g.:
Think of radioconda as an alternative to [Anaconda](https://www.anaconda.com/products/individual) or [Miniforge](https://github.com/conda-forge/miniforge), but specialized for software radio.
**NOTE:** Radioconda is built from packages maintained by the [conda-forge](https://conda-forge.org/) 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](https://github.com/conda-forge/feedstocks).
## Download
Radioconda installers are available here: https://github.com/ryanvolz/radioconda/releases.
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!)
[Install the WinUSB driver with Zadig](#installing-the-winusb-driver-with-zadig), selecting the device that is called "Bulk-In, Interface (Interface 0)".
Install the latest USB drivers by download and installing [this file](https://github.com/analogdevicesinc/plutosdr-m2k-drivers-win/releases/latest/download/PlutoSDR-M2k-USB-Drivers.exe).
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](https://wiki.analog.com/university/tools/pluto/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.
[Install the WinUSB driver with Zadig](#installing-the-winusb-driver-with-zadig), selecting your Lime device.
#### Linux users
Install a udev rule by creating a link into your radioconda installation:
Download the firmware files by activating your conda prompt and running
uhd_images_downloader
#### USB devices (e.g. B series)
Windows users might have to install a USB driver for the device. Follow the instructions [from the Ettus site](https://files.ettus.com/manual/page_transport.html#transport_usb_installwin), or [install the WinUSB driver with Zadig](#installing-the-winusb-driver-with-zadig) (your device will have a USB ID that starts with 2500).
## Installing the WinUSB driver with Zadig
Many USB devices use libusb and need a WinUSB driver installed on Windows. Follow this procedure to install the driver for your device:
1. Download and run [Zadig](https://zadig.akeo.ie/)
2. Select your device
- 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
3. Ensure the target driver (middle of the interface) reads "WinUSB"
Each installer package is built from a specification directory in [installer_specs](https://github.com/ryanvolz/radioconda/tree/master/installer_specs) using [conda constructor](https://github.com/conda/constructor). An installer can be built manually using the [build_installer.py](https://github.com/ryanvolz/radioconda/blob/master/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](https://github.com/ryanvolz/radioconda/blob/master/radioconda.yaml) using the [rerender.py](https://github.com/ryanvolz/radioconda/blob/master/rerender.py) script.
So, the procedure to create a new installer package is:
1. Update the environment specification file `radioconda.yaml`, if desired.
2. Re-render the constructor specification directories by running `rerender.py`.
3. Commit the changes to produced by steps 1 and 2 to the git repository.
4. 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: