General Information

The Internet of Things (IoT) aims to seamlessly integrate billions of so-called Smart Objects into traditional Internet infrastructures. From the hardware perspective, Smart Objects typically consist of a tiny, cheap computer, combining energy efficient micro-controllers, low-power radio transceivers, and sensors as well as actuators interacting with the physical world, often powered by batteries. Many of these low-end IoT devices operate in so called low-power and lossy networks (LLNs) and are sometimes referred to as constrained node networks (CNNs).

Most of the theses proposals on this page deal with the development of software or the evaluation of systems and network protocols for Smart Objects and CNNs. In most cases, the IoT operating system RIOT serves as a foundation for the thesis.

Hence, if you would like to apply for a thesis under my supervision, you should have a good understanding of computer networks and the TCP/IP suite as well as you should feel confident in programming in ANSI C. Experience with embedded systems and/or IoT systems is beneficial.

If you think that this is the case please do the following:

  1. Write an email to oliver.hahm@fb2.fra-uas.de and request a username and password.
  2. Use these credentials with an MQTT client to publish your request to the following address: mqtts://<USER>:<PASSWORD>@mqtt.dahahm.de:8883/thesis/request/<USER> I.e., use MQTT over TLS (encrypted and authenticated) via port 8883.
  3. Please use the retain option.


Below you find some topic proposal but other topics are possible.

Proposed Theses

SMTP for Constrained-Node Networks

Read the topic description

E-Mail is an old, yet still highly important and relevant method of exchanging messages. Besides the world wide web it is probably the most popular and most used service of today’s Internet. Nevertheless, since the main protocols for email, especially SMTP, are based on TCP it has not been adopted in the low-end IoT domain. TCP has been considered as too heavy-weight and complex for small IoT devices and not well-suited for low-power and lossy networks. However, recently researchers from Berkeley have figured how to tune TCP to be used for these networks.

As a consequence of these findings, SMTP and email suddenly might be a much better fit for IoT scenarios than previously assumed. In this project, the goal is to port the SMTP library s/qmail to RIOT.

Build and configuration systems for IoT operating systems

Read the topic description

RIOT aims for developer friendly experience and to lower the bar for newcomers to the development of low-end IoT devices. One crucial part, which is still lacking, is the availability of an easy to use build and configuration management.

The first part of this topic would be to survey existing build and configuration systems for established IoT OS like Zephyr or mbed OS. For instance, Zephyr provides a tool called west that helps configuring and building your application. mbed OS provides its own IDE.

The second part, would be to check what is missing for RIOT to ease the development of IoT applications and create a toolset that allows to guide an IoT developer through the process of configuring and deploying applications on top of RIOT for low-end IoT devices.

Comparison of socket abstractions in IoT systems

Read the topic description

In the traditional Internet world POSIX sockets have been used as the default abstraction layer for applications to implement network communication over the last decades. On constrained devices however, POSIX sockets are often too heavy-weight and not an ideal choice because of their memory requirements.

That eventually lead to the development of socket APIs for CCNs like RIOT’s Sock API or Rusts Embedded Network Abstraction Layer. In this topic you should implement wrappers for Rust embedded-nal on top of a network stack like GNRC and evaluate the performance and runtime costs for either abstraction.

Transport Layer Protocols for the IoT

Read the topic description

In the traditional Internet TCP and UDP have been the most commonly used transport layer protocols for decades. Since emergence of QUIC this new (UDP-based) transport layer protocol has become a third option. In contrast, for CCNs TCP has for long been considered too heavyweight and not well suited for LLNs and QUIC has not yet been widely used for these networks. This leaves UDP as the most commonly used transport layer protocol for CCNs.

However, recent studies have indicated that TCP may actually not that ill-suited for CCNs. At the same time people started evaluating QUIC for these networks. In this topic you should evaluate and compare these different transport layer protocols for constrained IoT networks. Besides TCP, UDP, and QUIC you can also consider protocols like SCTP or DCCP for evaluation.

Clock Synchronization for low-power IoT Devices

Read the topic description

The research on clock synchronization protocols for low-power networks have a long tradition in the research area of Wireless Sensor Networks (WSNs). Candidates like the Reference Broadcast Synchronization (RBS) or PulseSync have been evolved over time in order to cater for high accuracy timestamping while coping with the harsh constraints of these networks and systems.

The goal of this topic would be to survey existing protocols, select one or two most appropriate protocols for modern IoT solutions, and provide a proof-of-concept implementation.

IRQ-Throttling

Read the topic description

Enabling interrupts may conflict with the requirements of a real-time system. While methods exist to derive the worst case execution time for interrupt service routines (ISRs), it may be impossible to predict how often and frequent a certain interrupt request (IRQ) may be generated.

