SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Intel Corporation
Introduction to Brillo & Weave
Lund Linux Conference 2016
Constantin Musca – Intel Corporation
Outline
2
I. Context
II. Problem statement
III. The Brillo & Weave solution
IV. Brillo Hello World
V. Brillo Starter Boards from Intel
VI. Next steps
Context
Source: pixabay.com
3
Problem statement
Source: pixabay.com
4
• IoT Standardization and compatibility
• Device integration
• Open devices and products
• Embedded OS
• Core services
• Developer kit
What is Brillo?
Source: Google
• Open Source
• Maintained
• Supports devices with a small footprint
• Customizable
Hardware
Linux Kernel
Android HAL
Device
Admin
System
Services
OTA
updates
…Connectivity
The Brillo Operating System
Source: Google
• Weave
• Metrics
• Crash reporting
• OTAs
The Brillo Core Services
Source: Google
• Based on the Android.mk architecture
• Standard testing
• Android debug bridge (adb)
The Brillo Developer Kit
Source: Google
• Protocol for device discovery, provisioning,
authentication, and interaction
• Schema Driven (JSON)
• OAuth 2.0 Authentication
Weave
Source: Google
Weave Commands Schema Example
10
"commands": {
"set_bedroom_1_door_state“: { … }
…
"set_garage_door_state": { … },
"set_target_temperature": {
"parameters": {
"temperature": {
"type": "number"
}
}
},
"set_light": {
"parameters": {
"onState": {
"type": "string"
},
"saturation": {
"type": "number"
},
"brightness": {
"type": "number"
},
"hue": {
"type": "number"
}
}
}
} Source: developers.google.com/weave
Weave Device State Schema Example
11
"state": {
"bedroom_1_door": {
"type": "string",
"enum": ["locked", "unlocked"]
},
...
"garage_door": {
"type": "string",
"enum": ["opened", "closed"]
},
"nest_thermostat": {
"target_temperature": {
"type": "number"
},
"current_temperature": {
"type": "number"
}
},
"philips_hue_light“: { … },
…
}
Source: developers.google.com/weave
Source: Google
Weave command/data flow
Binder
• View Device Status
• Rename Devices
• Share Devices with apps, friends
• Send commands to Devices
Graphic Source: Google
Google Cloud Administration
Source: Google
Connect to the Brillo’s WiFi AP via a Mobile Device
Provide information to the Device:
• OAuth* 2.0 identity
• WiFI Access Point
• PIN Code
Device contacts the Cloud
− Downloads updates
The Device is Ready
Registering (provisioning) a Brillo device
Brillo Yocto
Kernel Linux Linux
libc bionic eglibc
Init init.rc init.d
IPC Mechanism Binder D-BUS, Linux IPC
Build system Android.mk BitBake
Compatibility with Android
Source Packages
Yes No
Open Source Yes (AOSP) Yes (github)
Brillo vs Yocto
• Download the BDK
• Build a product
• Flash the device
• Execute.... and watch the blinky lights
Brillo Hello World
https://codelabs.developers.google.com/codelabs/brillo-hello-leds-edison
$ TOP=/build
$ export BDK_PATH=$TOP/bdk
$ cd $TOP
$ curl https://dl.google.com/dl/brillo/bdk/latest/bdk-latest.tar.gz
$ tar xf bdk-latest.tar.gz
$ cd $TOP/bdk
$ tools/bdk/brunch/brunch bsp download edison
$ mkdir $TOP/products && cd $TOP/products
$ ${BDK_PATH}/tools/bdk/brunch/brunch product create helloLEDs
edison
$ cd $TOP/products/helloLEDs
$ echo hello_led_service >> config/packages
$ cd $TOP/products/helloLEDs/src
$ mkdir hello_led_service
Project setup
hello_led_service/hello_led_service.cpp
#include <unistd.h>
#include <stdio.h>
#include <mraa.h>
int main(__unused int argc, __unused char* argv[]) {
const unsigned gpio[] = {0, 1, 2};
const int gpio_count = sizeof(gpio)/sizeof(*gpio);
mraa_gpio_context m_gpio[] = {NULL, NULL, NULL};
mraa_init();
for (int i = 0; i < gpio_count; i++) {
m_gpio[i] = mraa_gpio_init(gpio[i]);
if (!m_gpio[i])
return 1;
mraa_gpio_dir(m_gpio[i], MRAA_GPIO_OUT);
}
for (int iterations=0; iterations < 3; iterations++)
{
for (int i = 0; i < gpio_count; i++) {
mraa_gpio_write(m_gpio[i], 1);
sleep(1);
}
for (int i = gpio_count-1; i >= 0; i--) {
mraa_gpio_write(m_gpio[i], 0);
sleep(1);
}
}
for (int i = 0; i < gpio_count; i++)
mraa_gpio_close(m_gpio[i]);
return 0;
}
Write your App, Build and Flash
hello_led_service/Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello_led_service
LOCAL_SRC_FILES := hello_led_service.cpp
LOCAL_SHARED_LIBRARIES := libc libbase libmraa
LOCAL_CFLAGS := -Werror
include $(BUILD_EXECUTABLE)
$ cd ~/products/helloLEDs
$ source envsetup.sh
$ m –j 20
$ provision
$ adb shell hello_led_service
$ du -s -h .
13G .
$
Write your App, Build and Flash
$ cd src/hello_led_service/
$ touch hello_led_service.cpp
$ mm -j20
Building submodule only . . .
Output will be placed in /spare/PROD/helloLEDs/out
...
[ 14% 1/7] target C++: hello_led_service <= /spare/PROD/helloLEDs/src/hello_led_service/hello_led_service.cpp
...
#### make completed successfully (1 seconds) ####
$ adb root
restarting adbd as root
$ adb remount
remount succeeded
$ adb sync
/system/: 1 file pushed. 706 files skipped. 0.0 MB/s (5516 bytes in 0.225s)K
/data/: 0 files pushed. 7 files skipped.
$ adb shell hello_led_service
$
Time Saver – Submodule Build and “adb sync”
Brillo Starter Boards from Intel
Edison Arduino
MinnowBoard
Edison SparkFun
The Intel® Edison Kit for Brillo
• The Intel® Edison kit with the Arduino
Expansion Board was the first Brillo Starter
Board
• Intel is providing the board support package
• MANY sensors and devices are available for
prototyping with this board
• Brillo Starter Board
• Supported in AOSP since Nov ‘15.
Intel® Edison Board for SparkFun
Compare to the Intel® Edison kit with Arduino:
• Same Edison CPU Module
• Simpler GPIO/Bus structure
• Stack on boards
• Smaller form factor
• Battery power available
• Many sensors available
• Brillo Starter Board
• Supported in AOSP since February
Intel® Expansion Kit with MinnowBoard
• Similar Bus availability to Intel® Edison kits
• More powerful processor, Graphics and GPU enabled
• Larger RAM
• Additional storage options
• Add “lures” to expand to additional busses, sensors
• Brillo Starter Board
• Supported in AOSP since February
Next Steps
Likely futures for Brillo:
• Camera Support
• Display via Surface Flinger
• Bluetooth*
• Other connectivity options
Intel Exploring:
• JavaScript
• Node.js
• NW.js (for display)
Questions?
Legal Notices and Disclaimers
Intel technologies’ features and benefits depend on system configuration and may require enabled
hardware, software or service activation. Learn more at intel.com, or from the OEM or retailer.
No computer system can be absolutely secure.
Tests document performance of components on a particular test, in specific systems. Differences in
hardware, software, or configuration will affect actual performance. Consult other sources of
information to evaluate performance as you consider your purchase. For more complete information
about performance and benchmark results, visit http://www.intel.com/performance.
Intel, the Intel logo and others are trademarks of Intel Corporation in the U.S. and/or other countries.
*Other names and brands may be claimed as the property of others.
© 2016 Intel Corporation.
Introduction to Brillo & Weave Operating Systems
Introduction to Brillo & Weave Operating Systems

