This project provides a learning course for RIOT, an operating system for constrained IoT devices, i.e. powered by microcontrollers.
Check the official course at github.com/RIOT-OS/riot-course
The course is divided in 5 sections:
- Introduction contains generalities about the RIOT project
- Getting started contains the basics to start building and programming basic applications with RIOT
- RIOT basics contains information about the internal structure of the OS (source code organization, build system, kernel) but also gives information about the hardware abstraction layer, the drivers and packages
- Networking in RIOT provides basics on IoT protocols supported by RIOT (6LowPAN/IPv6, LoRa) and lists the network stacks provided by the OS
- LoRaWAN with RIOT gives an overview of the LoRaWAN protocol and how to use it with RIOT
- Security with RIOT gives an overview of the IoT security requirements and tools to address those
The full course is designed for 2 full days of work by mixing lectures and exercises to put in practice the exposed notions.
Only a web browser with an internet connection is needed:
- The slides of each section can be followed online, directly from GitHub
- All exercises are using Jupyterlab Notebooks hosted on https://labs.iot-lab.info. All you need is an IoT-LAB account. The source code of the Jupyter Notebooks is available at https://github.com/iot-lab/iot-lab-training.
The boards used during the exercises are all hosted on the IoT-LAB testbed:
-
The IoT-LAB M3 boards for exercises from the RIOT basics and Networking in RIOT sections,
-
ST boards for applications requiring LoRa radio: the B-L072Z-LRWAN1 with the X-NUCLEO-IKS01A2 extension board.
This course together with the exercices can be used for shorter and more oriented tutorials. Here is a list of existing tutorials:
- RIOT Summit - Beginner Tutorial on LoRaWAN
- RIOT Summit - Beginner Tutorial on Security
- RIOT Summit - Beginner Tutorial on Networking
- Inria Academy Master Class - Inria Chile
All course material (slides) is licensed under the Creative commons license CC-BY-ND