TLDR: To install GNU Radio on Windows, just install RadioConda and the drivers for your SDR. Create a shortcut, double-click, and you’re running GNU Radio Companion! For hardware support, simply install the drivers for your platform.
The longer version of this post will provide a step-by-step process for using RadioConda to install GNU Radio on your Windows PC as well as building a quick flowgraph to test the installation. I’ll also show you how to enable support for the following hardware:
- HackRF
- PlutoSDR
In addition, I’ll introduce Python virtual environments in general, Conda more specifically, and Radioconda more specifically than that.
What are Virtual Environments?
These are configurations for your computer that include a specific version of Python as well as a number of applications, packages, and dependencies. What’s great is that none of this is installed on your machine itself! You can enter the virtual environment, execute applications, and then exit the virtual environment. Upon exiting, your operating system will return to the state it was in prior to entering the virtual environment.
What is Conda?
Conda is a powerful management tool for virtual environments. You can use it to create any number of Conda environments, and use very simple commands to install hundreds of packages.
What is Mamba?
Mamba is essentially an optimized, higher-performing version of Conda (stuff installs faster).
What is RadioConda?
Finally, we’ve arrived at the tool we’re going to use! RadioConda is based on Conda, but its default configuration includes a ton of SDR-specific packages, such as GNU Radio, RF apps, SDR hardware support, and many key out-of-tree modules. Installing it on your Windows, Linux, or Mac machine will give you an enormous amount of SDR software. And like any other Conda environment, you can enter and exit it at will, leaving your core operating system unaffected.
RadioConda Installation Process for Windows
Navigate to the RadioConda GitHub Page:
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/00_github_links.png?resize=1024%2C548&ssl=1)
Download the Windows installer. If using Edge, you may be temporarily prevented from completing the download. If you click on the downloads button on the upper right, you may see this warning:
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/01_not_commonly.png?resize=571%2C249&ssl=1)
Click on the three dots to select “Keep”
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/02_keep_dialog.png?resize=556%2C430&ssl=1)
And then confirm by selecting “Keep anyway”
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/03_keep_anyway.png?resize=573%2C930&ssl=1)
Your download should then show as complete
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/04_download_complete.png?resize=555%2C247&ssl=1)
Double-click the installer
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/05_radioconda_click.png?resize=747%2C582&ssl=1)
Agree to the license
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/06_license.png?resize=747%2C582&ssl=1)
Choose the scope of the installation (“Just Me” is good for most users, unless you want multiple users to have access the software on your machine)
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/07_user_install.png?resize=747%2C582&ssl=1)
Select a location for the installed files (or just click “Install” to accept the default)
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/08_install_location.png?resize=747%2C582&ssl=1)
The install will take a few minutes. Click “Next” when it completes
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/10_install_complete.png?resize=747%2C582&ssl=1)
Then click “Finish”
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/11_install_next.png?resize=747%2C582&ssl=1)
You can now access GNU Radio Companion from your start bar by typing “gnu”
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/12_start_bar.png?resize=1024%2C846&ssl=1)
It’s a good idea to click “Pin to taskbar” if you want easy access
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/13_pinned.png?resize=1024%2C54&ssl=1)
Installing HackRF Support
Go back to the RadioConda GitHub Page and find the hardware support section
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/14_github_hw.png?resize=1024%2C659&ssl=1)
Clicking the “HackRF (setup)” link leads you down the page to the following:
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/15_github_hackrf_link.png?resize=957%2C211&ssl=1)
Clicking the “Install the WinUSB driver with Zadig” link moves you further down the page to this:
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/16_github_hackrf_instr.png?resize=1024%2C475&ssl=1)
Clicking the “Zadig” link takes you to this site, which hosts a general purpose USB driver for windows devices
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/17_zadig_top.png?resize=1024%2C790&ssl=1)
Scrolling down a bit, you’ll find a download link for the most recent version of the driver. Note that the advertising on this site is… extensive… and that there are may be several other links appearing to be downloads. The “Zadig 2.9” link below is the one you want (although the version may have changed by the time you read this post)
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/18_zadig_download.png?resize=1024%2C677&ssl=1)
Double-click the installer, and allow it to check for updates online
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/20_zadig_check_online.png?resize=597%2C201&ssl=1)
Then click “Install WCID Driver”
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/21_zadig_install_1.png?resize=861%2C381&ssl=1)
Installing PlutoSDR Support
Go back to the RadioConda GitHub Page and find the hardware support section
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/14_github_hw-1.png?resize=1024%2C659&ssl=1)
Click the “libiio (setup)” link, which leads you down the page to this
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/25_github_pluto_iio.png?resize=1024%2C183&ssl=1)
Click the link to download, then run the installer, accepting the license agreement
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/26_iio_license.png?resize=750%2C573&ssl=1)
Confirm (or modify) the install location
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/27_iio_install_location.png?resize=750%2C573&ssl=1)
Then confirm to begin installing
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/28_iio_confirm.png?resize=750%2C573&ssl=1)
This brings you to an installer wizard, at which you click “Next”
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/29_iio_wizard.png?resize=747%2C579&ssl=1)
Confirm install from Analog Devices
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/30_iio_wizard2.png?resize=864%2C379&ssl=1)
And Finish
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/31_iio_wizard3.png?resize=750%2C573&ssl=1)
Testing the Installation – HackRF
Bring up GNU Radio by typing GNU into the start bar or clicking the shortcut you’ve made
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/12_start_bar-1.png?resize=1024%2C846&ssl=1)
On the first attempt, I’ve seen a glitch where only a blank window appears. In that case, close the blank window and try again. You should then see the GNU Radio Companion interface.
Create a flowgraph as follows:
- change existing samp_rate variable to “10e6”
- add a Soapy HackRF Source with
- RF Options -> Bandwidth: samp_rate
- RF Options -> Center Freq (Hz): 98e6
- add a QT GUI Frequency Sink with
- General -> Center Frequency (Hz): 98e6
- Connect the source output to the sink input
- Save the flowgraph
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/23_flowgraph.png?resize=1024%2C658&ssl=1)
Attach your HackRF to the PC via USB. After executing the flowgraph using the Play button in the toolbar, you should a live frequency plot several FM broadcast signals. The specific frequencies you observe will be different depending on the FM broadcasts in your area.
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/24_fft.png?resize=1024%2C539&ssl=1)
Testing the Installation – PlutoSDR
Bring up GNU Radio by typing GNU into the start bar or clicking the shortcut you’ve made
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/12_start_bar-1.png?resize=1024%2C846&ssl=1)
On the first attempt, I’ve seen a glitch where only a blank window appears. In that case, close the blank window and try again. You should then see the GNU Radio Companion interface.
Create a flowgraph as follows:
- change existing samp_rate variable to “10e6”
- add a Soapy PLUTO Source with
- RF Options -> Bandwidth: samp_rate
- RF Options -> Center Freq (Hz): 98e6
- add a QT GUI Frequency Sink with
- General -> Center Frequency (Hz): 98e6
- Connect the source output to the sink input
- Save the flowgraph
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/Screenshot-2024-06-19-003256.png?resize=1024%2C538&ssl=1)
Attach your PlutoSDR to the PC via USB. After executing the flowgraph using the Play button in the toolbar, you should a live frequency plot several FM broadcast signals. The specific frequencies you observe will be different depending on the FM broadcasts in your area.
![](https://i0.wp.com/www.factorialabs.com/wp-content/uploads/2024/06/24_fft.png?resize=1024%2C539&ssl=1)