Weitere ähnliche Inhalte

Was ist angesagt?

Nio100 demo box
Nio100 demo boxNio100 demo box
Nio100 demo box和得 王
 
Global Azure Bootcamp 2016 - Real-world Internet of Things Backend with Azure...
Global Azure Bootcamp 2016 - Real-world Internet of Things Backend with Azure...Global Azure Bootcamp 2016 - Real-world Internet of Things Backend with Azure...
Global Azure Bootcamp 2016 - Real-world Internet of Things Backend with Azure...Andri Yadi
 
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & ArduinoEchelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & ArduinoAndri Yadi
 
IoT Day - Introducing Azure Sphere
IoT Day -  Introducing Azure SphereIoT Day -  Introducing Azure Sphere
IoT Day - Introducing Azure SphereMirco Vanini
 
Are you ready for Microsoft Azure Sphere?
Are you ready for Microsoft Azure Sphere?Are you ready for Microsoft Azure Sphere?
Are you ready for Microsoft Azure Sphere?Mirco Vanini
 
Customize and control connected devices
Customize and control connected devicesCustomize and control connected devices
Customize and control connected devicesCodemotion
 
Road to Republic of IoT - ESP32 Programming and LoRa
Road to Republic of IoT - ESP32 Programming and LoRaRoad to Republic of IoT - ESP32 Programming and LoRa
Road to Republic of IoT - ESP32 Programming and LoRaAndri Yadi
 
