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.
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
- Summer of Code 2015: List of ideas
- Old summer of code ideas
- Signal Processing
- Optimization and Performance
- GRC and Development Tools
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.
- 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
- One possible app is gr-air-modes
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).
Extend the gr-radar OOT with SAR capabilities. Design and run experiments that show how this is used in real life.
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.
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.
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
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)
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.
- 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.
- 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
- C++, Python
- Communication protocols
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.
- Implement standard codes in gr-fec
- Optimise implementations using SIMD instructions
- C/C++, Python
- Channel encoding/decoding
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.