GNU Radio/USRP On The WINLAB ORBIT Nodes: 29 April 2009 James Sugrim Rob Miller
GNU Radio/USRP On The WINLAB ORBIT Nodes: 29 April 2009 James Sugrim Rob Miller
on the WINLAB
ORBIT Nodes
29 April 2009
James Sugrim
Rob Miller
The Story
• Software Defined Radio (SDR) progress
• Theory Simulation Experimentation
The Goal
Familiarity with WINLAB SDR resources.
(GNU Radio / USRP)
The Show So Far.
• Getting Started
– Where the USRPs are located
– Building your own image
• GNU Radio/USRP Overview
• Code Development
• Demonstration
Where the radios are…
In the “big” grid the following
nodes have USRPs:
[1,2],[1,19],[20,19],[10,11],[20,2],
[5,5],[5,15],[15,5],[15,15]
and USRP2s:
[18,3],[3,18]
In the Sandboxes,
SB5 has USRPs on nodes:
[1,1],[1,2]
Not to scale
Imaging SB5
(or the grid for that matter)
(18,3)* XCVR-2450 -
(3,18)* XCVR-2450 -
src0
dst
src1
Reference: www.joshknows.com
Simple USRP Example #1
#!/usr/bin/env python
u_source = usrp.source_c()
setup usrp as source and sink
u_sink = usrp.sink_c()
self.u = usrp.source_c(decim_rate=options.decim)
self.dst = gr.file_sink(gr.sizeof_gr_complex, filename)
self.head = gr.head(gr.sizeof_gr_complex, int(options.nsamples))
self.connect(self.u, self.head, self.dst)
options.rx_subdev_spec = usrp.pick_rx_subdevice(self.u)
self.u.set_mux(usrp.determine_rx_mux_value(self.u, options.rx_subdev_spec))
self.subdev = usrp.selected_subdev(self.u, options.rx_subdev_spec)
input_rate = self.u.adc_freq() / self.u.decim_rate()
key excerpts from
self.subdev.set_gain(options.gain) usrp_rx_cfile.py
r = self.u.tune(0, self.subdev, options.freq)
File location: gr‑utils\src\python\usrp_rx_cfile.py
Simple USRP Example #2
usrp complex head complex file sink
Reference: en.wikipedia.org/wiki/Universal_Software_Radio_Peripheral
Abstract
• Recent advancements in the area of Software Defined Radio (SDR) have
opened the door for researchers to complement theoretical findings and
simulations with real world experimentation. A very popular SDR, used in
both academia and industry, is the Universal Software Radio Peripheral
(USRP). Much experimentation has been done using this SDR in
conjunction with GNU Radio signal processing blocks. The primary focus of
this talk is to get new users involved with the GNU Radio/USRP resources
available at WINLAB. In this talk, we will discuss how to access and develop
on these platforms. We will also provide a high level description of the
USRP architecture, and an overview of the steps involved in implementing
signal processing routines. Additionally, we will comment on lessons
learned regarding the installation of GNU Radio onto the WINLAB nodes.
Links and references to more detailed documentation will also be
provided.