Azure Sphere - GAB 2019
Azure Sphere - GAB 2019Azure Sphere - GAB 2019
Azure Sphere - GAB 2019Mirco Vanini
 
Birdwatching using a Raspberry pi, Azure IoT Hub and Cognitive services
Birdwatching using a Raspberry pi, Azure IoT Hub and Cognitive servicesBirdwatching using a Raspberry pi, Azure IoT Hub and Cognitive services
Birdwatching using a Raspberry pi, Azure IoT Hub and Cognitive servicesJohn Staveley
 
Intel galileo and x86 embedded computers
Intel galileo and x86 embedded computersIntel galileo and x86 embedded computers
Intel galileo and x86 embedded computersEvan Williams
 
Windows 10 on Raspberry PI 2
Windows 10 on Raspberry PI 2Windows 10 on Raspberry PI 2
Windows 10 on Raspberry PI 2Mirco Vanini
 
Developing an IoT System FIWARE Based from the Scratch
Developing an IoT System FIWARE Based from the ScratchDeveloping an IoT System FIWARE Based from the Scratch
Developing an IoT System FIWARE Based from the ScratchFIWARE
 
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Marco Parenzan
 
Meraki Virtual Hackathon: app for Splunk Phantom
Meraki Virtual Hackathon: app for Splunk PhantomMeraki Virtual Hackathon: app for Splunk Phantom
Meraki Virtual Hackathon: app for Splunk PhantomJoel W. King
 
Raspberry Pi 2 + Windows 10 IoT Core + Node.js
Raspberry Pi 2 + Windows 10 IoT Core + Node.jsRaspberry Pi 2 + Windows 10 IoT Core + Node.js
Raspberry Pi 2 + Windows 10 IoT Core + Node.jsAndri Yadi
 
Building a Raspberry Pi Robot Arm with .NET 5, Blazor and SignalR
Building a Raspberry Pi Robot Arm with .NET 5, Blazor and SignalRBuilding a Raspberry Pi Robot Arm with .NET 5, Blazor and SignalR
Building a Raspberry Pi Robot Arm with .NET 5, Blazor and SignalRPeter Gallagher
 
IoTSummit: Design and architect always disconnected iot system
IoTSummit: Design and architect always disconnected iot systemIoTSummit: Design and architect always disconnected iot system
IoTSummit: Design and architect always disconnected iot systemMarco Dal Pino
 

Was ist angesagt? (20)

What is Brillo
What is BrilloWhat is Brillo
What is Brillo
 
Nio100 demo box
Nio100 demo boxNio100 demo box
Nio100 demo box
 
Global Azure Bootcamp 2016 - Real-world Internet of Things Backend with Azure...
Global Azure Bootcamp 2016 - Real-world Internet of Things Backend with Azure...Global Azure Bootcamp 2016 - Real-world Internet of Things Backend with Azure...
Global Azure Bootcamp 2016 - Real-world Internet of Things Backend with Azure...
 
Azure Sphere
Azure SphereAzure Sphere
Azure Sphere
 
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & ArduinoEchelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
 
IoT Day - Introducing Azure Sphere
IoT Day -  Introducing Azure SphereIoT Day -  Introducing Azure Sphere
IoT Day - Introducing Azure Sphere
 
