Skip to content
Oleg Hahm edited this page May 26, 2014 · 2 revisions

Below is a list of projects that we consider as interesting and useful for the community. There are 3 categories of projects:

  • System
  • Network
  • Application

Project: Dynamic linking support for RIOT

Project Category: System

Brief explanation: The goal of dynamic linking support in RIOT is two-fold, (i) enable loading and unloading of modules/functionalities at runtime, and (ii) implement the first phase of an approach towards enabling (automatic) software updates.

Expected results: concept and prototype implementation of dynamic linker.

Knowledge Prerequisite: C, Assembler, git, notions of how compiler and linker work.

Any of these are optional but not all of them.

Skill level: high.

Contac: Kaspar or Hauke

Project: Supporting RIOT in ns3

Project Category: System

Brief explanation: RIOT can already run as a process in Linux via the native port and several RIOT instances can be networked on the same Linux machine via dedicated tools (nativenet and desvirt). However, RIOT support within ns3 is expected to enable the community to simulate larger networks of RIOT instances and finer grained network characteristics -- before deployment of the exact same code base on real hardware.

Expected results: multiple, networked instances of RIOT can be simulated within ns3.

Knowledge Prerequisite: C, C++, Python, git, ns3.

Any of these are optional but not all of them.

Skill level: high.

Contact: Ludwig or Emmanuel

Project: DTLS implementation

Project Category: Network

Brief explanation: Security is essential to protect the communication between IoT devices. Datagram Transport Layer Security (DTLS) RFC 6347 is the mandatory standard to provide security in this context. There are several implementation challenges of DTLS on embedded systems that one needs to keep in mind.

Expected results: Transport Layer Security can be used over the available UDP implementation in RIOT.

Knowledge Prerequisite: C, git, COAP, some notions of cryptography

Any of these are optional but not all of them.

Skill level: medium high.

Contact: Martine or Matthias

Project: Python interpreter for RIOT

Project Category: System

Brief explanation: Python is used for simple object oriented programming. The goal of this project is two-fold (i) to allow easier application programming in RIOT and (ii) in a second optional phase, to provide a generic way to access sensor data through Python scripts.

Expected results: implement the C API (and an interpreter) of Python to allow the standard libraries of Python and Python scripts to run on RIOT.

Knowledge Prerequisite: C, Python, git, some notions of programming theory, and embedded programming.

Skill level: high.

Contact: Kaspar or Martine

Project: eLua port for RIOT

Project Category: System

Brief explanation: eLua is a bare-metal embedded distribution of the Lua programming language. It sports a minimal MCU specific layer on top of which embedded devices can be programmed in Lua. This project aims to create a generic port of eLua to RIOT so that eLua's extensive Lua interpreter, libraries and applications can be run on any RIOT powered device with enough ressources.

Expected results: eLua runs as an application on top of RIOT.

Knowledge Prerequisite: C, Lua, git

Any of these are optional but not all of them.

Skill level: high.

Contact: Kaspar or Oleg

Project: ARM Cortex A8 port for RIOT

Project Category: System

Brief explanation: RIOT supports several 32bit ARM Cortex platforms, such as M3 and M4, but not yet platforms based on ARM Cortex A8 such as the BeagleBone. The goal of the project is to support this platform.

Expected results: RIOT kernel runs on BeagleBone.

Knowledge Prerequisite: C, Assembler, git

Skill level: high.

Contact: Thomas or Hauke

Project: Atmel ATmega328 port for RIOT

Project Category: System

Brief explanation: RIOT runs on 16bit platforms (e.g. TI MSP430) and on 32bit platforms (e.g. ARM Cortex) but not yet on 8 bit platforms such as Atmel ATmega328 which powers popular tiny boards including Arduino Uno. This project aims at providing support for such boards.

Expected results: RIOT kernel runs on Arduino Uno.

Knowledge Prerequisite: C, Assembler, git.

Skill level: high.

Contact: Hauke or Kaspar

Project: Support for umbrella platform Thingspeak

Project Category: Application

Brief explanation: Cloud platforms such as www.thingspeak.com provide not only a unified access to several IoT platforms but also ease the development of IoT applications. This project aims at implementing a thingspeak client for RIOT.

Expected results: Library that runs on RIOT to communicate with the open application platform thingspeak. Example RIOT application integrated into thingspeak.

Knowledge Prerequisite: C, HTTP, git

Skill level: medium high.

Contact: Matthias or Emmanuel

Project: RIOT as an RPython module

Project Category: System

Brief explanation: RPython is a subset of the Python language that can be compiled to C. The goal of this project is two-fold (i) to use PyPy to compile RPython to C which can be compiled along with RIOT for embedded devices, and (ii) to develop an RPython module to interface with RIOT.

Expected results: Implementation of an RPython module to allow the development of RPython applications that interface with RIOT. Integration of PyPy for embedded devices.

Knowledge Prerequisite: C, Python, git, some notions of programming theory, and embedded programming.

Skill level: high.

Contact: Ludwig or Kaspar

Clone this wiki locally