Contiki OS Sharvil Patel, Michael Ray, Emily Rowland 1.

Slides:



Advertisements
Similar presentations
Phil Buonadonna, Jason Hill CS-268, Spring 2000 MOTE Active Messages Communication Architectures for Networked Mini-Devices Networked sub-devicesActive.
Advertisements

Threads, SMP, and Microkernels
Low-Power Interoperability for the IPv6 Internet of Things Presenter - Bob Kinicki Low-Power Interoperability for the IPv6 Internet of Things Adam Dunkels,
Sensor Network Platforms and Tools
Computer Systems/Operating Systems - Class 8
Leveraging IP for Sensor Network Deployment Simon Duquennoy, Niklas Wirstrom, Nicolas Tsiftes, Adam Dunkels Swedish Institute of Computer Science Presenter.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Figure 2.8 Compiler phases Compiling. Figure 2.9 Object module Linking.
Embedded Real-time Systems The Linux kernel. The Operating System Kernel Resident in memory, privileged mode System calls offer general purpose services.
Generic Sensor Platform for Networked Sensors Haywood Ho.
A Framework for Patient Monitoring A. L. Praveen Aroul, William Walker, Dinesh Bhatia Department of Electrical Engineering University of Texas at Dallas.
Threads. Processes and Threads  Two characteristics of “processes” as considered so far: Unit of resource allocation Unit of dispatch  Characteristics.
Introduction to TinyOS. Networking Open Experimental Platform Small microcontroller 8 kB code 512 B data Simple, low-power radio 10 kbps ASK EEPROM (32.
Building an Application Server for Home Network based on Android Platform Yi-hsien Liao Supervised by : Dr. Chao-huang Wei Department of Electrical Engineering.
Smart Home for disabled people Students: Atara Gutman and Anastasia Logvinenko Instructor: Alexander Kinko Final Presentation Semester Spring part.
Programming mobile devices Part II Programming Symbian devices with Symbian C++
A modern NM registration system capable of sending data to the NMDB Helen Mavromichalaki - Christos Sarlanis NKUA TEAM National & Kapodistrian University.
Shahin Farshchi, Member, IEEE, Aleksey Pesterev, Paul Nuyujukian, Eric Guenterberg, Istvan Mody, and Jack W. Judy, Senior Member, IEEE, ” Structure of.
Lab 4 ZigBee & with PICDEM Z Boards 55:088 Fall 2006.
LiNK: An Operating System Architecture for Network Processors Steve Muir, Jonathan Smith Princeton University, University of Pennsylvania
LWIP TCP/IP Stack 김백규.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
LWIP TCP/IP Stack 김백규.
Cisco S2 C4 Router Components. Configure a Router You can configure a router from –from the console terminal (a computer connected to the router –through.
EWatch: A Wearable Sensor and Notification Platform Paper By: Uwe Maurer, Anthony Rowe, Asim Smailagic, Daniel P. Siewiorek Presenter: Ke Gao.
The Contiki Operating System
1 XYZ: A Motion-Enabled, Power Aware Sensor Node Platform for Distributed Sensor Network Applications Presenter: James D. Lymberopoulos, A. Savvides.
Advanced Computer Networks Fall 2013
UNDERSTANDING THE HOST-TO-HOST COMMUNICATIONS MODEL - OSI LAYER & TCP/IP MODEL 1.
Embedded Runtime Reconfigurable Nodes for wireless sensor networks applications Chris Morales Kaz Onishi 1.
Intelligent Database Systems Lab 國立雲林科技大學 National Yunlin University of Science and Technology 1 Wireless Sensor Network Wireless Sensor Network Based.
Dhanshree Nimje Smita Khartad
IPower: An Energy Conservation System for Intelligent Buildings International Journal of Sensor Networks Yu-Chee Tseng, You-Chiun Wang, and Lun- Wu Yeh.
Application Block Diagram III. SOFTWARE PLATFORM Figure above shows a network protocol stack for a computer that connects to an Ethernet network and.
Chapter 2 Processes and Threads Introduction 2.2 Processes A Process is the execution of a Program More specifically… – A process is a program.
Hot Interconnects TCP-Splitter: A Reconfigurable Hardware Based TCP/IP Flow Monitor David V. Schuehler
Power and Control in Networked Sensors E. Jason Riedy and Robert Szewczyk Presenter: Fayun Luo.
Speaker: Chia-Wen Lu (Sally) Adviser: Dr. Quincy Wu Date:02/23/2012
1 VxWorks 5.4 Group A3: Wafa’ Jaffal Kathryn Bean.
A Dynamic Operating System for Sensor Nodes Chih-Chieh Han, Ram Kumar, Roy Shea, Eddie Kohler, Mani, Srivastava, MobiSys ‘05 Oct., 2009 발표자 : 김영선, 윤상열.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Processes and Threads.
Internet of Things. IoT Novel paradigm – Rapidly gaining ground in the wireless scenario Basic idea – Pervasive presence around us a variety of things.
Chapter 2 Process Management. 2 Objectives After finish this chapter, you will understand: the concept of a process. the process life cycle. process states.
Integration of Wireless Sensor Networks to the Internet of Things using a 6LoWPAN Gateway Integration of Wireless Sensor Networks to the Internet of Things.
Slides created by: Professor Ian G. Harris Operating Systems  Allow the processor to perform several tasks at virtually the same time Ex. Web Controlled.
Operating Systems: Summary INF1060: Introduction to Operating Systems and Data Communication.
Final Presentation Smart-Home Smart-Switch using Arduino
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
6 th Italian Forum on Ambient Assisted Living ForItAAL 2015 “ An Open Hardware Modular Node for Wireless Body Area Networks ” An Open Hardware Modular.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Z IGBEE and OSAL Jaehoon Woo KNU RTLAB. KNU RTLAB.
Software Architecture of Sensors. Hardware - Sensor Nodes Sensing: sensor --a transducer that converts a physical, chemical, or biological parameter into.
Advanced Operating Systems CS6025 Spring 2016 Processes and Threads (Chapter 2)
WORKING OF SCHEDULER IN OS
INTRODUCTION TO WIRELESS SENSOR NETWORKS
Voice Controlled Robot by Cell Phone with Android App
Developing IoT endpoints with mbed Client
TrueTime.
Performance analysis of an IP based protocol stack for WSNs
LWIP TCP/IP Stack 김백규.
Topics Covered What is Real Time Operating System (RTOS)
Lesson Objectives Aims Key Words
OPERATING SYSTEMS CS3502 Fall 2017
Ultra-Low-Power Sensor Nodes Featuring a Virtual Runtime Environment
Algorithms for Big Data Delivery over the Internet of Things
Extending IP to Low-Power, Wireless Personal Area Networks
Threads and Data Sharing
CS703 - Advanced Operating Systems
Task Manager & Profile Interface
The Contiki Operating System Allan Blanchard, INRIA
Presentation transcript:

Contiki OS Sharvil Patel, Michael Ray, Emily Rowland 1

Agenda ●Introduction to Contiki with History ●Components ●Applications ●Conclusion 2

Introduction ●Real-time operating system ●Specializes in Internet of Things (IoT) ●Low power oriented ●Open-source (github.com/contiki-os) ○Free in commercial and noncommercial applications ●Easy/Fast rapid development ○Developed in C ●16 supported hardware platforms 3

Specifications ●Extremely lightweight ○10 kB of RAM ○30 kB of ROM ○Fully functional system including GUI requires 30 kB of RAM ■Linux uses 1 MB! 4

History ●Created in 2002 by Adam Dunkels Ph.D. ○Author of the uIP stack, Rime, protothreads ○Founder of Thingsquare ●Now developed by a worldwide team ○TI, Atmel, Cisco, Oxford University, SAP, etc, & you! 5

Applications ●City sound monitoring ●Street lights ●Networked electrical power meters ●Industrial monitoring ●Remote house monitoring ●Radiation monitoring ●ATUM 6

OS components ●Processes ●Protothreads ●Communication stacks ●Full IP networking ●Memory allocation ●Timers ●Power awareness ●Sleepy routers ●Cooja networking simulator ●Coffee - flash file system ●Rime stack ●Watchdog 7

Processes All programs in Contiki are processes There are cooperative and preemptive contexts 8

Protothreads ●Mix of event-driven and multithreaded programming mechanisms ○Kernel invokes a process’ protothread in response to an event ●Non-preemptive ○Blocking event-handlers ○Context switches only available on blocking operations ●Stackless ○Global variables are required for preserving variables across context switches ● 9

Protothreads (continued) ●Extremely lightweight ○Overhead: 2 bytes (plus no stack) ●Portable ○Can be used with/without an OS ○Pure C code (macros) 10

Communication Stacks ●4 types ●Rime ○Lightweight communication stack ○When full IPv6 networking is overkill ○Simple operations (single message sending) ○Layered stack ●uIP ○TCP/IP stack ○Meant for 8 bit and 16 bit devices ○Very low RAM and overhead code 11 Rime uIP 6LoWPAN IPv4 Lightest Heaviest pdfhttps://github.com/adamdunkels/uip

Communication Stacks (continued) ●IPv6 Ready certification ○Developed by Cisco ○Smallest IPv6 stack when it was created ●6LoWPAN ○IPv6 over Low power Wireless Personal Area Networks ○Specializes in low power IPv6 communication ○Allows send/receive over IEEE ■Same network as Zigbee ●Capabilities: UDP, TCP, HTTP Rime uIP 6LoWPAN IPv4 Lightest Heaviest

Memory Allocation ●3 types ○memb memory block ■Static memory struct ■Most common ■Lightweight ○mmem managed memory, ○malloc - standard C library 13

Timers ●Uses: time elapsed, low power wake up, real time scheduling ○Timer & STimer ■Set, reset, check expiration manually, time remaining ○Etimer ■ Timed events, repeated ○Ctimer ■Call a function when expired ○Rtimer ■For real-time tasks, preemptive 14

Power awareness ●Designed for small systems and to last on a pair of AA for years ○Dr. Kevin Fu ●Provides mechanisms for energy management and system power consumption ●Uses timers to figure out where more energy was spent 15

Sleepy routers ●Power saving feature ●When devices are used as relay-nodes, or routers, in wireless networks, Contiki allows these nodes to sleep between packets 16

Cooja networking simulator ●Simulates Contiki nodes ●Emulated node ○Complete hardware emulation ●Cooja node ○Contiki code executed in the simulator ●Java node ●Uses: ○Swarm intelligence ○Indoor localization

Applications 18

Applications -- Koubachi Garden Sensor Wireless, connected garden sensor Data on water, temperature, and light WiFi Connected 2 AA Batteries Push notifications and lookup database 19

Applications -- LIFX Color Changing Lights Adjusts color, warmth, brightness and intensity Can be set to adjust via schedule Connects with: Apps, IFTTT, Nest Products, Samsung SmartThings, Amazon Echo, and others Contiki: Wireless connectivity 20

Applications -- Life of a Badger Sensor Collars with Microcontrollers running Contiki “Detailing badger behavior and locations underground was impossible” - Dr. Andrew Markham Data sent wirelessly Researchers using network maps of collar nodes echnology

ATUM ●Created here at U of M ○Available in lab for our final projects ●Project requirements: ○“Connected” - network enabled ○Low power ○Responsive ○Small ●Uses: ○Timer (for PWM) ○Protothreads ○Interrupts 22

Questions? 23

Resources Getting Started Protothreads Networking

Bibliography

mmem and malloc heap memory allocators mmem is byte aligned, memcpy() or packed must be used malloc is the same as defined in stdlib.h 26