Are you ready for Microsoft Azure Sphere?
Are you ready for Microsoft Azure Sphere?Are you ready for Microsoft Azure Sphere?
Are you ready for Microsoft Azure Sphere?
 
Customize and control connected devices
Customize and control connected devicesCustomize and control connected devices
Customize and control connected devices
 
Road to Republic of IoT - ESP32 Programming and LoRa
Road to Republic of IoT - ESP32 Programming and LoRaRoad to Republic of IoT - ESP32 Programming and LoRa
Road to Republic of IoT - ESP32 Programming and LoRa
 
Azure Sphere - GAB 2019
Azure Sphere - GAB 2019Azure Sphere - GAB 2019
Azure Sphere - GAB 2019
 
Birdwatching using a Raspberry pi, Azure IoT Hub and Cognitive services
Birdwatching using a Raspberry pi, Azure IoT Hub and Cognitive servicesBirdwatching using a Raspberry pi, Azure IoT Hub and Cognitive services
Birdwatching using a Raspberry pi, Azure IoT Hub and Cognitive services
 
Intel galileo and x86 embedded computers
Intel galileo and x86 embedded computersIntel galileo and x86 embedded computers
Intel galileo and x86 embedded computers
 
Windows 10 on Raspberry PI 2
Windows 10 on Raspberry PI 2Windows 10 on Raspberry PI 2
Windows 10 on Raspberry PI 2
 
Developing an IoT System FIWARE Based from the Scratch
Developing an IoT System FIWARE Based from the ScratchDeveloping an IoT System FIWARE Based from the Scratch
Developing an IoT System FIWARE Based from the Scratch
 
IoT on Raspberry Pi
IoT on Raspberry PiIoT on Raspberry Pi
IoT on Raspberry Pi
 
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
 
Meraki Virtual Hackathon: app for Splunk Phantom
Meraki Virtual Hackathon: app for Splunk PhantomMeraki Virtual Hackathon: app for Splunk Phantom
Meraki Virtual Hackathon: app for Splunk Phantom
 
Raspberry Pi 2 + Windows 10 IoT Core + Node.js
Raspberry Pi 2 + Windows 10 IoT Core + Node.jsRaspberry Pi 2 + Windows 10 IoT Core + Node.js
Raspberry Pi 2 + Windows 10 IoT Core + Node.js
 
Building a Raspberry Pi Robot Arm with .NET 5, Blazor and SignalR
Building a Raspberry Pi Robot Arm with .NET 5, Blazor and SignalRBuilding a Raspberry Pi Robot Arm with .NET 5, Blazor and SignalR
Building a Raspberry Pi Robot Arm with .NET 5, Blazor and SignalR
 
IoTSummit: Design and architect always disconnected iot system
IoTSummit: Design and architect always disconnected iot systemIoTSummit: Design and architect always disconnected iot system
IoTSummit: Design and architect always disconnected iot system
 

Andere mochten auch

Overview of Brillo and Weave
Overview of Brillo and WeaveOverview of Brillo and Weave
Overview of Brillo and WeaveBin Chen
 
Brillo and weave - Android IOT
Brillo and weave - Android IOTBrillo and weave - Android IOT
Brillo and weave - Android IOTDevavrata Sharma
 
Brillo operating system(os)
Brillo operating system(os)Brillo operating system(os)
Brillo operating system(os)dipakshelkepatil
 
MOSS 2016, Bucharest, Romania - Designing the IoT Jukebox with Brillo
MOSS 2016, Bucharest, Romania - Designing the IoT Jukebox with BrilloMOSS 2016, Bucharest, Romania - Designing the IoT Jukebox with Brillo
MOSS 2016, Bucharest, Romania - Designing the IoT Jukebox with BrilloConstantin Musca
 
Internet Of Things
Internet Of ThingsInternet Of Things
Internet Of ThingsAman Singhal
 
Overview of Brillo (Android Things)
Overview of Brillo (Android Things)Overview of Brillo (Android Things)
Overview of Brillo (Android Things)Bin Chen
 
Brillo / Weave Internals
Brillo / Weave InternalsBrillo / Weave Internals
Brillo / Weave InternalsOpersys inc.
 
