We are planning tutorials as recorded presentations to be shared through YouTube that we would encourage the audience to watch prior to the conference. That would allow us to interact live during the tutorial schedule as the videos will be played on the YouTube channel of European GNU Radio Days at the same time than the authors will be available on a webconference stream to answer questions and address issues that might (have been) met when reproducing the lab sessions.

Introductory track

1. Basics of discrete time digital signal processing: prototyping with GNU Radio

JM Friedt

In this tutorial, we will introduce some of the most relevant topics related to discrete time signal processing, but most significantly use GNU Radio generating synthetic signals to introduce topics such as datarate consistency throughout the flowgraph, aliasing in the context of decimation and the need for low-pass filtering, why analytic (complex) are naturally procuced by the radiofrequency frontend and how to generate the complex component when using real-valued acquisitions. This introductory tutorial will also provide the attendees the opportunity to become familiar with the graphical user interface provided with the GNU Radio library, GNU Radio companion, the data types, commenting graphs and finding appropriate processing blocks. A preliminary video of possible content is available as the second half of http://jmfriedt.free.fr/TI2020_1.mp4

The video of this first tutorial is available on Youtube (tutorial 1) so the audience can become familiar with the topics addressed and discuss during the conference issues that might arise when running the experiments.

2. Receiving a Real Transmission with GNU Radio from A to (almost) Z

Leonardo S. Cardoso

In this tutorial we will explore a communication standard from scratch, trying to understand its spectral use, guess the modulation, reverse-engineer the frame structure, and guess the contents. Through this tutorial you'll be able to learn some basic functionalities of GNU Radio and some very simple signal processing tricks that will allow to properly decode a radio stream. This tutorial doesn't aim at teaching the basics of signal processing but rather to be accessible to people who are do not know it and are interested to get started anyway. I advise following the Basics of discrete time digital signal processing: prototyping with GNU Radio to learn the basics fo signal processing.

The video of this tutorial is now available on YouTube.

Link to the radio recordings: https://leosam.net:5001/sharing/0x02terFf

3. FIT/CorteXlab with GNU Radio using Docker

Leonardo S. Cardoso

FIT/Cortexlab is an experimental testbed, hosted in Lyon, France, for research and education around software defined radio and GNU Radio. FIT/CorteXlab accessible through internet and is available to anyone around the world. This tutorial aims at showing how to use FIT/CorteXlab as a tool to learn GNU Radio with docker. We will explore ready made tutorials available in the FIT/CorteXlab held page and also understand how to use Bokeh GUI to control our GNU Radio session.Inria_0224_29.jpg

The videoof the tutorial is available on YouTube

4. Tips and tricks on "efficiently" using SDR and GNU Radio

JM Friedt

After the basic introductions to the various processing methods involving both synthetic and real signals, we endeavour towards more advanced processing techniques. Software Defined Radio provides utmost flexibility and most if not all signals available withing the sampling bandwidth of the analog to digital converter can be processed simultaneously, assuming sufficient computational processing power is available. Each signal must be brought to baseband, a task taken care of by the Xlating FIR Filter as demonstrated with the demodulation of multiple FM broadcast stations. However, GNU Radio might not always be the most convenient processing framework, either because discontinuous datasets are to be processed (e.g. RADAR) or because more advanced processing are best prototyped with interpreted languages (e..g. Python or GNU/Octave) before porting the algorithm to C++ and then to the GNU Radio framework. Communication between GNU Radio and external tools can be achieved with named pipes, sockets or 0-MQ connected or datagram communication links. A preliminary video of the some of the content that might be shown in this tutorial is addressed at http://jmfriedt.free.fr/TI2020_3.mp4

The video of this last tutorial is available on Youtube (last tutorial) so the audience can become familiar with the topics addressed and discuss during the conference issues that might arise when running the experiments, and the slides at http://jmfriedt.free.fr/gnuradiodays2021_2jmfriedt.pdf.



Advanced track

1.Hacking IoT RF communications with GNU Radio

Hervé Boeglen

In this tutorial, starting with an existing GNU Radio out of tree (OOT) module that we are going to modify and improve to suit our needs, we will underline the necessary steps to analyze and decode RF signals from off-the-shelf low-rate chips targeted at IoT applications in the ISM bands (e. g. nrf52832, s2-lp, si446x). At the end of the tutorial, the attendee will take home a handy software toolkit to help analyzing ISM low-rate communications.

The video of this tutorial is now available on YouTube.

2. Taking the best of both worlds: GNU Radio and Python

JM Friedt

GNU Radio is a set of libraries split as processing blocks connected with each other, as the output of the GNU Radio Companion graphical user interface for example, by a Python script. While each processing block is optimized for efficiency and speed, some tasks might not require such optimization, such as running a TCP server to fetch commands from client for asynchronously tuning flowchart parameters from clients. While these functions will not have access to the {I,Q} stream transfered between processing blocks, the behaviour of the flowchart can be adapted as it is running by calling callback functions. Introducing Python functions in the script generated from GNU Radio Companion prevents from returning to the graphical user interface after the modifications: the Python Module provides the means to include custom functions controlling the flograph, while the Python Snippet allows for launching such functions at startup.

The video of this tutorial is available at https://www.youtube.com/watch?v=M8dqgqO4TuI and the slides at http://jmfriedt.free.fr/gnuradiodays2021_3jmfriedt.pdf

3. Running GNU Radio on embedded hardware

G. Goavec-Merou

While Software Defined Radio (SDR) provides the means to process radiofrequency datastreams using minimal hardware and shifting all the processing load to software, the simultaneous increase of computational power of embedded boards leads to a natural convergence of both worlds. Nevertheless, SDR remains a demanding application and all the computational resources of the embedded board are best used to maximize processing bandwidth. In this tutorial, we explain how GNU Radio has been included in the Buildroot embedded framework processing toolchain, the benefit of using a tailored framework over general purpose operating systems (e..g Raspbian). The proposed framework is applicable to a much broader audience than the Raspberry Pi users -- a platform hardly compatible with the premises of embedded development considering its user interfaces -- with an emphasis on boards with low power requirements, unable to run a compiler on-board as should never be done in the context of embedded systems development. Some of the slides introducing the topic are available at http://jmfriedt.free.fr/projetM1_2020_1.pdf and http://jmfriedt.free.fr/projetM1_2020_2.pdf.

The video of the tutorial is now available on YouTube.


 This system was used when demonstrating embedded FM radio encoding and decoding processing on Raspberry Pi 4.

4. Tags in GNU Radio, from the standard library to custom blocks.

Thomas Lavarenne, Cyrille Morin

Tags are a GNU Radio feature that allows the addition of metadata to chosen samples in a stream. What is their use, how can we create some ourselves? This tutorial presents how to handle them in custom blocks (with examples of embedded python blocks), as well as several standard library utilities.

Teaser video at YouTube teaser video. and the full video of this tutorial is available on YouTube as well.

Starting GNU Radio flowgraphs and corrections:

Online user: 1 Privacy