Ipsn2009-tutorial
Contents
TinyOS 2.1
TinyOS is an operating system widely used in sensor network research in academia and industry. In this tutorial, we will explain the details of TinyOS 2.1 architecture and learn how to start using TinyOS 2.1 for research and sensor network application development. This tutorial presents: a) an overview of TinyOS 2.1 component-based architecture and design rationale, b) the details of nesC, the C-dialect used to write programs in TinyOS, c) mechanisms to trap memory access errors (null pointer dereferences, array bound violations, etc.) using Safe TinyOS, d) an overview of TinyOS threads which enables seamless interleaving of long running background computations with time critical event-based services, and e) a survey of the TinyOS network stack. The tutorial will include hands-on session during which the participants will learn about TOSSIM, the TinyOS simulator, and run TinyOS programs.
Powerpoint template [1]
Tutorial Plan
08:33 - Introductions and overview of the tutorial - Om [2]
08:35 - Basics - Phil and David [3]
09:30 - TOSSIM - Razvan [4]
09:45 - Safe TinyOS - John [5]
10:00 - Threads - Kevin [PPT] [PDF]
10:15 - Break/discussions
10:20 - Protocols (Collection/Dissemination/FTSP/Deluge) - Om [6]
10:40 - Upcoming technologies (ZigBee/15.4/IP) - Steve [7]
10:50 - Hands-on - Razvan/Om [8]
11:30 - End
Details
TinyOS
nesC/toolchain
TOSSIM
In this part of the tutorial we will see the overall architecture of the TOSSIM and what are the basic Python objects used to drive a simulation. The CPM, the model for the radio noise will also be presented.
Safe TinyOS
Threads
Protocols
We will introduce some protocols that are available for use in TinyOS 2.1. Network protocols - collection - MultihopLQI and CTP - dissemination - Drip and DIP, Time synchronization using FTSP and over-the-air programming using Deluge.
Upcoming technologies
Hands-on
In this session we are going to see what are the install options for TinyOS, describe briefly the layout of the tinyos-2.x and then try to write two applications: one that is using dissemination service and another one that is using the collection service.
The complete code for the two applications is here.