Summer of Code

There are two summer of code events:

GSoC: GSoC is a Google-sponsored event to get students involved in Open Source projects (Website). GNU Radio has participated in GSoC 2012 through 2014 with a high success rate.

SOCIS: The "ESA Summer of Code in Space" is a GSoC-inspired, yet different event sponsored by the European Space Agency (Website). In 2015, we will be applying for the first time.

We will be using the same page for these programs in order to avoid duplication of effort.

Students interested in participating, read the student instructions and the rules of conduct.

For previous and currently ongoing projects as well as success stories, read the page of past GSoC projects. We are very happy with what our participants have managed to contribute.

Summer of Code 2015: List of ideas

This is the list of project ideas for the summer of code 2015 within GNU Radio. All of these projects have mentors, so if you have any questions, feel free to contact them!
Remember that these are ideas and are merely meant as an inspiration for you to write your own proposal.

Students who do not find a fit among these projects are encouraged to engage with us and suggest new ones. The GNU Radio discussion mailing list is the best place to contact all of us. Please do not contact us off-list for the sake of discussing the summer of code, unless you're contacting a mentor listed here to get feedback on a proposal.

Reviewing the Google FAQ page for a broader understanding of project, mentor, and student responsibilities is recommended.

If you need a USRP to complete the project, we will be able to arrange something.

List to be written. Please add ideas, you may cannibalize old ideas, of course!

Guidelines for good projects (when suggesting projects, please consider these):
  • Clearly defined scope, with a main target that can be done in 3 months
  • Clear benefits for the GNU Radio project
  • Not specific to a certain hardware
  • Both OOTs and in-tree improvements are welcome

GNU Radio Android Apps

GNU Radio will be releasing patches and instructions for building GNU Radio apps for use on Android. The model uses the Android NDK and Java Native Interface (JNI) to write a GNU Radio flowgraph in C++ with blocks for I/O to the Android hardware (sensors and audio system), radios, and the Java application. With this, we can easily develop and port many of our flowgraphs to Android systems. Since Android and the systems that use Android tend to have high-resolution, touch-screen interfaces, we would like to see how we can build better applications that interact with the underlying flowgraph and present an interesting, easy to use, and useful user interface.

Objectives
  • Build a user interface to control a radio frontend and provide displays of the data in various domains.
  • Take an existing GNU Radio project and adapt it for Android
Potential mentor(s)

Tom Rondeau

Synthetic-Aperture Radar and/or MIMO-Extension for gr-radar

