GNU Radio on Mac OS X: Using the USRP

Jon Jacky

4 Jan 2010   Emphasize this page is for OS X 10.4 only, also change to /redmine

To install GNU Radio on recent Mac hardware and operating systems, consult the Build Guide and Mac Install pages at the GNU Radio Wiki:,   MacInstall

These pages describe our installation of GNU Radio 3.0 and 3.1 with the USRP hardware on Mac OS X 10.4 Tiger on PPC Macs.

Overview Building the USRP modules Using the USRP


The USRP is the GNU Radio hardware. The usrp and gr-usrp modules in the GNU Radio software support the USRP.

Building gr-wxgui

The usrp and gr-usrp modules are built at the same time as the other GNU Radio modules, as directed in the build configuration.

Using the USRP

To use the USRP, your Mac must have a USB 2.0 port. You can check this by running System Profiler (Menu Bar Apple Icon -> About This Mac -> More Info ...). Under Hardware click on USB, under USB Device Tree there should be an entry USB High Speed Bus.

Older Macs do not have a USB 2.0 port. My 1 GHz G4 Powerbook only has USB 1.1 (purchased Summer 2003, apparently the last Mac without USB 2.0). I obtained one of the USB 2.0 add-in cards recommended by Apple: the Belkin F5U222. It plugs into the Powerbook's cardbus slot and is automatically recognized by OS X; it is not necessary to install any drivers or do any other configuring.

Power up the USRP and plug its USB cable into one of the Mac's USB 2.0 ports. Before you run any GNU Radio USRP programs, the Mac should detect the USRP's presence, as shown in the System Profiler (screenshot). The first time you run any USRP program, the GNU Radio software downloads FPGA code into the USRP. After that, the Mac recognizes the USRP (screenshot).

There are programs for testing and demonstrating the USRP in the installed GNU Radio directories in gr/bin

usrp_siggen.pySignal generator
usrp_oscope.pyOscilloscope (screenshot)
usrp_fft.pySpectrum analyzer (screenshot)

Use the -h option to see the command line options, for example pythonw -h (the USRP doesn't need to be connected for this).

You can run usrp_siggen and usrp_oscope (or usrp_fft) at the same time (starting them from different terminal windows), connecting the TX output from one to the RX input of the other.

In December 2005, GNU Radio + USRP on the Mac achieved throughputs of 2 to 4 MBytes/sec, which is sufficient for transfering audio frequency signals between the Mac host and the USRP:

To cope with these throughputs, you must use the -i (interpolation) argument for TX output, or the -d (decimation) argument for RX input. For example:

python -i256
pythonw -g0 -f0 -d256

UPDATE: Faster USB support is now included in the GNU Radio usrp module, so you might see better performance than reported above:

Jon Jacky,