The goal of this thesis is to provide a mechanism to throttle ISRs once a certain threshold has been exceeded.

Implementation of Generic Header Compression

Read the topic description

The Generic Header Compression (GHC) as described in RFC 7400 describes a method to compress generic headers and header-like payloads in a similar fashion as the 6LoWPAN header compression (6lo HC).

The goal of this thesis is to implement GHC for the GNRC network stack in the RIOT operating system and evaluate its performance.

Performance Evaluation of ASCON

Read the topic description

Ascon is a family of authenticated encryption and hashing algorithms designed to be lightweight and easy to implement, even with added countermeasures against side-channel attacks.” The goal of this thesis is to evaluate performance metrics for these algorithms in the context of constrained devices, i.e., MCU-powered IoT systems. Metrics such as code size and instructions required per byte shall be assessed on typical low-end IoT devices and compared to alternative approaches.

OTA flashing of PineTime

Read the topic description

The PineTime is a hackable smart watch based on a nRF52832 microcontroller. In order to flash (i.e., reprogram the code on) the device one need to open the case. While the vendor firmware also allows for programming the device over-the-air (OTA) the custom RIOT based firmware which allows you to install a full-fledged operating system with a full TCP/IP suite does not provide support for OTA flashing right now.

Multicore-Support for RIOT

Read the topic description

Modern MCUs sometimes provide multi CPU cores even for low-end devices. A popular example for a cheap low-power MCU with multiple cores is the ESP32. The RIOT operating system, targeted for low-end IoT devices, currently supports only single core CPUs, i.e., while it can be run on MCUs like the ESP32 it does not leverage the advantages of the multicore architecture.

The goal of this thesis is to evaluate the parts of the kernel which would need to be modified for being able to support multiple cores and provide a proof-of-concept implementation.

E-Mail Post-Reception Handler

Read the topic description

Some e-mail servers (particular in companies) may modify the content of e-mails while delivering it to the recipient. This is often unwanted and modifies the content of e-mails in an undesired manner. However, there are libraries (for instance in Python) to access and modify e-mails on the fly on the server. The goal of this thesis would be to implement a service which allows for filter rules to post-process e-mails via IMAP on the server.

Fleet Management for low-power IoT Devices

Read the topic description

Services like Balena offer the management of devices and their applications for fleets of small devices. However, these tools are typically intended for Linux devices deploying container solutions like docker containers.

In this thesis you should evaluate the possibilities to create a fleet management service which can be used for the management and monitoring of low-end IoT devices and deploying applications and/or configurations on these devices. I.e., provide a service similar to the functionalities of Balena but for much smaller devices.

Interoperable Smart Home Applications

Port Control Protocol (PCP) for RIOT

Read the topic description

RPC 6887 defines the Port Control Protocol (PCP) which “allows a […] host to control how incoming […] packets are translated and forwarded by a Network Address Translator (NAT) or simple firewall”. This protocol might be useful for IoT devices behind a NAT/firewall.

The goal of this thesis would be to implement the protocol for the RIOT operating system and evaluate its performance with typical home gateways (such as a Fritzbox or an OpenWRT router).

HTTP for RIOT

Read the topic description

CoAP (Constrained Application Protocol) has been developed as a replacement for HTTP in constrained IoT scenarios. Nevertheless, in some applications a native HTTP server or client might be better suited for a low-end IoT device (for instance, since many cloud providers do not provide a CoAP service).

Comparison of Container-based Virtualization

Read the topic description

While Docker is probably the most famous container-based virtualization system, there are a couple of alternatives like Podman, LXC, or BSD Jails. The goal of this thesis is to survey existing solutions, compare them in terms of features and performance, and derive some best common practises for containerized application and service deployments.

Comparison of Virtualization Managers

Read the topic description

Platforms like Proxmox, LXD, or Incus allows to deploy, manage, and migrate virtual machines and containers. The goal of this thesis is to survey the existing solutions, compare them in terms of features and performance, and derive a set of recommendations for their use in different application scenarios.

Minimal Linux image for Raspberry Pi Zero

Read the topic description

Linux distributions like TinyCore or Puppy Linux provide minimalistic images (including a graphical UI). The Raspberry Pi Zero is a very cheap (and constrained) single-board computer powerful enough to run Linux.

The default Linux distribution for this device (called Raspberry Pi OS) is in fact a rather full-blown Debian installation requiring some Gigabytes of memory and many seconds to boot. In this thesis one should evaluate the possibilities to shrink the installation size and reduce the boot time to a minimum. Custom Linux imaging build tools like Yocto may be helpful to achieve this.