Introduction
2024-10-21
Contact
E-mail: oliver.hahm@fb2.fra-uas.de
Appointments: via e-mail, room 1-212
RIOT is the friendly operating system for the IoT!
You’re interested in …
Get in touch and do some hacking at the All RIOT event at the university! Usually every second Wednesday at 2pm in room 1-237.
First meeting: November 06, 2024.
All information on https://allriot.dahahm.de
What is your motivation for this course?
What do you think about the Internet of Things?
Think about the software development model you want to use!
Which aspects of your work are going to be evaluated?
Definition of the Grades
1.0
An excellence performance. It is awarded if the work evaluated is outstanding, flawless and near perfection. It exceeds the expectations and is particularly witty.
2.0
A good performance. The work evaluated meets the expectations and fulfills the requirements well. It may contain some minor or formal errors.
3.0
A satisfying performance. The work evaluated meets most of the expectations and fulfills the basic requirements. It contains some clear errors that should be corrected.
4.0
A sufficient performance to pass the examination. The work evaluated fulfills the bare minimum but significantly more. It contains several clear errors that must be corrected.
5.0
An insufficient performance. The work evaluated does not even fulfill the basic requirements and is not enough to pass the exam. It may also be awarded in case of cheating or plagiarism.
Continuously document everything!
All material regarding this course can be found at https://teaching.dahahm.de
This includes
Three Disruptive Technologies as the Roots of the IoT
Wireless Communication
Low-cost Embedded Systems
The Internet
Connecting the Physical World with the Internet
Building & Home Automation
Industrial Automation
Mobile Health
Micro & Nano Satellites
It ain’t smart if I have to charge it every day.
Low-end IoT Devices: Limited Resources (RFC7228)
Arduino Due
Raspberry Pi Pico
nRF52840 Dongle
+ Use Case Requirements
Software Requirements
No user interaction
Constrained Hardware
Unified Software Platform
Open Source
Full-fledged OS
Does not fit
WSN OS
Too complicated
RTOS
Too Minimalistic
"If your IoT device cannot run Linux, then use RIOT!"
GDB - The GNU Debugger
Important Programming Language Properties
Why C?
Programming Guidelines
Design Decisions
Challenge: Support a Plethora of different Platforms
Goal: Provide a Common API
Source: MikroElektronika, https://www.mikroe.com
Low Memory Usage
On a Low-end IoT Device
(16-bit, 8 MHz):
Linux Boot Sequence
Source: https://arkit.co.in/linux-boot-process-millionaire-guide/
RIOT Boot Sequence
A Periodic System Tick requires Timers
Accounting for Real-Time Requirements
Source: Educación Física, https://efsancristobalcartagena.blogspot.com
Running
and Pending
It may be blocked waiting for …
Result: Low Porting Effort
Diff Size | ||
Package | Overall | Relative |
libcoap | 639 lines | 6.3 % |
libfixmath | 34 lines | 0.2 % |
lwip | 767 lines | 1.3 % |
micro-ecc | 14 lines | 0.8 % |
relic | 24 lines | \(<\)0.1 % |
RIOT is as small as traditional WSN Operating Systems
Application | ROM | RAM |
---|---|---|
RIOT 2024.07 | 42,341 | 6,0101 |
Contiki 3.0 | 51,562 | 5,530 |
TinyOS tinyos-main | 40,574 | 6,812 |
Standard IoT IPv6 Networking Application
Code size comparison [Bytes] between RIOT, Contiki, and TinyOS.
IoT Software in 2024
RIOT Open Source Development
E. Baccelli et al. “RIOT: An open source operating system for low-end embedded devices in the IoT,” IEEE Internet of Things Journal, December 2018.
O. Hahm, “Enabling Energy Efficient Smart Object Networking at Internet-Scale,” Ecole Polytechnique, December 2016.
O. Hahm, E. Baccelli, H. Petersen, and N. Tsiftes, “Operating Systems for Low-End Devices in the Internet of Things: a Survey,” IEEE Internet of Things Journal, October 2016.
D. Lacamera, “Embedded Systems Architecture,” O’Reilly, May 2018.
Any Questions?
Project - Introduction - WS 24/25