gnu radio conference 2013 opening information year in review · continuous tx/rx coverage from 70...
TRANSCRIPT
Johnathan CorganCorgan Labs
Tom RondeauRondeau Research
October 2013
GNU Radio Conference 2013Opening Information
Year in Review
October 2013 2
Conference Information
October 2013 3
Huge Thanks to the Sponsors
PLATINUM GOLD
TRAVEL
Rondeau Research
OpenSDR
October 2013 4
Internets and Things
● Internet
– WiFi is available, but we're pushing the limits.
● SSID: SpacewithaSoul_Guests● Password: "spaceguest"
● Things
– Conference agenda and everything else:
● http://www.trondeau.com/grcon13● Twitter hashtag: #grcon13.● Presentations will be made available online soon.
October 2013 5
Boston
● Getting around
– Fairly compact city
– Suggest taking public transportation to get around
– The T (subway) system is convenient for our needs
● http://www.mbta.com/schedules_and_maps/subway/
● Red Sox Postseason
– Red Sox will be in the post season.
– ALDS game 1 Oct. 4 will be at Fenway.
October 2013 6
Space with a Soul
● The building is accessible from 8:30am to 6:30pm.
● Building Layout:
● Please be respectful of people working in offices.
October 2013 7
Opening Reception: Anthem 7:30PM Tue
● Located in Faneuil Hall
– 101 South Market Building
– Blue Line: Aquarium; Orange/Green Line: Haymarket
October 2013 8
GSoC Dinner: City Landing, 7:45PM Wed
● Located on the Long Wharf
– 255 State Street
– Right next to Aquarium stop on the Blue line
October 2013 9
Hardware Giveaway: End of Conf. Raffle
● Ettus Research USRP B200
● Fairwaves UmTRX
● Great Scott Gadgets HackRF Jawbreaker
● Lime Micro MyriadRF (x2)
● Loctronix A2300
● nuand BladeRF x40 and x115
October 2013 10
Announcements
October 2013 11
GSoC Participation/Results
● Aneela Yasmeen
– Improving GNU Radio Companion (Tue 11:30AM)
● Manu T S
– LDPC and more FEC (Tue 12PM)
● Tracie Perez
– Implementation of LDPC (Tue 1:30PM)
● Shashank Gaur
– 802.11a/n/g Receiver (Tue 2PM)
● Jonathon Pendlum
– FPGA Coprocessing with Xilinx Zynq (Tue 2:30PM)
October 2013 12
DARPA Spectrum Challenge
● http://www.darpa.mil/spectrumchallenge/
● 90 teams signed up; 18 in the preliminary challenge
● Prelim held Sept 1112
● Northeastern and Vanderbilt win top honors
● Ivan Seskar from WINLAB will give us more details tomorrow.
October 2013 13
GNU Radio Events
October 2013 14
GRHACK12 @ Ettus Research Nov 2012
● Tons of new features integrated into GNU Radio
– Message passing
– ControlPort
– Improved OFDM example
– Metadata files
– VOLK work● gnuradio.org/redmine/projects/gnuradio/wiki/Hackfest1211
● One of our most successful events
October 2013 15
GRHACK13 @ Virginia Tech June2013
● The start of a lot of new, good projects
– Lots of work on embedded support
– FPGA and DSP coprocessor discussions
– Lots of bug fixes, hardening of 3.7● gnuradio.org/redmine/projects/gnuradio/wiki/Hackfest1306
● Sponsored by Hume Center of Virginia Tech
October 2013 16
Other Conferences w/GNU Radio Activity
● WinnForum 2013
● Wireless@VT Symposium, June 2013
● NEWSDR
● SRIF @ Hong Kong August 2013
October 2013 17
Community Growth
October 2013 18
Mailing List Traffic
October 2013 19
Git Checkouts (10log10
(checkouts))
October 2013 20
Web Site Accesses (5log10
(hits))
October 2013 21
Developer Activity Growth
● 2243 new commits to source code tree since last conference, by 45 unique contributors (up from 32) in 10 different countries
● Developer growth fueled in large part by GitHub pull system
– 78 pull requests, nearly all merged
● Cleanup and new emphasis on Redmine bug reporting system is attracting new developers and patches
● Hackfest events major source of new feature starts
– Plan is to have 23 per year (incl. at GRCON)
October 2013 22
Formalized Project Roles
● gnuradio.org/redmine/projects/gnuradio/wiki/Organization
– Maintainer, Project Leader: Tom Rondeau
– CoMaintainer, Release Manager: Johnathan Corgan
– Community Organizer: Martin Braun
– Bug Tracker Organizer: Ben Reynwar
– GNU Radio Conference Organizer: John Malsbury
– Debian Packaging: A. Maitland Bottoms
– Embedded ARM Packaging: Philip Balister
– MacOS Packaging: Michael Dickens
– Windows Packaging: Nicholas Corgan
October 2013 23
Distribution/Installation Updates
October 2013 24
PyBOMBS Build Manager● http://gnuradio.org/pybombs
● New GNU Radio install management system for resolving dependencies and pulling in outoftree projects.
● Tutorial Thu 10AM by Tim O'Shea
October 2013 25
Mac OS X Updates via MacPorts
● Maintained by Michael Dickens
● Recent work to simplify install and correct other packages has been completed
– Ongoing work with QA tests and audio sink/source
● Active support GNU Radio 3.7.1 on Mac OS X 10.6 through 10.8
● sudo port install gnuradio +full is all that is needed once MacPorts is installed on machine
● Almost all GNU Radio features are enabled
– Still testing perf counters and ControlPort
● See: http://gnuradio.org/redmine/projects/gnuradio/wiki/MacInstall
October 2013 26
Debian Packaging Updates
● Maintained by Maitland Bottoms
● GNU Radio 3.7.1 has made it into the unstable repository
● Binary installation plus development headers via aptget, suitable for full outoftree module development
● GNU Radio project is coordinating to merge up downstream patches/bug fixes
● Debian feeds down to many derivative distributions, including Ubuntu
● Track status: http://packages.qa.debian.org/g/gnuradio.html
October 2013 27
Ubuntu Binary Installation via PPA
● Developed by Alexandru Csete to support binary installations of the gqrx radio receiver
● Provides binary install via aptget on Ubuntu 12.04, 12.10, 13.04, and 13.10 for GNU Radio v3.7.0
● Binary only development, so suitable for GRC and Python script based development, but not custom blocks
– Needs dev packages for C++ headers
● Fills gap with Ubuntu maintaining ancient GNU Radio releases
● See https://launchpad.net/~gqrx/+archive/releases
October 2013 28
LiveUSB Environment by Ettus Research
● Portable SDR environment based on Ubuntu 12.10 on 16 GB USB 3.0 flash drive
● Supports development with GNU Radio 3.6.5 and all Ettus Research products
● Many 3rdparty applications
● Excellent for demonstrations and training
```
October 2013 29
LiveDVD Image by Corgan Labs● Bootable DVD image based on Ubuntu 12.04.3 LTS 64bit
● Contains full GNU Radio 3.7.1 installation and hardware support for:
– Ettus Research USRP product family
– HackRF Jawbreaker (via grosmosdr)
– RTLSDR (via grosmosdr)
– FunCUBE Dongle Pro+ (via grosmosdr) (untested)
– nuand bladeRF (via grosmosdr) (untested)
● Suitable for demonstration, testing, and experimentation in restricted environments
● See:http://gnuradio.org/releases/gnuradio/iso
October 2013 30
DSP Acceleration and ARM SoC Support
● This is an area of growing interest and increasingly interesting (and affordable) hardware
● We have a few talks during the con from:
– Jonathon Pendulum (Tue 2:30PM)
– Justin Ford (Wed 12PM)
– Moritz Fischer (Wed 2:30PM)
– Matt Ettus (general remarks)
● Big area of discussion during our last HackFest in June
● Embedded OS support and GNU Radio packaging managed by Philip Balister
October 2013 31
GNU RadioFramework Architecture
Updates
October 2013 32
Asynchronous Message Passing/PDUs
● Adds asynchronous, outofband messaging to existing dataflow streaming architecture
● Suitable for development of state machines, control/MAC layer protocols, and interfacing with the external world
● Design and implementation by Josh Blum, Johnathan Corgan, Tom Rondeau, and Tim O'Shea
● Tutorial Wed 4PM by Johnathan Corgan
MSG MSG
IN OUTDSP
Block
OUT
MSG
SourceBlock MSG
IN
MSG
OUTDSP
Block MSG
INSink
Block
MSGMSG
MessageBlock
MSG MSG
Data Flow
Control Flow
October 2013 33
Pythonbased Block Design
class convolve(gr.sync_block): def __init__(self): gr.sync_block.__init__( self, name = "convolve", in_sig = [numpy.float32], out_sig = [numpy.float32]
) self._taps = [1, 0, 0, 0] self.set_history(len(self._taps))
def work(self, input_items, output_items): output_items[0][:] = numpy.convolve(input_items[0], self._taps, mode='valid') return len(output_items[0])
● Design by Josh Blum
● Allows rapid prototyping of streaming algorithms, but sacrifices performance vs. native C++ blocks
● Supports message passing, interface to outside
October 2013 34
Event Logging Framework
● Design/implementation by Tom Rondeau and Mark Plett
● Provides a uniform method to communicate info, warnings, and errors to users (vs. block specific)
● Easily configurable
– Turn event logging output on/off
– Redirect to console, files, network devices, etc.
● Convenience methods allow easy access when writing custom C++ blocks
GR_LOG_INFO(d_logger, "Some info about the block");
GR_LOG_WARN(d_debug_logger, "Some warning about the block");
October 2013 35
Control Port Remote Framework
● Command, Control & Discovery Interface
● Multiple GNU Radio apps controlled by the same program
● Multiple programs viewing a single app
● Tutorial Thu 2PM by Tom Rondeau
October 2013 36
Performance Monitoring
● Measures and stores statistics for each block
● Gettable over ControlPort for performance analysis and flowgraph health monitoring
October 2013 37
Block Processor Affinity
● Tie blocks to a single or a group of processors/cores.
● More control than allowing the OS to do this for us
● Tutorial Thu 9AM by Tom Rondeau
October 2013 38
New DSP Capabilities
October 2013 39
OFDM PHY Block Set
● Design and implementation by Matt Ettus, Martin Braun and Ben Reynwar
● Tutorial Thu 4:30PM by Martin Braun
October 2013 40
GNU Radio Filter Designer Integration
● Implemented by Sreeraj Rajendran as part of GSoC 2012
● Generates FIR and IIR filters
● Can launch it and pull back results into Python in real time
● Future directions:
– Ability to manipulate in GRC
– Support for fixedpoint format
October 2013 41
Channel Model Additions/Updates
● New fading channel simulation blocks by Tim O'Shea
– Rayleigh/Rician
– Doppler spread
– PDPbased simulations
– Tutorial Thu 1:30PM
● Dynamic Channel model (channel_model2)
– Takes in functions for frequency and time offsets
● Hardware impairment models
– Matt Ettus Tutorial GRCON11
– Phase noise, IQ imbalance, 2nd & 3rd order distortions
● Allows more sophisticated endtoend simulations
October 2013 42
Development Environment Updates
October 2013 43
GNU Radio Mod Tool
● Easily created OOT projects and add blocks$ gr_modtool help
Usage:gr_modtool.py <command> [options] Run <command> with the given options.gr_modtool.py help Show a list of commands.gr_modtool.py help <command> Shows the help for a given command.
List of possible commands:Name Aliases Description=====================================================================remove rm,del Remove block (delete files and remove Makefile entries)add insert Add block to the outoftree modulenewmod nm,create Create a new outoftree module
October 2013 44
GnuradioConfig.cmake
● Recommended way to find and link against GNU Radio in OOT projects
● Allows user to specify the needed components and checks they are all there.
● Set the APIcompatible version to indicate which GNU Radio version is required.
set(GR_REQUIRED_MODULES RUNTIME BLOCKS FILTER)
find_package(Gnuradio 3.7.0)
October 2013 45
GNU Radio Companion Bus Ports
● Simplifies GNU Radio Companion connections for blocks with large numbers of inputs and outputs
● Developed by Nick McCarthy during work for new FECAPI blocks
● Introduced in GNU Radio 3.7.1
October 2013 46
New Hardware Announcements
October 2013 47
Ettus Research USRP B200/210
● Continuous TX/RX coverage from 70 MHz to 6 GHz, 1x1 (B200) or 2x2 MIMO (B210)
● Up to 56 MHz continuous realtime I/Q bandwidth
● USB 3.0 bus powered
● GNU Radio support via gruhd and UHD softwarefrom Ettus Research
October 2013 48
Great Scott Gadgets HackRF Jawbreaker
● Halfduplex TX/RX coverage from 30 MHz to 6 GHz
● Up to 20 MHz continuous I/Q bandwidth
● USB 2.0 Bus powered
● GNU Radio support via grosmosdr driver
October 2013 49
Fairwaves UmTRX
● Dualchannel TX/RX coverage from 300 MHz to 3.8 GHz
● Optimized for GSM applications with OsmoBTS and OpenBSC
● Host connection via GbE
● GNU Radio support via gruhd and modified open source UHD software
October 2013 50
nuand bladeRF
● Fullduplex TX/RX 2x2 MIMO coverage from 300 MHz to 3.8 GHz
● Up to 28 MHz continuous I/Q bandwidth
● USB 3.0 bus powered
● GNU Radio support via grosmosdr driver
October 2013 51
FUNcube Dongle Pro+
● RXonly coverage,150 KHz240 MHz and 420 MHz1.9 GHZ
● 192 KHz realtime I/Q bandwidth
● Design by Howard Long, G6LVB
● GNU Radio support via 3rdparty grosmosdr driver
October 2013 52
Other Vendors w/GNU Radio support
● Other vendors have released or planned support for their hardware in GNU Radio via 3rdparty code
– Nutaq
– MyriadRF
– Epiq Solutions
– Per Vices
– Loctronix (presentation Tue 4PM)
● GNU Radio has become the defacto deployment software for new SDR hardware
October 2013 53
GNU RadioProject Infrastructure
Updates
October 2013 54
CloudFlare/Google Analytics
● In May 2013 the GNU Radio project switched to using the CloudFlare content distribution network (CDN) for website and git
– Up to 1.1M hits/day using 1 GB bandwidth
– ~20% is webcrawler traffic
● Reduction in actual server hits and bandwidth of 50%
● Automatic insertion of Google Analytics hooks
– Lets us track site usage and statistics
– Most trafficked part of website is installation pages on Wiki
● Realtime mitigation of DDoS attacks and webvulnerabilities
October 2013 55
Coverity Scan Static Analysis
● Automated static analysis testing ofGNU Radio code base for defects andvulnerabilities, such as:
– Memory leaks
– Buffer overflows
– Control flow issues
– Error handling issues
● Weekly automated analysis and upload from GNU Radio servers to Coverity site for reporting via Jenkins integration server
● Managed by Philip Balister
October 2013 56
Future Directions
October 2013 57
MAC/Control Layer Protocol Development
● GNU Radio has traditionally excelled at high speed, realtime PHY development with streaming dataflow architecture
● New features in last two major releases are enabling more sophisticated control logic
– Stream tagging for passing metadata through signal chain
– Asynchronous messaging for outofband signaling
– PDU (data/metadata) message format support
– Messageonly blocks
● The emphasis over the next release cycle is integrating these features into existing block libraries and building higher level protocols
● Let's make developing sophisticated, realworld software radios easier than ever
October 2013 58
FECAPI Development
● FEC support has been a major problem for GR
– Fundamentally hard problem to generalize all the different formats, types, options
● FECAPI provides an API to craft the FEC encoders and decoders and apply them to GNU Radio data streams easily/uniformly
● Allowing more interest and support for new FEC tools
– GSoC projects on LDPC codes
● Will enable more robust digital communications (a developing theme in GNU Radio)
● Recently added soft decision bits support in GNU Radio
● Tutorial Thu 2:30PM by Nick McCarthy
October 2013 59
Unified GNU Radio Front End (grrfe)
● New, experimental module under development to more easily support multiple SDRs in applications
● Moves deviceindependent code into common GNU Radio sink and source blocks
– Stream interface work function/metadata handling
– Asynchronous message ports for PDUs and status/errors
– Propertiesbased interface for configuration and control
● Lowlevel pluggable API for devicespecific modules
– Property tree handlers, streaming sample I/O, event interface
● Applications will be able to use multiple SDRs via configuration file or through discovery/enumeration
October 2013 60
Building Blocks vs. Applications
October 2013 61
But what about those applications?
October 2013 62
What are we doing about it?
● Cleaner code, interface with 3.7.
● Better, more integrated tools.
● Providing improved support for OOT projects.
● Improved documentation.
● Better bug tracking support.
● Many new features that you'll see this week.
October 2013 63
What can you do?
● Participate and speak up!
– Use the mailing list.
– Report and keep up with bugs on the bug tracker.
– Improve and add to gnuradio.org.
– Join us for the monthly developers' calls.
● Keep developing!
– Continue posting projects on github/CGRAN, etc.
– Add your project to PyBOMBS.
– Feed back new contributions to GNU Radio.