WikiStart

Version 123 (Anthony Rowe, 02/07/2012 01:10 am)

1 114 Jun -
h1. Nano-RK: A Wireless Sensor Networking Real-Time Operating System 
2 114 Jun -
3 118 Anthony Rowe
Nano-RK is a fully preemptive reservation-based real-time operating system (RTOS) from "Carnegie Mellon University":http://www.cmu.edu with multi-hop networking support for use in wireless sensor networks. Nano-RK currently runs on the [[FireFly]] Sensor Networking Platform as well as the [[MicaZ]] motes. It includes a light-weight embedded resource kernel (RK) with rich functionality and timing support using less than 2KB of RAM and 18KB of ROM. Nano-RK supports fixed-priority preemptive multitasking for ensuring that task deadlines are met, along with support for CPU, network, as well as, sensor and actuator reservations. Tasks can specify their resource demands and the operating system provides timely, guaranteed and controlled access to CPU cycles and network packets. Together these resources form virtual energy reservations that allows the OS to enforce system and task level energy budgets. 
4 1
5 1
6 114 Jun -
h2. News
7 1
8 114 Jun -
* 5/31/2011 Paper on [[nanocf]] Cooperation framework for macro-programming at SECON 2011
9 114 Jun -
* 4/12/2010 Paper on [[U-Connect]] neighborhood discovery at IPSN 2010
10 114 Jun -
* 11/13/2009 Paper on "Syntonistor":http://www.andrew.cmu.edu/user/agr/projects/syntonistor/ for time synchronization wins best paper award "SenSys 2009":http://sensys.acm.org/2009/program.htm
11 114 Jun -
* 10/15/2008 Paper on [[Pubs|Rate-Harmonized Scheduling]] at RTSS 2008
12 114 Jun -
* 2/12/2008 New [[releases|release]] fixes kernel memory bug and adds Windows Support.
13 114 Jun -
* 2/7/2008 gcc 4.2.2 with avr-libc 1.6.1 fix multiple minor bugs. Install new toolchain from [[Downloads]] page.  
14 114 Jun -
* 12/29/2007 "Embedded.com Article":http://www.embedded.com/design/networking/204800543?pgno=1 discusses Nano-RK
15 114 Jun -
* 10/20/2007 Paper on [[Pubs|Vision-Enabled Sensor Networks]] using Nano-RK at RTSS 2007
16 114 Jun -
* 10/6/2007 Public Subversion Read Access for pre-beta [[releases|release]]
17 114 Jun -
* 10/16/2006 Paper on [[Pubs|Voice Over Sensor Networks]] using Nano-RK at RTSS 2006
18 114 Jun -
* 9/25/2006 Paper on [[RT-Link]] running on Nano-RK wins best paper at SECON 2006
19 114 Jun -
* 12/15/2005 Nano-RK paper introduced at RTSS 2005
20 32 Anthony Rowe
21 114 Jun -
22 114 Jun -
h2. Features
23 114 Jun -
24 114 Jun -
25 114 Jun -
* C GNU tool-chain
26 114 Jun -
* Classical Preemptive Operating System Multitasking Abstractions
27 114 Jun -
* Real-Time Priority Based Scheduling
28 114 Jun -
* Built-in Fault Handling
29 114 Jun -
** Task Timing Violations
30 114 Jun -
** Stack Integrity
31 114 Jun -
** Unexpected Node Restarts
32 114 Jun -
** Resource Over-Use 
33 114 Jun -
** Low Voltage Detection
34 114 Jun -
** Hardware Watchdog Timer
35 114 Jun -
** Software Watchdog Timers
36 114 Jun -
* Energy Efficient Scheduling based on _a-prior_ task-set knowledge
37 114 Jun -
* Tickless Timer
38 114 Jun -
* Small Footprint (<2K RAM, 16K ROM, including link layer)
39 114 Jun -
* [[SLIPstream]] (a simple gateway to IP network protocol and utility)
40 114 Jun -
* [[TimeScope]] (a code execution time measurement utility built into the [[FireFly]] programmer boards)
41 114 Jun -
* [[avr-studio|AVR Studio 4 Debugging]]  (Simulating Nano-RK code on a single node using AVR Studio 4 is easy)
42 114 Jun -
* [[Eclipse]] IDE allows for easy development
43 114 Jun -
44 122 Anthony Rowe
h2. Nano-RK supports various wireless link layer protocols including:
45 122 Anthony Rowe
46 114 Jun -
* [[RT-Link]] for collision free Real-Time communication
47 114 Jun -
* [[WiDom]] a collision free priority based link layer
48 114 Jun -
* [[b-mac]] for low-power contention based communication
49 114 Jun -
* [[U-Connect]] a Low-Latency Energy-Efficient Asynchronous Neighbor Discovery protocol
50 114 Jun -
* [[pcf-tdma|PCF TDMA]] Flexible and simple, low-power, one-hop TDMA for both high and low data-rate collection
51 106 Anthony Rowe
52 46 Anthony Rowe
53 123 Anthony Rowe
h2. Getting Started
54 120 Anthony Rowe
55 119 Anthony Rowe
* [[Documentation]]
56 121 Anthony Rowe
* [[Downloads]]
57 116 Redmine Admin
* Try posting on our recently (re)added "Forum":/projects/nanork/boards