The Wiselib

While modern programming paradigms such as object-oriented software development and generic programming techniques are already well-established for desktop computers, the contrary is the case for embedded systems. The dominant programming language is still C, although more promising and most importantly more efficient results can be achieved by a well-considered use of C++.

The Wiselib is an algorithms library for networked embedded devices. It contains various algorithm classes (for instance, localization or routing) that can be compiled for several platforms such as iSense or Contiki, or the sensor network simulator Shawn. It is completely written in C++, and uses templates in the same way as Boost and CGAL. This makes it possible to write generic and platform independent code that is very efficiently compiled for the various platforms.

In the scope of Google Summer of Code 2012 we give interested and talented students the opportunity to solve interesting problems arising from the application of theoretical algorithms in practice on wireless sensor nodes. Projects around the Wiselib involve working with networked embedded devices, solving diverse challenges w.r.t. inter-node communication and building the groundwork for whole new classes of algorithms. Depending on the problem at hand this means programming on PCs, testbeds of sensor nodes and/or Android or iOS smart phones.

Projects

6LoWPAN implementation for Wiselib
Nowadays many people are talking about the "Internet of things". This theory is based on a lot of Machine to Machine communication over the IP network. Because of the large amount of sensors, it definitely requires the large IPv6 address space. I would implement the 6LoWPAN stack as a type of a radio, because this way the algorithms don't have to be modified. I want to use the Contiki operation system's implementation, the uIPv6 and the slip (Serial Line IP) as a baseline for my project.

Multi-Sink Tree Routing
The goal of the project is to develop a tree routing algorithm that supports reliable message routing to multiple sinks within a network that may appear or disappear dynamically. To achieve this, the Collection Tree Protocol (CTP) will be ported onto the Wiselib. This will ensure best effort data collection with improved reliability in the context of relatively low traffic networks, where link integrity or quality change in time.
After the integration within the Wiselib, the algorithm will be validated on testbeds based on the TinyOS and Contiki platforms.

Support for Home Router Systems and WiFi Radio & Neighborhood (Android, iOS)
The aim of the project is to provide a port of Wiselib to OpenWrt (a Linux based distribution for routers) as well as WiFi Radio & Neighborhood support. Historically open source projects have gained a lot from hobbyists and casual contributors looking for scratching a particular itch. Making the technology available on a popular platform among hackers will be a boon for the entire Wiselib community. One particular benefit would be for people to start experimenting with ideas such as “intelligent home”. With the WiFi Radio & Neighborhood support as well we can take this one step further and make it possible for average people or developers to use/improve/provide feedback to technologies developed by academia.