RIOT Tutorial

Intoducing embedded programming in C and Rust.

RIOT summit, 2024-09-05, Vienna

riot-logo-trimmed.svg

Brief intro

Christian Amsüss Mikolai Gütschow
chrysn@fsfe.org mikolai.guetschow@tu-dresden.de
@chrysn@chaos.social @mguetschow at GitHub
Free Software, Open Standards GNU Taler on RIOT

Tutorial by the RIOT community, images from Martine Lenders

Plan

You?

Embedded systems

froscon-7.svg

Embedded systems

froscon-8.svg

Embedded systems: What we have

PC embedded
CPU CPU
RAM less RAM
PCI express GPIO, SPI, I2C, PWM
video card, keyboard LED, accelerometer, servo
SSD built-in flash

Embedded systems: How we talk

PC embedded
Ethernet, WiFi, BLE + 6LoWPAN, LoRA, …
IP IP
TCP, UDP UDP, TCP
HTTP, WebDAV CoAP, MQTT
HTML, JSON SenML, CBOR

Embedded systems: Showtime

PC embedded
> 100€ < 1€
days in suspend years on coin battery
2GLoC (Debian sid) 500kLoC (RIOT)
may freeze for a moment real-time

Embedded systems … running RIOT

froscon-9.svg

RIOT OS: Community

RIOT OS: The OS

… all in a few KiB of flash and RAM

RIOT OS: Network

RIOT OS: Support

Exercises

https://github.com/chrysn/RIOT-exercises/tree/2024-summit

https://doc.riot-os.org/ and /rustdoc/

Anatomy of a RIOT application

Rust applications on RIOT

Language choice

Tasks

Tasks II

Let's Play