GNU Radio @ FOSS.IN 2007

21
h4x0r1n the air waves with GNU Radio /* or how to 0wn the un1v3rse.... */ rakesh peter vu 3 rgp [email protected] centre for excellence in computational engineering and networking amrita vishwa vidyapeetham

description

GNU Radio - Open Source Software Defined Radio Toolkit

Transcript of GNU Radio @ FOSS.IN 2007

Page 1: GNU Radio @ FOSS.IN 2007

h4x0r1n the air waves with GNU Radio

/* or how to 0wn the un1v3rse.... */

rakesh peter vu3rgp

[email protected]

centre for excellence in computational engineering and networkingamrita vishwa vidyapeetham

Page 2: GNU Radio @ FOSS.IN 2007

“A certain convergence occurs when multiple technologies align in time to make possible those things that once were only dreamed.”

-- Gerald Youngblood (K5SDR), “A Software-Defined Radio for the Masses”

Page 3: GNU Radio @ FOSS.IN 2007

Software (Defined) Radio • From Godfather – Joe Mitola III

• Development initiated by SpeakEasy project / JTRS / MIT SpectrumWare • Defining waveforms in code

– Modulation – Ciphering – Coding

• Need for RF Frontend

“A software radio is a radio whose channel modulation waveforms are defined in software. That is, waveforms are generated as sampled digital signals, converted from digital to analog via a wideband DAC and then possibly upconverted from IF to RF. The receiver, similarly, employs a wideband Analog to Digital Converter (ADC) that captures all of the channels of the software radio node. The receiver then extracts, downconverts and demodulates the channel waveform using software on a general purpose processor.”

Page 4: GNU Radio @ FOSS.IN 2007

Conventional Radio Architecture

Antenna

RF Amp Mixer

Local Oscillator

Band Pass Filter IF Amp Demodulator AF Amp Audio

RF Amp Mixer

Local Oscillator

Band Pass Filter IF Amp

Antenna

Analog<>Digital Converter

DSP Processor

Software Defined Radio Architecture

RF Frontend

Page 5: GNU Radio @ FOSS.IN 2007

So what’s so interesting?

<snip>http://www.sds.lcs.mit.edu/SpectrumWare/mpeg/lcs35lo.MPG

</snip>

Courtesy: SpectrumWare project, Network and Mobile Systems Lab, MIT

Page 6: GNU Radio @ FOSS.IN 2007

Real World Scenarios• Eliminating Standard Woes for Cellular Service Providers

– AT&T Case Study • > $4 billion expenditure for changing TDMA to GSM • ~ 10 years for Return of Investment

– Vanu Anywave Base Station – Eventual concordance in Standards Development and Deployment

• Public Safety Interoperability– Emergency situations– Integrating Legacy analog systems, trunked radios, cellular networks

• Convergence Devices– Single chipset for all your waveforms (GSM/CDMA/WiFi/Bluetooth/GPS/RFID)

Page 7: GNU Radio @ FOSS.IN 2007

GNU Radio• Open source Signal processing toolset

• Works on General Purpose Processors– Linux, OS/X, Windows (Cygwin/MinGW)

• Forked from MIT Pspectra project– Initiated by John Gilmore, lead by Eric Blossom– Fueled by the MPAA HDTV Broadcast Flag trial

• Modular and Hybrid C++/Python architecture

• Flow-graph abstraction

• Open source components– FFTW, SWIG, SDCC, wxGUI, autotools, boost…

Page 8: GNU Radio @ FOSS.IN 2007

Hello, World ;)

src0 src1

adder

sink

Flow Graph Representation

Page 9: GNU Radio @ FOSS.IN 2007

Module LibrarySource / Sinks

SignalNoiseNullFile

NetworkPacketVideoAudioUSRPFFT

Scope

Type Conversions

Complex <-> IntShort/ Real / ImagComplex <-> Mag / Arg

Float <-> Complex / Char / UCharPacked <-> UnpackedSymbols <-> Chunks

Vector <-> Stream <-> StreamsInterleaver / Deinterleaver

Complex Conjugate

Math operations

AddSubtractMultiplyDivide

Log

Filters

FIR IIR (single pole)

FFT/IFFTFreq. Translating FIR

Rational Resampling FIRRoot Raised Cosine

HilbertPower Squelch

Modulation

WFM / NBFMAM / PM / SSB

FSK / PSK / QAMGMSK / VSB-8 / OFDM

Coding

Differential TrellisViterbiBCJR

Reed Solomon

Misc.

M&M Clock RecoveryAGCPLL

Costas LoopAdaptive Equalizer

Page 10: GNU Radio @ FOSS.IN 2007

GNU Radio Companion • Visual interface for flowgraph construction

– Labview-like drag-drop-connect-configure interface

• ~200 blocks from the GNU Radio toolset

• Excellent tool for learning / experimenting DSP

• Rapid prototyping (a-la un-coding)

• XML representation of the flowgraph

