Please note: Ettus Research only officially supports UHD software.
If you have any questions or issues regarding GNU Radio, please direct them to the GNU Radio Mailing List.
If you encounter any problems with the dependencies, please direct any questions to the relevant support network for that software (usually found on the project's page listed in the table below).

GNU Radio + UHD Software Installation on Windows

This page presents a guide for installing GNU Radio and the UHD package on Windows from pre-built installers.

GNU Radio (and the UHD package) are open source and, as such, can be built from source (i.e. from scratch) too. For more information, please see the build page for GNU Radio.

Please note: the pre-built installers available here are unofficial builds made available for the benefit of the SDR community.

Introduction

We provide pre-built GNU Radio and UHD installers (compiled using Microsoft Visual Studio 2010) for Windows users. This means you can simply run the necessary installers and have a working SDR environment without having to compile any source code.

If you wish you use only GNU Radio by itself, it is not necessary to also have installed the UHD package. However if you wish to use a USRP device with your GNU Radio installation, you must also set up the UHD software (explained later).

Supported Windows Versions

32-bit for

  • XP
  • Vista
  • 7

Installation Guide

You must install all dependencies below for GNU Radio to work, and they should be installed before running the GNU Radio installer!

Install Dependencies

The following dependencies are needed for GNU Radio to run (as of Jan 15 2012). Most of them can be installed using a downloadable/executable installer, however some of them must be installed using easy_install (part of Python).

Note 1: If you choose to manually download the installers from each website, make sure you obtain the 32-bit versions, and the Python extension libraries are matched against the version of Python you have installed (here: version 2.7).

Note 2: The installers below that add additional libraries to your Python installation will automatically detect your default Python installation directory by default. If you just installed Python (or are using your existing default Python installation and aren't doing anything fancy - most people won't be), you can just click the 'Next' button repeatedly to complete the install wizard for each dependency.


Python library installer auto-detection of Python installation


wx installer auto-detection of default Python installation

Dependency Website Version Direct download
Python interpreter http://www.python.org/download/releases/ 2.7.6 MSI
NumPy http://sourceforge.net/projects/numpy/files/NumPy/ 1.8.0 Superpack EXE
PyQT http://www.riverbankcomputing.co.uk/software/pyqt/download 4.10.3 EXE (includes Qt runtime)
setup_tools (used to install other Python dependencies) http://pypi.python.org/pypi/setuptools 2.2 PY
PyGTK http://www.pygtk.org/downloads.html 2.24.2 (all-in-one-installer) MSI
wxPython http://www.wxpython.org/download.php 3.0.0.0 EXE
PyQWT http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqwt (official but old) 5.2.1 EXE
lxml https://pypi.python.org/pypi/lxml/3.3.2 3.3.2 EXE
Python OpenGL https://pypi.python.org/pypi/PyOpenGL/3.1.0b1 3.1.0b1 EXE (or use easy_install below)
Visual C++ 2010 Runtime Download page 2010 Link


All the files that you should download (this is a picture of older installers, but the idea is the same)

The remaining Python libraries can be installed from the command-line using easy_install.
First navigate to your Python installation directory, and then change into the scripts directory.
For each dependency, run easy_install <short name from table below>. For example:

C:\Program Files (x86)\Programming\Python 2.7>cd scripts

C:\Program Files (x86)\Programming\Python 2.7\scripts>easy_install cheetah
Dependency Website Short name for easy_install
Cheetah http://www.cheetahtemplate.org/ cheetah
PyOpenGL http://pyopengl.sourceforge.net/ pyopengl (not necessary if installer above is used)

Install GNU Radio

There are two choices of installer:

Release Built from Notes
unstable GNU Radio master branch + unstable branch Includes bugfixes and new features
stable GNU Radio maint branch + UHD stable branch Only includes bugfixes since the last major release

Don't be put off by the word unstable - it simply means it's the latest working version of the source code.
These binaries are generated and uploaded every weekend.

They can be downloaded from here:

Release Latest path Version Direct download
unstable http://files.ettus.com/binaries/gnuradio/latest_unstable 3.7.2.1 (use this) EXE
stable http://files.ettus.com/binaries/gnuradio/latest_stable 3.7.1 (use unstable) EXE

Older GNU Radio installers can be found here.

Installer steps

There are some additional steps to perform apart from just clicking 'Next' in the installer. Some steps can be done automatically or manually, others must be done manually. To do it completely manually (i.e. not change any environment variables), read below the following numbered steps.

  1. When you run the installer, it will ask whether you would like to add GNU Radio to the system PATH. If you don't know what to do, select the second option (i.e. do it for all users).
    • For example, assuming you install GNU Radio to C:\Program Files (x86)\Programming\GNU Radio, then you will need to add C:\Program Files (x86)\Programming\GNU Radio\bin to the system PATH to the GNU Radio libraries can be found - the installer can set this up automatically at this step. If you wish to do this manually, you can opt to not modify the system PATH (but don't forget to do it manually otherwise things will not work!).

      GNU Radio installer PATH setting
  2. You must manually set the PYTHONPATH environment variable so Python can find the GNU Radio Python files.
    • For example, if you install GNU Radio to C:\Program Files (x86)\Programming\GNU Radio, then the PYTHONPATH environment variable should be set to C:\Program Files (x86)\Programming\GNU Radio\lib\site-packages.
  3. The GRC_BLOCKS_PATH environment variable is used to inform GNU Radio Companion where the block definitions can be found. This is set automatically (and silently) by the installer.
    • Following the examples above, GRC_BLOCKS_PATH would be set to C:\Program Files (x86)\Programming\GNU Radio\share\gnuradio\grc\blocks


Where to set the Windows environment variables

For setting environment variables, we recommend using the Rapid Environment Editor.

If you don't want to change your system environment variables, you can open a "GNU Radio Command Shell" using the following batch file (you could name is GNU Radio.bat - remember to set GNU_RADIO_PATH to where you installed GNU Radio!):

@echo off
set GNU_RADIO_PATH=C:\Program Files (x86)\Programming\GNU Radio
set PYTHONPATH=%GNU_RADIO_PATH%\lib\site-packages;%PYTHONPATH%
set PATH=%GNU_RADIO_PATH%\bin;C:\Program Files (x86)\Programming\Python 2.7;%PATH%
cd "%GNU_RADIO_PATH%\bin" 
cmd
exit /B 0


Example batch file

If you need to customise where GNU Radio Companion should find the block definitions (usually pointed to by the GRC_BLOCKS_PATH environment variable set automatically by the installer), you can either:
  1. modify the environment variable yourself
  2. edit the GNU Radio configuration file found in .gnuradio/config.conf under your user's profile directory, and add the following (remember to set the path to where you installed GNU Radio):
[grc]
local_blocks_path=C:\Program Files (x86)\Programming\GNU Radio\share\gnuradio\grc\blocks

If you run Vista/7, your user profile path would be C:\Users\<User name> so the settings path would be C:\Users\<User name>\.gnuradio


Location and example of GNU Radio configuration file

Install UHD Software (optional)

You only need to install the UHD package if you wish to use a USRP device with GNU Radio.

Please note: The GNU Radio installer will only work with the corresponding UHD installer. If you install the unstable version of one, you must also install the unstable version of the other. The same applies for the stable releases. Also, if you choose to install an older version of GNU Radio, or need to use a previous version of UHD, you will need to find the corresponding release that matches the other (e.g. the latest GNU Radio will not work with an old UHD release many versions prior usually due to a mismatch in the ABI due to evolution of the UHD API). To determine compatibility of previous version, please try to find the other package by its release date the most closely matches the original package (e.g. given an old GNU Radio package, find the UHD installer that has the closest just before the GNU Radio release).

To match the GNU Radio installer directly linked above, the following UHD installers can be used:

Release Official latest Version Direct link
unstable http://files.ettus.com/binaries/uhd_unstable/latest 3.7.0 EXE
stable http://files.ettus.com/binaries/uhd_stable/latest_stable 3.7.0 EXE

Please see the UHD Windows instruction page for more information, and all current and previous downloads.

Instructions:

  1. In the installer wizard, choose to add the UHD package to the system PATH (or you must do this manually so the UHD DLL is found by GNU Radio).


UHD Installer PATH page

Getting Started

Once you have modified the relevant environment variables (see above if you have not already), the first thing to try is to launch GNU Radio Companion.

If you made permanent changes to your system environment variables, then simply open a command window (cmd.exe).
If you are using the batch file to set up a "GNU Radio shell", run that batch file.

When presented with the command prompt, simply type:

gnuradio-companion.py


Running GNU Radio Companion


GNU Radio Companion running OpenGL WX widgets with persistence

Don't forget there are many more Python files in the GNU Radio bin directory you can play with!


Files in the GNU Radio bin directory

Known Issues

  • During compilation: Cheetah "namemapper" warning
    • You can safely ignore this.
  • QT-gui slider widget
    • The QT-gui slider widget will not work with the PyQWT installer above.
      The only known solution is to build and install PyQWT from source.
      Let us know if you find an installer that 100% works!
  • GNU Radio Companion - Drag and Drop (DnD) Blocks
    • You cannot drag and drop blocks from the selection window onto the flow graph. This appears to be an issue in PyGTK itself, as even the PyGTK DnD demos have this issue. The solution is to double click a block, or select + click the add button.

GR_files.png (166 KB) Balint Seeber, 01/17/2013 05:29 pm

EnvironmentVariables.PNG (224 KB) Balint Seeber, 01/17/2013 05:34 pm

WinGR_PATH.PNG (36.8 KB) Balint Seeber, 01/17/2013 05:34 pm

WinGR_files.PNG (13.1 KB) Balint Seeber, 01/17/2013 05:34 pm

WinUHD_PATH.PNG (38.4 KB) Balint Seeber, 01/17/2013 05:34 pm

GR_GRC_Test.PNG (817 KB) Balint Seeber, 01/17/2013 05:34 pm

GR_GRC_Cmd.PNG (58.3 KB) Balint Seeber, 01/17/2013 05:34 pm

wxPython_AutoDetect.PNG (33.1 KB) Balint Seeber, 01/17/2013 05:34 pm

PythonDep_AutoDetect.PNG (27.3 KB) Balint Seeber, 01/17/2013 05:34 pm

GR_BatchFile.PNG (158 KB) Balint Seeber, 01/17/2013 05:34 pm

GR_Config.PNG (142 KB) Balint Seeber, 01/17/2013 05:49 pm