NetSys 2023, International Conference on Networked Systems 20234-7 September 2023 – Potsdam, Germany
NetSys 2023 Tutorial on RIOT OS
An Introduction into the RIOT Operating System
A Systems Perspective on constrained IOT Research
Date: 4th September, 2023
Speakers: José I. Álamos, Leandro Lanzieri, Martine S. Lenders, and Michel Rottleuthner
Abstract RIOT is “the friendly Operating System for the Internet of Things” (https://www.riot-os.org/). It provides flexible networking and hardware abstraction APIs, which enable implementation of versatile applications for low-power, constrained IoT scenarios. In this tutorial, we give a brief introduction into developing an application on top of RIOT.
You will also learn how to use RIOT APIs to deploy your own protocol prototypes and how to measure and evaluate common performance features. Using concrete examples from our own research, we will showcase how RIOT can be used in practice.
Topic & Rational The RIOT operating system is an open-source development platform for both commercial and research applications in the embedded sector. RIOT provides full stack implementations of various networking technologies as well as full hardware abstraction capabilities, allowing for testing and deploying network applications on over 250 heterogeneous devices. RIOT is actively utilized in network research, including the design and evaluation of protocol prototypes on all layers, physical transmission schemes, and real-world experiment design.
Our tutorial aims to give a brief introduction into developing RIOT applications, how to utilize the APIs of RIOT to deploy network protocol prototypes, and how to use the features of RIOT for measurements and evaluation of IoT scenarios
By participating the tutorial attendees will learn:
- How to deploy and develop a virtual RIOT application hands-on.
- How to use the APIs of RIOT to create a network protocol prototype.
- How to measure the performance of a RIOT component such as the network protocol prototype developed in 2.
RIOT basics (60 min)
- Downloading RIOT and get it to run.
- Introduction into implementation of shell commands.
- How is hardware abstracted in RIOT
- Using the timer API to schedule tasks.
- Using the threads and the event API.
- A look at RIOT examples to deploy simple networking applications (UDP and CoAP).
Break (20 min)
Networking APIs in RIOT (40 min)
- Implementing a simple transport protocol using NETAPI.
- Implementing a simple application protocol using sock.
Experimentation with RIOT (30 min)
- An exemplary dive into our research topics and how we use RIOT for our experimentation:
- Development of DNS over CoAP using the gCoAP and the sock API.
- Performance improvements using time-slotted MAC layers for LPWAN.
- Energy-improvements utilizing dynamic system performance.
Discussion (30 min)
Requirements for the participants The tutorial is open to anyone who is interested in IoT, CPS, or embedded systems research. Some C programming skills are beneficial, though. Participants are required to bring a WiFi-capable laptop or similar device. Given the hardware restrictions, we will be able to accommodate for a maximum of 30 participants, split into 3 groups.
Materials provided We will provide the slides and code snippets for the tutorial online. We will also provide a number of Raspberry Pis and micro-controller boards, and a WiFi access point over which the participants will be able to log-into the Raspberry Pis with a pre-configured RIOT development environment.