• Developed and maintained by Joshua Blum

Page 11: GNU Radio @ FOSS.IN 2007

Universal Software Radio Peripheral (USRP)

• 4 x 12 bit 64 MS/s ADCs• 4 x 14 bit 128 MS/s DACs

• FPGA – Altera Cyclone EP1C12

• USB 2.0 PC Interface (32MB/s)– Cypress 68013 Controller

• 8051 core for FPGA Init

• Daughterboard support– Programmable Configuration

• External Clock interface

• Open Design

• Designed by Matt Ettus and sold by Ettus Research

Page 12: GNU Radio @ FOSS.IN 2007

USRP Daughterboards

BasicTX / BasicRX [1 to 250 MHz] LFTX / LFRX [0 to 30 MHz]

TVRX [50 to 860 MHz] DBSRX [800 to 2400 MHz] RFX Series [400/900/1200/1800/2400 MHz]

Page 13: GNU Radio @ FOSS.IN 2007

FPGA Functional Architecture

Analog to Digital Converter

RF F

ront

end

Digital to Analog Converter

USB

Bus

CORDIC

CIC Interpolator

CIC Decimator + Half Band Filter

RX FIFO

TX FIFO

Page 14: GNU Radio @ FOSS.IN 2007

GNU Radio Projects• GSM Scanner• OpenGNSS• 802.11 WiFi stack (BBN Adroit)• DVB• Radio Astronomy• HDTV• RFID• Bluetooth• Active / Passive Radar• OFDM• MIMO• FM/AM/SSB Radio• NOAA Weather Sat • …pretty much anything RF !!

• Cantilever control• Acoustic Modems • Signal Analyzer / Generator• Medical Imaging

Page 15: GNU Radio @ FOSS.IN 2007

New and Comin…• USRP2 (Q1 2008)

– 100MS/s 14bit ADC / 400MS/s 16bit DAC– Xilinx Spartan III FPGA – Gigabit Ethernet Interface (3-6x improvement)– 1MB onboard SRAM– Standalone features (SD card loadable)– Multiple USRP linking

• Message Blocks / Inband signalling– Priority Scheduling and Message handling between blocks– Support for MAC layer development– Control Plane information and Metadata to/from the Transciever

• Timing / Power constraints

• Pure C++ native interface

• Cell BE support – Ongoing dev with Sony PlayStation 3 and IBM Cell SDK

• Spread Spectrum implementations – Direct Sequence– Fast Frequency Hopping

Page 16: GNU Radio @ FOSS.IN 2007

Alternatives…• Hardware

– High Performance SDR (HPSDR)• Atlas, Ozy, Janus, Mercury….

– FlexRadio SDRs• SDR-1000 / FLEX-5000

– Simple Software Radio Peripheral– VU-SDR – SoftRock / YU1LM / Elektor designs

QuickSilver (Mercury proto)

OzymandiasAtlas

Janus

SoftRock RXTX

FLEX-5000

SDR-1000

VU-SDR

Page 17: GNU Radio @ FOSS.IN 2007

Alternatives…• Software

– OSSIE from VirginiaTech• Software Communications Architecture (SCA) reference

implementation• Supports USRP

– Linrad– DttSP

• C++ DSP Core – PowerSDR / SDRadio / Rocky / …

• Narrow band processing using soundcard• Windows platform• Great UI and Features

Page 18: GNU Radio @ FOSS.IN 2007

^ How to Contribute… ^• Documentation

– Spread across code comments(doxygen), mailing lists and occasional student thesis

– Need for a rigid and open documentation framework– Easing the high initial learning curve

• RF/VLSI Hardware Design– Making affordable solutions for the enthusiasts– Improving the learning curve…Getting industry-ready…

• Implementing new modules– Rapid technological growth fueled by extensive research– New and better communication protocols, modulation/coding schemes

Page 19: GNU Radio @ FOSS.IN 2007

Benefits• Students

– Breaking the technology barrier– Essentially prevent much prevalent “never-see-daylight" scenario of theses !

• Industry members– Rapid prototyping of new technologies– Get to contribute to a much happening project (!!) and get a chance to speak at

future FOSS.INs (!!!!) ;)

• The Kid Next Block– Tools for total anarchy - not sci-fi anymore!!

• Own the satellites, space station, space telescopes, deep space probes,...• Lesser evil stuff ;)

– Kill “Security through Obscurity “• FCC Case against open SDRs

Page 20: GNU Radio @ FOSS.IN 2007

Resources

• GNU Radio Wiki– http://www.gnuradio.org/trac

• Captured IQ samples – http://www.kd7lmo.net/ground_gnuradio_ota.html

• Ettus Research– http://www.ettus.com

• HPSDR– http://www.hpsdr.org

• VU-SDR mailing list– http://groups.yahoo.com/group/vusdr/

• Compendium of SDR projects– http://f4dan.free.fr/sdr_eng.html

Page 21: GNU Radio @ FOSS.IN 2007

Thank you !