Android thingsやってみた
Android thingsやってみたAndroid thingsやってみた
Android thingsやってみたHiroshi Kikuchi
 
Android Things, Alexey Rybakov, Technical Evangelist, DataArt
Android Things, Alexey Rybakov, Technical Evangelist, DataArtAndroid Things, Alexey Rybakov, Technical Evangelist, DataArt
Android Things, Alexey Rybakov, Technical Evangelist, DataArtAlina Vilk
 
The Future is Internet of Things (IOT)
The Future is Internet of Things (IOT)The Future is Internet of Things (IOT)
The Future is Internet of Things (IOT)Adnyesh Dalpati
 
Brillo/Weave Part 1: High Level Introduction
Brillo/Weave Part 1: High Level IntroductionBrillo/Weave Part 1: High Level Introduction
Brillo/Weave Part 1: High Level IntroductionJalal Rohani
 
Android Things: Android for IoT
Android Things: Android for IoTAndroid Things: Android for IoT
Android Things: Android for IoTOpersys inc.
 
Android Things - Solid Foundations
Android Things - Solid FoundationsAndroid Things - Solid Foundations
Android Things - Solid FoundationsPaul Blundell
 
Internet of Things and its applications
Internet of Things and its applicationsInternet of Things and its applications
Internet of Things and its applicationsPasquale Puzio
 
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-gInternet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-gMohan Kumar G
 

Andere mochten auch (17)

Overview of Brillo and Weave
Overview of Brillo and WeaveOverview of Brillo and Weave
Overview of Brillo and Weave
 
Brillo and weave - Android IOT
Brillo and weave - Android IOTBrillo and weave - Android IOT
Brillo and weave - Android IOT
 
Brillo operating system(os)
Brillo operating system(os)Brillo operating system(os)
Brillo operating system(os)
 
Yossi
YossiYossi
Yossi
 
MOSS 2016, Bucharest, Romania - Designing the IoT Jukebox with Brillo
MOSS 2016, Bucharest, Romania - Designing the IoT Jukebox with BrilloMOSS 2016, Bucharest, Romania - Designing the IoT Jukebox with Brillo
MOSS 2016, Bucharest, Romania - Designing the IoT Jukebox with Brillo
 
Internet Of Things
Internet Of ThingsInternet Of Things
Internet Of Things
 
Brillo
BrilloBrillo
Brillo
 
Overview of Brillo (Android Things)
Overview of Brillo (Android Things)Overview of Brillo (Android Things)
Overview of Brillo (Android Things)
 
Brillo / Weave Internals
Brillo / Weave InternalsBrillo / Weave Internals
Brillo / Weave Internals
 
Android thingsやってみた
Android thingsやってみたAndroid thingsやってみた
Android thingsやってみた
 
Android Things, Alexey Rybakov, Technical Evangelist, DataArt
Android Things, Alexey Rybakov, Technical Evangelist, DataArtAndroid Things, Alexey Rybakov, Technical Evangelist, DataArt
Android Things, Alexey Rybakov, Technical Evangelist, DataArt
 
The Future is Internet of Things (IOT)
The Future is Internet of Things (IOT)The Future is Internet of Things (IOT)
The Future is Internet of Things (IOT)
 
Brillo/Weave Part 1: High Level Introduction
Brillo/Weave Part 1: High Level IntroductionBrillo/Weave Part 1: High Level Introduction
Brillo/Weave Part 1: High Level Introduction
 
Android Things: Android for IoT
Android Things: Android for IoTAndroid Things: Android for IoT
Android Things: Android for IoT
 
Android Things - Solid Foundations
Android Things - Solid FoundationsAndroid Things - Solid Foundations
Android Things - Solid Foundations
 
Internet of Things and its applications
Internet of Things and its applicationsInternet of Things and its applications
Internet of Things and its applications
 
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-gInternet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
 

Ähnlich wie Introduction to Brillo & Weave Operating Systems

IoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitIoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitVasily Ryzhonkov
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Codemotion
 
Overview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitOverview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitIntel® Software
 
Developing new zynq based instruments
Developing new zynq based instrumentsDeveloping new zynq based instruments
Developing new zynq based instrumentsGraham NAYLOR
 