Synthetic-Aperture Radar is a technique to increase the aperture (and hence imaging quality) of radars by performing multiple measurements at different positions. gr-radar is a radar toolbox for GNU Radio which currently implements mostly single-antenna and single-measurement techniques (some extensions for MIMO are already there, but it's pretty basic).

Objectives

Extend the gr-radar OOT with SAR capabilities. Design and run experiments that show how this is used in real life.

Potential mentor(s)

Martin Braun

POLAR-Codes Implementation for gr-fec

Polar codes are a fairly recent breakthrough in code design, being the first channel codes to both provably reach the channel capacity under some assumptions and be of reasonable computational complexity.

Objectives

Any channel codes to be added to GNU Radio need to work with the gr-fec framework, and these are no exception. The scope of this project would be to implement the polar codes, and set up tests to demonstrate how well they work, but also benchmarks to gauge their computational burden.
If need be, individual operations of the en- and decoding steps shall be factored out to VOLK kernels.

Potential mentor(s)

tbd

DECT Tools

Details: DECT is a standard used to connect wireless phones to basestations (for landline operation). DECT for GNU Radio has been attempted before , but is lacking a stable release. With all the new features in-place a fully functional and nicely integrated DECT transceiver should be possible.

Goals of this project:
  • Create a new OOT (gr-dect)
  • Receive a clear voice signal from an unencrypted DECT signal (DECT sniffer)
  • Can we use GNU Radio to actually connect to a DECT base station?

Skills required: DSP, C++, Python

GRC Improvements

An eternal point on this list -- and still, there's so, so much to be done. Why not join the QT/GRC team this summer?

There's a long list of items to be done here; the exact details need to be arranged with the GRC Working Group on a short notice, due to the high-paced development we currently have there. Here's a non-exhaustive list of items that need to be addressed:

  • Better graphics export (SVG)
  • GUI builder
  • C++ support
  • On-canvas notes and annotations
  • Multi-layer flow graphs
  • Multi-page flow graphs
  • Easier access to verbosity levels
  • Faster iteration dev cycles for OOTs
  • Editable Python blocks

Skills required: Python, Good feel for UIs (and UX)

SigInt Functionality

This would be a meta-project with the goal to tie together project (and add some own functions) for a basic SIGINT monitoring station. Such a system would be able to automatically detect signals, attempt to demod and receive them, etc.
The actual DSP required is immense, and not feasible for this project. However, a GUI shall be provided with the ability to link in components which are able to do these things and connect them.

In order to pass, a working demo of some kind shall be made available at GRCon'15.

Objectives
  • Develop a GUI that ties to together visualization tools for signal analysis
  • Create a working demo
  • Demonstrate at least an energy-based detection and decoding of a typical simple wireless protocol (e.g. HF comms)

Skills required: Wireless Comms, C++, Python, GUI/QT development

GNU Radio packet radio (gr-gdtp)

Packet radio is still a niche in GNU Radio at the moment. Therefore, it'd be interesting to extend support for it and add more applications that make use of it.

Libgdtp is a new library written in C++ that combines a number of features such as framing, ARQ, scheduling, multiplexing, addressing, etc. The library will be released soon and a GR OOT module is on its way too that uses the library. One goal of libgdtp is to allow the user to specify certain communication requirements such as the level of reliability or minimum throughput on a per-application basis. The protocol would then try to accommodate the user requirements such that these requirements are fulfilled if possible.
The library has been developed as a research project and still misses a number of features that would make it more powerful including more advanced ARQ mechanisms or frame schedulers. The goal of this GSoC work item is to enhance it towards this direction.

Objectives
  • Improve OOT module
  • Improve library interface
  • Improve GRC support
  • Implement advanced ARQ mechanisms such as Goback-N or selective repeat
  • Implement advanced scheduling algorithms such as Token-bucket scheduling
Skills required
  • C++, Python
  • Communication protocols
Potential mentor(s)

Andre Puschmann

Industry standard channel decoders for gr-fec

The interest in using industry standard channel encoders and decoders in software stacks is ever growing. The goal of this project is to enhance gr-fec and add some of the most commonly used codes. Examples for these codes are the codes used in LTE, UMTS, IEEE 802.11 (Wifi), DVB-RCS1/2 and the codes NASA is using for their deep space probes (Cassini, Pathfinder). Because the codes to be implemented are specific ones, they can be vastly optimised using SIMD instructions to maximize the throughput. SIMD Kernels then can be added to VOLK and used in gr-fec.

Objectives
  • Implement standard codes in gr-fec
  • Optimise implementations using SIMD instructions
Skills required
  • C/C++, Python
  • SIMD
  • Channel encoding/decoding
Potential mentor(s)

tbd



Old summer of code ideas

These ideas for projects did not find a student in previous SoCs. The project ideas are left in here for archaeological purposes and future reference.

Signal Processing

Vector Network analyzer

Wireless Networks In-the-Loop

MIMO transceiver

Advanced Signal Visualization and Analysis

Optimization and Performance

Integration of OpenAirInterface LTE software modem blocks into VOLK

Automatic Filter Optimization

GRC and Development Tools

Remote deployment and control of flow graphs from within GRC

GNU Radio Companion improvements

QT and Python3 port of the GNU Radio Companion

Improve PyBombs

Measurement Toolbox

Network Coding Toolbox

Improved support for many-core floating-point accelerators

Channel Sounder (first proposed: 2012)

gr-perf-monitorx.png - performance monitor example (218 KB) Tom Rondeau, 03/27/2013 04:25 pm

gr-perf-monitorx-small.png (105 KB) Martin Braun, 03/28/2013 05:06 pm

fir_vs_fft_ccc-scaled.png - FIR vs. FFT filter performance (41.2 KB) Tom Rondeau, 02/05/2014 09:29 am