WikiStart

Version 117 (Redmine Admin, 02/06/2012 11:08 pm)

1 114 Jun -
h1. Nano-RK: A Wireless Sensor Networking Real-Time Operating System 
2 114 Jun -
3 114 Jun -
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
4 1
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. 
5 1
6 1
7 114 Jun -
h2. News
8 1
9 114 Jun -
* 5/31/2011 Paper on [[nanocf]] Cooperation framework for macro-programming at SECON 2011
10 114 Jun -
* 4/12/2010 Paper on [[U-Connect]] neighborhood discovery at IPSN 2010
11 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
12 114 Jun -
* 10/15/2008 Paper on [[Pubs|Rate-Harmonized Scheduling]] at RTSS 2008
13 114 Jun -
* 2/12/2008 New [[releases|release]] fixes kernel memory bug and adds Windows Support.
14 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.  
15 114 Jun -
* 12/29/2007 "Embedded.com Article":http://www.embedded.com/design/networking/204800543?pgno=1 discusses Nano-RK
16 114 Jun -
* 10/20/2007 Paper on [[Pubs|Vision-Enabled Sensor Networks]] using Nano-RK at RTSS 2007
17 114 Jun -
* 10/6/2007 Public Subversion Read Access for pre-beta [[releases|release]]
18 114 Jun -
* 10/16/2006 Paper on [[Pubs|Voice Over Sensor Networks]] using Nano-RK at RTSS 2006
19 114 Jun -
* 9/25/2006 Paper on [[RT-Link]] running on Nano-RK wins best paper at SECON 2006
20 114 Jun -
* 12/15/2005 Nano-RK paper introduced at RTSS 2005
21 32 Anthony Rowe
22 114 Jun -
23 114 Jun -
h2. Features
24 114 Jun -
25 114 Jun -
26 114 Jun -
* C GNU tool-chain
27 114 Jun -
* Classical Preemptive Operating System Multitasking Abstractions
28 114 Jun -
* Real-Time Priority Based Scheduling
29 114 Jun -
* Built-in Fault Handling
30 114 Jun -
** Task Timing Violations
31 114 Jun -
** Stack Integrity
32 114 Jun -
** Unexpected Node Restarts
33 114 Jun -
** Resource Over-Use 
34 114 Jun -
** Low Voltage Detection
35 114 Jun -
** Hardware Watchdog Timer
36 114 Jun -
** Software Watchdog Timers
37 114 Jun -
* Energy Efficient Scheduling based on _a-prior_ task-set knowledge
38 114 Jun -
* Tickless Timer
39 114 Jun -
* Small Footprint (<2K RAM, 16K ROM, including link layer)
40 114 Jun -
* [[SLIPstream]] (a simple gateway to IP network protocol and utility)
41 114 Jun -
* [[TimeScope]] (a code execution time measurement utility built into the [[FireFly]] programmer boards)
42 114 Jun -
* [[avr-studio|AVR Studio 4 Debugging]]  (Simulating Nano-RK code on a single node using AVR Studio 4 is easy)
43 114 Jun -
* [[Eclipse]] IDE allows for easy development
44 114 Jun -
45 37 Anthony Rowe
Nano-RK supports various wireless link layer protocols including:
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 114 Jun -
h2. Getting Help
54 1
55 116 Redmine Admin
* Try posting on our recently (re)added "Forum":/projects/nanork/boards