Difference between revisions of "Ipsn2009-tutorial"

From TinyOS Wiki
Jump to: navigation, search
Line 1: Line 1:
== TinyOS 2.1 ==
+
== TinyOS 2.1 tutorial ==
 +
IPSN 2009
 +
April 16, 2009<br>
 +
San Francisco, CA
  
 +
----
  
 
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.
 
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 [http://enl.usc.edu/~om_p/net2/ipsn2009-tinyos/ipsn2009-tinyos-template.ppt]
 
  
 +
=== Media ===
 +
'''Slides''': [[http://enl.usc.edu/~om_p/net2/tinyos-ipsn2009/tinyos-ipsn2009.pdf PDF]]
 +
[[http://enl.usc.edu/~om_p/net2/tinyos-ipsn2009/tinyos-ipsn2009.ppt PPT]]<br>
 +
'''Streaming Video''': [http://www.vimeo.com/user1636652/videos/sort:oldest hosted on Vimeo]
  
=== Tutorial Plan ===
+
=== Agenda ===
 
 
08:33 - Introductions and overview of the tutorial - Om [http://enl.usc.edu/~om_p/net2/ipsn2009-tinyos/ipsn2009-tinyos-intro.ppt]
 
 
 
08:35 - Basics - Phil and David [http://enl.usc.edu/~om_p/net2/ipsn2009-tinyos/ipsn2009-tinyos-basics.ppt]
 
 
 
09:30 - TOSSIM - Razvan [[http://cs.jhu.edu/~razvanm/wsn/tos-tutorial-tossim.ppt PPT]] [[http://cs.jhu.edu/~razvanm/wsn/tos-tutorial-tossim.pdf PDF]] [[http://cs.jhu.edu/~razvanm/wsn/tos-tutorial-tossim-with-notes.pdf PDF with notes]] [[http://www.slideshare.net/razvanm/tossim slideshare]]
 
 
 
09:45 - Safe TinyOS - John [http://www.cs.utah.edu/~regehr/safe-tinyos-tutorial-ipsn09.ppt]
 
 
 
10:00 - Threads - Kevin [[http://enl.usc.edu/~om_p/net2/ipsn2009-tinyos/ipsn2009-tinyos-threads.ppt PPT]] [[http://enl.usc.edu/~om_p/net2/ipsn2009-tinyos/ipsn2009-tinyos-threads.pdf PDF]]
 
  
 +
<pre>
 +
08:33 - Introductions and overview of the tutorial - Omprakash Gnawali
 +
08:35 - Basics - Philip Levis and David Gay
 +
09:30 - TOSSIM - Răzvan Musăloiu-E.
 +
09:45 - Safe TinyOS - John Regehr
 +
10:00 - Threads - Kevin Klues
 
10:15 - Break/discussions
 
10:15 - Break/discussions
 
+
10:20 - Protocols - Omprakash Gnawali
10:20 - Protocols (Collection/Dissemination/FTSP/Deluge) - Om [[http://enl.usc.edu/~om_p/net2/ipsn2009-tinyos/ipsn2009-tinyos-protocols.ppt PPT]] [[http://enl.usc.edu/~om_p/net2/ipsn2009-tinyos/ipsn2009-tinyos-protocols.pdf PDF]]
+
10:40 - Upcoming technologies (ZigBee/15.4/IP) - Stephen Dawson-Haggerty
 
+
10:50 - Hands-on - Răzvan Musăloiu-E., Omprakash Gnawali
10:40 - Upcoming technologies (ZigBee/15.4/IP) - Steve [[http://www.cs.berkeley.edu/~stevedh/pubs/sdh-tos-tutorial.ppt PPT]] [[http://www.cs.berkeley.edu/~stevedh/pubs/sdh-tos-tutorial.pdf PDF]]
 
 
 
10:50 - Hands-on - Razvan/Om [[http://cs.jhu.edu/~razvanm/wsn/tos-tutorial-hands-on.ppt PPT]] [[http://cs.jhu.edu/~razvanm/wsn/tos-tutorial-hands-on.pdf PDF]] [[http://cs.jhu.edu/~razvanm/wsn/tos-tutorial-hands-on-with-notes.pdf PDF with notes]] [[http://www.slideshare.net/razvanm/tinyos-21-tutorial-handson-session-1345062 slideshare]]
 
 
 
 
11:30 - End
 
11:30 - End
 +
</pre>
  
== Details ==
+
The complete code for the two applications from hands-on is [http://hinrg.cs.jhu.edu/~razvanm/ipsn09/ipsn09.tar.gz here].
 
 
=== 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 ===
 
 
 
[http://www.cs.utah.edu/~regehr/safe-tinyos-tutorial-ipsn09.ppt John's current draft]
 
 
 
=== 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 [http://hinrg.cs.jhu.edu/~razvanm/ipsn09/ipsn09.tar.gz here].
 

Revision as of 02:54, 4 May 2009

TinyOS 2.1 tutorial

IPSN 2009 April 16, 2009
San Francisco, CA


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.


Media

Slides: [PDF] [PPT]
Streaming Video: hosted on Vimeo

Agenda

08:33 - Introductions and overview of the tutorial - Omprakash Gnawali
08:35 - Basics - Philip Levis and David Gay
09:30 - TOSSIM - Răzvan Musăloiu-E.
09:45 - Safe TinyOS - John Regehr
10:00 - Threads - Kevin Klues
10:15 - Break/discussions
10:20 - Protocols - Omprakash Gnawali
10:40 - Upcoming technologies (ZigBee/15.4/IP) - Stephen Dawson-Haggerty
10:50 - Hands-on - Răzvan Musăloiu-E., Omprakash Gnawali
11:30 - End

The complete code for the two applications from hands-on is here.