IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

Similar documents
Yocto Project ADT, Eclipse plug-in and Developer Tools

Developing Embedded Linux Devices Using the Yocto Project

Yocto Project Eclipse plug-in and Developer Tools Hands-on Lab

Developing Embedded Linux Devices Using the Yocto Project

Developing applications on Yocto. Lianhao Lu Intel Corporation Feb. 29th, 2012

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

The Yocto Project Eclipse plug-in: An Effective IDE Environment for Embedded Application and System Developers

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development

Running a Program on an AVD

Linux Foundation Automotive Summit - Yokohama, Japan

WIND RIVER INTELLIGENT DEVICE PLATFORM XT

Embedded Linux development training 4 days session

How To Develop Android On Your Computer Or Tablet Or Phone

Android Application for Accessing KNX Devices via IP Connection

NanopowerCommunications: Enabling the Internet of Things OBJECTS TALK

Introduction to Android

The Future of IoT. Zach Shelby VP Marketing, IoT Feb 3 rd, 2015

Building Embedded Systems

IoTivity Connecting Things in IoT. Ashok Subash

Workshop on Android and Applications Development

Introduction to Android

Android Development: a System Perspective. Javier Orensanz

Internet of Things based approach to Agriculture Monitoring

Introduction to Android Development. Jeff Avery CS349, Mar 2013

MontaVista Linux 6. Streamlining the Embedded Linux Development Process

The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.

How To Develop An Open Play Context Framework For Android (For Android)

Thingsquare Technology

Developing reliable Multi-Core Embedded-Systems with NI Linux Real-Time

Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah.

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

An Introduction to Android

Mentor Embedded IVI Solutions

HP Intelligent Management Center Standard Software Platform

Key requirements for Interoperable IoT systems

HP Intelligent Management Center Enterprise Software Platform

IST STREP Project. Deliverable D3.3.1u Middleware User s Guide Multi-Radio Device Management Layer.

Cross-Platform Software Considerations for Internet of Things

Questions from The New SensorTag - IoT Made Easy Webinar

Java and the Internet of Things

Mobile Phones Operating Systems

OpenEmbedded for medical devices

Connecting IPv6 capable Bluetooth Low Energy sensors with the Internet of Things

Track One Building a connected home automation device with the Digi ConnectCore Wi-i.MX51 using LinuxLink

01. Introduction of Android

Linphone based Video Door Entry Intercom System

ARM mbed IoT Device Platform. November 3 rd, 2014

KURA M2M/IoT Gateway. reducing the distance between embedded and enterprise technologies. Tiziano Modotti, October 28 th, 2014

Student Attendance Through Mobile Devices

Andreas Burghart 6 October 2014 v1.0

Reduce Cost and Complexity of M2M and IoT Solutions via Embedded IP and Application Layer Interoperability for Smart Objects

Smartphone market share

CARRIOTS TECHNICAL PRESENTATION

Overview of CS 282 & Android

6LoWPAN: An Open IoT Networking Protocol

Creating a Custom Embedded Linux* OS for Any Embedded Device using the Yocto Project*

Introduction to Android

VIA COLLAGE Deployment Guide

Eddy Integrated Development Environment, LemonIDE for Embedded Software System Development

Disruption Tolerant Networks and its relevance to IOT/M2M. Extensible NMS Support for DTN Mesh Networks + Applications

IoT Solutions from Things to the Cloud

HP Intelligent Management Center Standard Software Platform

CS 528 Mobile and Ubiquitous Computing Lecture 2: Android Introduction and Setup. Emmanuel Agu

Lab 0 (Setting up your Development Environment) Week 1

Mellanox Academy Online Training (E-learning)

Board also Supports MicroBridge

Implementing SAAS: Cloud Computing and Android Based Application Framework for C Programming

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

TEGRA X1 DEVELOPER TOOLS SEBASTIEN DOMINE, SR. DIRECTOR SW ENGINEERING

APx4 Wireless System-on-Module 5/8/2013 1

About Us. Technology Solutions & Services Company. Turn Innovative Ideas into Real Products & Software, Efficiently

The fabryq IoT prototyping platform

Application Centric Infrastructure Object-Oriented Data Model: Gain Advanced Network Control and Programmability

Reducing Configuration Complexity with Next Gen IoT Networks

Espial IPTV Middleware. Evo Solution Whitepaper. <Title> Delivering Interactive, Personalized 3-Screen Services

Example of Standard API

Smart Shopping- An Android Based Shopping Application

Smart Cities are the Internet of Things

Beyond THE Blinky LED: Voice recognition, Face recognition and cloud connectivity for IOT Edge devices

Crosswalk: build world class hybrid mobile apps

A Modular Approach to Teaching Mobile APPS Development

APPLICATION DEVELOPMENT FOR THE IOT ERA. Embedded Application Development Moves to the Cloud

Cloud3DView: Gamifying Data Center Management

Android on i.mx Applications Processors

THE RTOS AS THE ENGINE POWERING THE INTERNET OF THINGS

Basic Android Setup Windows Version

Data Analysis Load Balancer

H MICRO CASE STUDY. Device API + IPC mechanism. Electrical and Functional characterization of HMicro s ECG patch

Enhanced Project Management for Embedded C/C++ Programming using Software Components

VIA CONNECT PRO Deployment Guide

ANDROID LEVERED DATA MONITORING ROBOT

TI Linux and Open Source Initiative Backgrounder

Fahim Uddin 1. Java SDK

Windows 10 IoT The Big Reboot By Sean D. Liming and John R. Malin Annabooks

Transcription:

IOTIVITY AND EMBEDDED LINUX SUPPORT Kishen Maloor Intel Open Source Technology Center