Better With Friends: Android+NFC+Arduino
Better With Friends: Android+NFC+ArduinoBetter With Friends: Android+NFC+Arduino
Better With Friends: Android+NFC+ArduinoPearl Chen
 
Accelerate Your IoT and Robotics Development Using Web Technology and Apache ...
Accelerate Your IoT and Robotics Development Using Web Technology and Apache ...Accelerate Your IoT and Robotics Development Using Web Technology and Apache ...
Accelerate Your IoT and Robotics Development Using Web Technology and Apache ...Intel® Software
 
Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitSulamita Garcia
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)RuggedBoardGroup
 
Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things InternalsOpersys inc.
 
Digital twins IoT - for industry 4.0 (meetup Wireless & Networks, Poznan 12.1...
Digital twins IoT - for industry 4.0 (meetup Wireless & Networks, Poznan 12.1...Digital twins IoT - for industry 4.0 (meetup Wireless & Networks, Poznan 12.1...
Digital twins IoT - for industry 4.0 (meetup Wireless & Networks, Poznan 12.1...Marcin Bielak
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024Cloud Native NoVA
 
KSS Session and Tech Talk-2019 on IOT.pptx
KSS Session and Tech Talk-2019 on IOT.pptxKSS Session and Tech Talk-2019 on IOT.pptx
KSS Session and Tech Talk-2019 on IOT.pptxNashet Ali
 
Developing for Android TV and the Nexus player - Mihai Risca & Alexander Wegg...
Developing for Android TV and the Nexus player - Mihai Risca & Alexander Wegg...Developing for Android TV and the Nexus player - Mihai Risca & Alexander Wegg...
Developing for Android TV and the Nexus player - Mihai Risca & Alexander Wegg...Codemotion Tel Aviv
 
Android things introduction - Development for IoT
Android things introduction - Development for IoTAndroid things introduction - Development for IoT
Android things introduction - Development for IoTBartosz Kosarzycki
 
[Ultracode Munich Meetup #7] Building Apps for Nexus Player & Android TV
[Ultracode Munich Meetup #7] Building Apps for Nexus Player & Android TV[Ultracode Munich Meetup #7] Building Apps for Nexus Player & Android TV
[Ultracode Munich Meetup #7] Building Apps for Nexus Player & Android TVBeMyApp
 
Building Better IoT Applications without Servers
Building Better IoT Applications without ServersBuilding Better IoT Applications without Servers
Building Better IoT Applications without ServersIan Massingham
 
Droidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyDroidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyBenjamin Zores
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesMender.io
 

Ähnlich wie Introduction to Brillo & Weave Operating Systems (20)

IoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitIoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT Devkit
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
Начало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev KitНачало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev Kit
 
Overview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitOverview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer Kit
 
Android Things : Building Embedded Devices
Android Things : Building Embedded DevicesAndroid Things : Building Embedded Devices
Android Things : Building Embedded Devices
 
Developing new zynq based instruments
Developing new zynq based instrumentsDeveloping new zynq based instruments
Developing new zynq based instruments
 
Better With Friends: Android+NFC+Arduino
Better With Friends: Android+NFC+ArduinoBetter With Friends: Android+NFC+Arduino
Better With Friends: Android+NFC+Arduino
 
Accelerate Your IoT and Robotics Development Using Web Technology and Apache ...
Accelerate Your IoT and Robotics Development Using Web Technology and Apache ...Accelerate Your IoT and Robotics Development Using Web Technology and Apache ...
Accelerate Your IoT and Robotics Development Using Web Technology and Apache ...
 
Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer Kit
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things Internals
 
Digital twins IoT - for industry 4.0 (meetup Wireless & Networks, Poznan 12.1...
Digital twins IoT - for industry 4.0 (meetup Wireless & Networks, Poznan 12.1...Digital twins IoT - for industry 4.0 (meetup Wireless & Networks, Poznan 12.1...
Digital twins IoT - for industry 4.0 (meetup Wireless & Networks, Poznan 12.1...
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
 
KSS Session and Tech Talk-2019 on IOT.pptx
KSS Session and Tech Talk-2019 on IOT.pptxKSS Session and Tech Talk-2019 on IOT.pptx
KSS Session and Tech Talk-2019 on IOT.pptx
 
Developing for Android TV and the Nexus player - Mihai Risca & Alexander Wegg...
Developing for Android TV and the Nexus player - Mihai Risca & Alexander Wegg...Developing for Android TV and the Nexus player - Mihai Risca & Alexander Wegg...
Developing for Android TV and the Nexus player - Mihai Risca & Alexander Wegg...
 
Android things introduction - Development for IoT
Android things introduction - Development for IoTAndroid things introduction - Development for IoT
Android things introduction - Development for IoT
 
[Ultracode Munich Meetup #7] Building Apps for Nexus Player & Android TV
[Ultracode Munich Meetup #7] Building Apps for Nexus Player & Android TV[Ultracode Munich Meetup #7] Building Apps for Nexus Player & Android TV
[Ultracode Munich Meetup #7] Building Apps for Nexus Player & Android TV
 
Building Better IoT Applications without Servers
Building Better IoT Applications without ServersBuilding Better IoT Applications without Servers
Building Better IoT Applications without Servers
 
Droidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyDroidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform Anatomy
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSes
 

Introduction to Brillo & Weave Operating Systems

  • 1. Intel Corporation Introduction to Brillo & Weave Lund Linux Conference 2016 Constantin Musca – Intel Corporation
  • 2. Outline 2 I. Context II. Problem statement III. The Brillo & Weave solution IV. Brillo Hello World V. Brillo Starter Boards from Intel VI. Next steps
  • 4. Problem statement Source: pixabay.com 4 • IoT Standardization and compatibility • Device integration • Open devices and products
  • 5. • Embedded OS • Core services • Developer kit What is Brillo? Source: Google
  • 6. • Open Source • Maintained • Supports devices with a small footprint • Customizable Hardware Linux Kernel Android HAL Device Admin System Services OTA updates …Connectivity The Brillo Operating System Source: Google
  • 7. • Weave • Metrics • Crash reporting • OTAs The Brillo Core Services Source: Google
  • 8. • Based on the Android.mk architecture • Standard testing • Android debug bridge (adb) The Brillo Developer Kit Source: Google
  • 9. • Protocol for device discovery, provisioning, authentication, and interaction • Schema Driven (JSON) • OAuth 2.0 Authentication Weave Source: Google
  • 10. Weave Commands Schema Example 10 "commands": { "set_bedroom_1_door_state“: { … } … "set_garage_door_state": { … }, "set_target_temperature": { "parameters": { "temperature": { "type": "number" } } }, "set_light": { "parameters": { "onState": { "type": "string" }, "saturation": { "type": "number" }, "brightness": { "type": "number" }, "hue": { "type": "number" } } } } Source: developers.google.com/weave
  • 11. Weave Device State Schema Example 11 "state": { "bedroom_1_door": { "type": "string", "enum": ["locked", "unlocked"] }, ... "garage_door": { "type": "string", "enum": ["opened", "closed"] }, "nest_thermostat": { "target_temperature": { "type": "number" }, "current_temperature": { "type": "number" } }, "philips_hue_light“: { … }, … } Source: developers.google.com/weave
  • 13. • View Device Status • Rename Devices • Share Devices with apps, friends • Send commands to Devices Graphic Source: Google Google Cloud Administration Source: Google
  • 14. Connect to the Brillo’s WiFi AP via a Mobile Device Provide information to the Device: • OAuth* 2.0 identity • WiFI Access Point • PIN Code Device contacts the Cloud − Downloads updates The Device is Ready Registering (provisioning) a Brillo device
  • 15. Brillo Yocto Kernel Linux Linux libc bionic eglibc Init init.rc init.d IPC Mechanism Binder D-BUS, Linux IPC Build system Android.mk BitBake Compatibility with Android Source Packages Yes No Open Source Yes (AOSP) Yes (github) Brillo vs Yocto
  • 16. • Download the BDK • Build a product • Flash the device • Execute.... and watch the blinky lights Brillo Hello World https://codelabs.developers.google.com/codelabs/brillo-hello-leds-edison
  • 17. $ TOP=/build $ export BDK_PATH=$TOP/bdk $ cd $TOP $ curl https://dl.google.com/dl/brillo/bdk/latest/bdk-latest.tar.gz $ tar xf bdk-latest.tar.gz $ cd $TOP/bdk $ tools/bdk/brunch/brunch bsp download edison $ mkdir $TOP/products && cd $TOP/products $ ${BDK_PATH}/tools/bdk/brunch/brunch product create helloLEDs edison $ cd $TOP/products/helloLEDs $ echo hello_led_service >> config/packages $ cd $TOP/products/helloLEDs/src $ mkdir hello_led_service Project setup
  • 18. hello_led_service/hello_led_service.cpp #include <unistd.h> #include <stdio.h> #include <mraa.h> int main(__unused int argc, __unused char* argv[]) { const unsigned gpio[] = {0, 1, 2}; const int gpio_count = sizeof(gpio)/sizeof(*gpio); mraa_gpio_context m_gpio[] = {NULL, NULL, NULL}; mraa_init(); for (int i = 0; i < gpio_count; i++) { m_gpio[i] = mraa_gpio_init(gpio[i]); if (!m_gpio[i]) return 1; mraa_gpio_dir(m_gpio[i], MRAA_GPIO_OUT); } for (int iterations=0; iterations < 3; iterations++) { for (int i = 0; i < gpio_count; i++) { mraa_gpio_write(m_gpio[i], 1); sleep(1); } for (int i = gpio_count-1; i >= 0; i--) { mraa_gpio_write(m_gpio[i], 0); sleep(1); } } for (int i = 0; i < gpio_count; i++) mraa_gpio_close(m_gpio[i]); return 0; } Write your App, Build and Flash
  • 19. hello_led_service/Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hello_led_service LOCAL_SRC_FILES := hello_led_service.cpp LOCAL_SHARED_LIBRARIES := libc libbase libmraa LOCAL_CFLAGS := -Werror include $(BUILD_EXECUTABLE) $ cd ~/products/helloLEDs $ source envsetup.sh $ m –j 20 $ provision $ adb shell hello_led_service $ du -s -h . 13G . $ Write your App, Build and Flash
  • 20. $ cd src/hello_led_service/ $ touch hello_led_service.cpp $ mm -j20 Building submodule only . . . Output will be placed in /spare/PROD/helloLEDs/out ... [ 14% 1/7] target C++: hello_led_service <= /spare/PROD/helloLEDs/src/hello_led_service/hello_led_service.cpp ... #### make completed successfully (1 seconds) #### $ adb root restarting adbd as root $ adb remount remount succeeded $ adb sync /system/: 1 file pushed. 706 files skipped. 0.0 MB/s (5516 bytes in 0.225s)K /data/: 0 files pushed. 7 files skipped. $ adb shell hello_led_service $ Time Saver – Submodule Build and “adb sync”
  • 21. Brillo Starter Boards from Intel Edison Arduino MinnowBoard Edison SparkFun
  • 22. The Intel® Edison Kit for Brillo • The Intel® Edison kit with the Arduino Expansion Board was the first Brillo Starter Board • Intel is providing the board support package • MANY sensors and devices are available for prototyping with this board • Brillo Starter Board • Supported in AOSP since Nov ‘15.
  • 23. Intel® Edison Board for SparkFun Compare to the Intel® Edison kit with Arduino: • Same Edison CPU Module • Simpler GPIO/Bus structure • Stack on boards • Smaller form factor • Battery power available • Many sensors available • Brillo Starter Board • Supported in AOSP since February
  • 24. Intel® Expansion Kit with MinnowBoard • Similar Bus availability to Intel® Edison kits • More powerful processor, Graphics and GPU enabled • Larger RAM • Additional storage options • Add “lures” to expand to additional busses, sensors • Brillo Starter Board • Supported in AOSP since February
  • 25. Next Steps Likely futures for Brillo: • Camera Support • Display via Surface Flinger • Bluetooth* • Other connectivity options Intel Exploring: • JavaScript • Node.js • NW.js (for display)
  • 27. Legal Notices and Disclaimers Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Learn more at intel.com, or from the OEM or retailer. No computer system can be absolutely secure. Tests document performance of components on a particular test, in specific systems. Differences in hardware, software, or configuration will affect actual performance. Consult other sources of information to evaluate performance as you consider your purchase. For more complete information about performance and benchmark results, visit http://www.intel.com/performance. Intel, the Intel logo and others are trademarks of Intel Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others. © 2016 Intel Corporation.