Contact




KTH / Electrical Engineering

Wireless sensor network programm

Wireless sensor network programming: an introduction


News: Course starts October 9th at 9am!
                                                       
Please note: bring your own laptop, make sure that Instant Contiki is installed prior to first lecture.
(see details under "course literature, hardware and software")

 

Practical Information

Course objectives

This course is a two-week intensive course aiming at a hands-on introduction to wireless sensor network programming. The course contains lectures and laboratory exercises centered around a two-week mini-project in which you will implement a protocol or an algorithm of your choice on real sensor network hardware. At the end of the course, there will be a half-day seminar in which participants present their mini-projects and discuss their experiences from hands-on programming of wireless sensor nodes. The programming is done using C on the Contiki operating system. 

 

The course is a three credit course offered under the ACCESS graduate school.

Personnel

Course instructors are Adam Dunkels and Fredrik Österlind from Swedish Institute of Comptuer Science (SICS), while the KTH coordination and examination is done by Carlo Fischione and Mikael Johansson.

Course literature, hardware and software

The course does not follow any book, but lecture notes and exam instructions will be distributed. The following references are useful as background material on the Contiki operating system

 

[1] Adam Dunkels, Björn Grönvall, and Thiemo Voigt, Contiki - a Lightweight and Flexible Operating System for Tiny Networked Sensors, IEEE Emnets 2004.

 

[2] Adam Dunkels, Oliver Schmidt, Thiemo Voigt, and Muneeb Ali, Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded Systems, ACM SenSys 2006.

 

[3] Adam Dunkels, Fredrik Österlind, and Zhitao He, An adaptive communication architecture for wireless sensor networks, ACM SenSys 2007

 

If you are new to C programming, you might want to check out one of the many tutorials avaiable on the web, e.g.

[4] Brian W. Kernighan, Programming in C - A Tutorial


Participants are supposed to bring their own laptop, with a pre-installed Contiki development environment. We will use the

Instant Contiki

environment, which is a one-click installation of the Contiki development environment for Windows PCs. You thus need to install

  • VMWare Player
  • FTDI Driver
  • Instant Contiki 2.2.1

from the Instant Contiki home page, and install the file http://www.sics.se/contiki/ckth08.tar.gz in Instant Contiki.

Wireless sensor nodes ("motes") can be borrowed from the control department prior to the first lecture.   

Disposition

The course consists of 1 lecture, 2 laboratory sessions, individual project work and a half-day seminar where the participants present their results and exchange experiences from their programming project. 

Schedule

Note: The schedule is preliminary: we are still listening to your feedback. Also, please note that the lecture notes are indicative and will be updated prior to the course start.
 

 

Day

Time

Place

Content

Lec 1

Thu

Oct 09, 09-12

Q11

Introduction to Contiki: vision, background, system structure, programming and communication.

[notes]

Lab 1

Thu

Oct 09, 13-15

Q15

 Contiki for TMote Sky: "Hello World", network programming; Contiki simulation with Cooja.

Getting experimental data out of a live system.

[notes]

Lab 2

Thu

Oct 16, 10-12

Control dept

 Q&A

Sem 1

Mon

Oct 27 09-12

Q15

Project seminar

Laboratory exercises and project

The purpose of the first laboratory exercise is to get you started with wireless sensor network programming in Contiki, while the second exercise is more of a QnA session, where you can discuss your mini-project and get direct programming advice.

 

There are two types of mini projects. For students with previous programming experience from another operating system, such as TinyOS, a suitable project is to convert (parts) of a previous project to Contiki. If you believe that you fall under this category, please contact the instructors to verify that your project is reasonable.

 

For students without experience in WSN programming, however, we recommend to choose a simpler introductory project, such as the ones listed below

 

P1. Implementation of a simple routing protocol.

 

P2. Implementation of a link-quality measurement tool for the Contiki shell

 

P3. Implementation of an energy-efficient MAC protocol

 

Please contact Mikael Johansson or Carlo Fischione if you would like to discuss alternative introductory projects.

Exam

There is no formal exam in the course. However, to pass the course you will need to write a short paper on your mini-project, and present your project to the other participants during the seminar day.

 

The purpose of this exercise is thus twofold: you should get experience from building a system using Contiki, and with collecting and presenting experimental data from your system. The paper should not be a report, i.e. you should not describe what you did and in what order you did it. Rather, your paper should present the results of the system you develop as part of the project.

 

You have to adhere two a (strict) two-page limit and follow this template: [instructions], [template], [example paper]. This is the paper structure used by most (good) papers in the computer systems community.