Skip to content
Rabi Shanker edited this page Apr 13, 2015 · 29 revisions

Below is a list of project ideas proposed for GSOC 2015 (don't hesitate to come forward with your own idea, if you have one that motivates you most). There are three categories of project ideas:

System

Project S1: 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.

Project S2: 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.

Network

Project N1: Support for Bluetooth Low Energy aka Bluetooth Smart

Project Category: Network

Brief explanation: BLE (Bluetooth Low Energy) is a key element of the Internet of Things, as capable devices are already widely deployed. As RIOT comes already with base support for boards supporting BLE (e.g. the Nordic NRF51822), RIOT does not yet support a BLE stack. The goal for this project is to implement BLE support for RIOT.

Expected results: A running BLE stack that is able to connect to a smartphone.

Knowledge Prerequisite: C, git, prior knowledge about Bluetooth Low Energy is a plus but not required

Project N2: Implementation of LwM2M

Project Category: Network

Brief explanation: LwM2M is one of the leading application layer protocols used for M2M communication between constrained devices in the IoT. The goal of this project is to add support for this protocol to RIOT. It is up to the student to start from scratch or to port an existing implementation to RIOT, including a long term continuous integration plan.

Expected results: Support for LwM2M in RIOT, validated by cross-testing against at least one existing LwM2M implementation.

Knowledge Prerequisite: C, git, prior knowledge about LwM2M is a plus but not required

Application

Project A1: Advanced Network Visualization and Configuration Tool

Project Category: Application

Brief explanation: RIOT TV is a visualization tool for RIOT based on node.js, but so far rather static. the goal of this project is to collect the required data for visualization in a non-invasive manner and visualize a priori unknown topologies.

Expected results: Visualize different types of RIOT networks without changes to the operating system in flexible way

Knowledge Prerequisite: C, git, radio sniffers, node.js, graph visualization

Project A2: Intelligently Interacting Light Switches

Project Category: Application

Brief explanation: Use Actor programming on RIOT with the C++ Actor Framework CAF to build a distributed intelligent lightening system. With a simple hardware setup of lights (LEDs) and motion detectors across multiple rooms, create lightening along the path of a moving person. Intelligent lights communicate with neighboring lights using predictive intelligence and CAF message passing. Furthermore, when using colored LEDs, a desktop app can be written with CAF that changes the color either manually or depending on mood or desktop contents.

Expected results: A distributed light control system that mutually interacts and follows users.

Knowledge Prerequisite: C++, hardware control, predictive algorithms

Clone this wiki locally