Outline Brief introduction to IoTivity Software development challenges in embedded Yocto Project and how it addresses these challenges Key takeaway: IoTivity over Yocto makes an ideal platform for developing embedded IoT applications This is not a tutorial on Yocto

What is IoTivity? Internet Of Things Interconnecting physical objects with the digital world Widespread deployment of Low Power Embedded computers IoTivity High-level APIs for IoT Application Developers Exposing things as resources Discovering and manipulating resources over multiple network transports Utilize emerging IoT technologies

Simple Use Cases Turn Lights ON Light bulbs with BLE radios Smartphone Notify Current Setting 75F 75F Smart TV Digital Thermostat Regulate Temperature Tablet

IoTivity Software Stack CoAP coap://<deviceaddress>/temperature IoTivity Stack on an edge device OS Middleware Application C/C++ APIs IoTivity Resource Model & Services Connectivity Abstraction Network Interfaces User space Kernel space Thermostat Protocols and drivers

Emerging Open IoT Protocols 6LoWPAN: IPv6 over Low Power Wireless Personal Area Networks Bluetooth Smart IPSP RPL: Routing over Low Power and Lossy Networks New RFCs being published followed by prototype Linux implementations Growing influence of Linux in IoT

Challenges Heterogeneous nature of targets, CPUs, kernels IoTivity needs to be ported to each and maintained separately. Not easily scalable. IoT rapidly evolving with new protocols Need modular approach to quickly plug-in new IoT protocol implementations

Challenges Embedded development now becoming mainstream with IoT Need cohesive software development infrastructure that is uniform across multiple IoT targets These challenges are addressed by the Yocto Project

Yocto Project http://www.yoctoproject.org/ Hosted at the Linux Foundation Create customized OS images for embedded targets Ready-to-use BSPs for multiple platforms Layer-based flexible build architecture Focus on configurability and reuse Support for major CPU architectures

Yocto Build Workflow Target Machine Definition BSP OS Image Metadata For Builds And Patches Recipes For Software Components BitBake Build Task Executor Binary And Development Packages Package Feeds SDK Configuration

BitBake Recipes Represents a meta package Define contents of binary and development packages Dependency relationships between recipes Versioning Interfaces for fetch, patch, configure, compile, install steps Architecture specific switches

Software Layers Related collections of recipes to build applications and middleware Customize build and configuration of BSP and other software layers Package up IoTivity and dependencies in a target agnostic way

meta-oic Software Layer git://git.yoctoproject.org/meta-oic Samples IoTivity Resource clients and servers Third-party protocol plug-ins APIs Service Model and Plug-in Manager Resource Model Base Framework Dependencies Kernel Configuration Protocol implementations Middleware Updates

Kernel Builds In Yocto linux-yocto Upstream kernel based trees maintained by the Yocto Project Platform specific branches Recipes for respective kernels linux-yocto-custom Build any git-based kernel Use Yocto provided kernel tooling for build / configuration

Adding Kernel Features Create a.bbappend to build upon existing kernel recipes Resides in your layer and distributable Configuration Fragments Create a.cfg and place in your kernel.bbappend #Enable features for IoTivity CONFIG_BT_6LOWPAN=y CONFIG_IEEE802154=m CONFIG_IEEE802154_6LOWPAN=m CONFIG_6LOWPAN_IPHC=m CONFIG_MAC802154=m

Other Supporting Features Distribute new features as patches Middleware Adding a GATT interface for IoTivity to BlueZ Create a.bbappend for the BlueZ recipe Protocol integration RPL (Routing protocol for Low Power and Lossy Networks) XBee module for 802.15.4 support Security related features Opportunity to pack in early implementations of IETF specs via kernel patches

Application Development Application Development Toolkit Standalone cross-compiling toolchain with debugging and profiling tools Constructing an SDK Picks all development packages for target ADT will include IoTivity SDK Generates target ADT for specified build machine architecture IoTivity developers can focus on application development without getting bogged down by details of target

Yocto Eclipse Plug-in Eclipse integration with Yocto ADT Access to cross-compiler, debugging and profiling tools Remote application debugging, step through code Real hardware via network using its IP address QEMU Install Plug-in and point it to your target ADT Configure remote connection in C++ Remote Application under Debug Configurations

Remote Debugging

Releasing Your Application Write a BitBake recipe to build your application in the Yocto environment Distribute application packages for specific target platforms

Putting It To Test Built IoTivity and toolchains for Intel Edison, Galileo and MinnowBoard MAX BSPs available online C++ MinnowBoard/Edison applications built with ADT Android UI IoTivity MinnowBoard Application IoTivity Yocto Resource Aggregation Edison Ambient Light Temperature Application Sensing / Control IoTivity Yocto

To Conclude Yocto provides for greater scale Configure in one place, deploy on any Yocto-based platform Improved embedded IoT app developer experience Linux supports state-of-the-art IoT technologies We ve had promising results

How Can You Participate In IoTivity? IoT application developers Open-source contributors Propose new framework features, use cases https://www.iotivity.org/get-involved IoTivity Mailing List

Resources IoTivity SDK and Samples https://www.iotivity.org/ Open Interconnect Consortium http://openinterconnect.org meta-oic Yocto Layer https://git.yoctoproject.org/cgit/cgit.cgi/meta-oic/about/ Working with kernels in the Yocto Project: Presentation https://www.yoctoproject.org/sites/default/files/devdaykernel-tzanussi-elc-2013.pdf Yocto Eclipse IDE Plug-in: Instructional video http://www.youtube.com/watch?v=3zlou-glsh0

Thanks for your time! Q&A