1
Copyright © 2017 Samsung. All Rights Reserved.
O-Hoon Kwon, Ph.D.
Samsung Electronics
2
• Tizen
– Linux kernel based Embedded OS for wide range of devices, where Mobile, Wearable, TV are maintained as device profiles with managed APIs for the backward compatibility of applications
• Tizen IoT
– New direction of Tizen to support IoT Devices, where the features of IoT devices cannot be limited with a fixed set of APIs
• Welcome to visit us at the exhibition booth, “Tizen IoT Bringup & Remote Firmware Update”
“Tizen IoT Platform UX : Macaron”
Intro
3
WHAT IS TIZEN IOT?
From Tizen 4.0
4 4
Embedded OS for IoT Devices □ Tizen IoT is a linux kernel based Embedded OS for IoT Devices, where the form factors of IoT
Devices are not limited with a fixed set of APIs like Mobile, Wearable or TV Profile.
No Headless Device Type
Could not create new device via PDK
Only Mobile/Wearable/TV Profile maintained
Headless Device Type
- Profile is not maintained.
- Any headless device can be created via PDK.
Headed Device Type
- TV/Mobile/Wearable Profile are maintained.
- Any headed device can be created via PDK.
Tizen 3.0 or before Tizen 4.0 or after
5
Device Ecosystem for IoT
Tizen IoT Core
System Network Sensor
Tizen IoT Core
System Network Window
MM UI FW
Headless Presets
Headed Presets
Building Blocks
System
Network
UI FW
Multimedia
Window
Sensor
Input
Tizen IoT Core
Web/Widget FW
IoT.js FW
Lightweight App FW
Lightweight App Security
Peripheral IO Wifi/IoTivity
Location Voice
Open Source Contribution
Open Device Contribution
IoT Device Presets
Open Hardware (RPi3, Artik5, Artik7)
□ Building blocks qualified in legacy profiles will be reused for creating new IoT devices.
□ A small number of IoT device presets will be given in PDK/TIC (Tizen Image Creator).
□ Any IoT device will be created with TIC and contributed as a new IoT device preset.
6
1. HARDWARE SUPPORT
What do we provide for Tizen IoT?
7 7
Hardware Plugin Architecture □ Hardware related core frameworks have their specific plugin architectures
– Hardware Abstraction Layer including HW independent and dependent modules.
□ According to Tizen Porting Guide (https://wiki.tizen.org/Tizen_3.0_Porting_Guide),
new hardware plugin for each core framework can be implemented and supported
Hardware Plugin Modules
Hardware Plugins
Kernel
Core
Applications
JS Native Applications C-Native Applications
Display/GPU Plug-ins
Video/Audio Plug-ins
Connectivity Plug-ins
System FW Plug-ins
Modem / Modem Interface Plug-ins
Sensor Plug-ins
IoT.js Native API C#-Native API
C#-Native Applications
C-Native API
Buffer Mgr. Plug-in
Input Network GPU Display Multimedia Audio Security Power Sensor
Device drivers
App FW Web FW Messaging Context
Multimedia Security System FW Network & Connectivity
Telephony Graphics &
Window System Sensor Base Library
UI FW .Net FW Location
8 8
Supported Hardware □ RPi3/Artik5/Artik7 will be supported as open hardware platforms in Tizen 4.0
Platform Artik 520 Artik 710 Raspberry Pi 3
CPU Nexell S5P4418 1.2GHz 4-core ARM Coretex A9
Nexell S5P6818 1.4GHz 8-core ARM Coretex A53
Broadcom BCM2837 1.2GHz 4-core ARM Cortex A53
Memory 512MB DDR3 4GB eMMC
1GB DDR3 4GB eMMC
1GB RAM
Storage MicroSD card slot MicroSD card slot MicroSD card slot
Display HDMI, DSI-4 HDMI, DSI-4 HDMI
Camera CSI-4 CSI-4 CSI-2
Audio 3.5mm Analog Output 3.5mm Analog Output USB 2.0 3.5mm Analog Output
Network
10/100/1000 Ethernet Wi-Fi 802.11 a/b/g/n Bluetooth 4.2 ZigBee
10/100/1000 Ethernet Wi-Fi 802.11 a/b/g/n/ac Bluetooth 4.1 ZigBee
10/100/1000 Ethernet Wi-Fi 802.11n Bluetooth® 4.1
USB 2x USB 2.0 Host/OTG 2xUSB 2.0 Host/OTG 4x USB 2.0 Host
Supported Device Type
Headed Headless (TBD)
Headed Headless (TBD)
Headless Headed (TBD)
9
2. PERIPHERAL SUPPORT
What do we provide for Tizen IoT?
Main Board (RPi3/Artik)
Peripheral #2
Peripheral #1
10
Peripheral IO FW
Images from samsung.com
IoT Board kernel GPIO
Native Application &
Peripheral-io API
JS Application & .
IoT.js/JerryScript
Service Daemon (periperal-bus)
User Space Drivers
UART SPI PWM I2C
User Space Drivers
Sensor Actuator LED 7-segment
display GPS
□ All device drivers of various peripherals cannot
be included in Embedded OS for IoT Devices.
□ Low-level Peripheral Interfaces for IoT Apps
– GPIO, UART, SPI, PWM, I2C will be supported.
– The access control and resource management for
each peripheral b/w IoT applications should be
provided with Service Daemon.
11
Extensible Sensor FW
Images from samsung.com
□ More flexible way to add new application-level sensors with legacy sensor APIs
– The former way is to implement kernel drivers and sensor HAL, but not suitable to support the variety of IoT devices.
□ Native API for creating application-level sensors in Sensor Provider App
– It allows “sensor provider apps” to define/publish new sensors for “sensor listener apps”.
– No limit on the sensor data sources.
• E.g. Peripheral IO, Platform Sensor
Sensor Framework
Application Sensor Application Sensor
HAL
Kernel Drivers
Platform Sensor Platform Sensor
Sensor Lister App Sensor Provider App
Listen Create Publish
OCF Peripheral IO
… …
…
Data Sources Sensor Plugins
Senso
r
Senso
r
Senso
r
Senso
r …
12
3. IOT APP MODEL
What do we provide for Tizen IoT?
13 13
Supported App Types □ Characteristics of IoT App
– App developers want to develop a simple IoT App quickly and easily.
• e.g. sensing and collecting data from the device, communicating with IoT cloud
– IoT App Model may not need legacy UI framework.
• e.g. APIs for controlling simple LED might be supported
□ IoT App Types
– Headless (with Lightweight App FW)
• C Native App
• JS Native App based on IoT.js runtime
– Headed (with Legacy App FW)
• C Native App
• C# Native App based on .Net runtime
Linux Kernel & Drivers
Core
Applications
JS Native Applications C-Native Applications
IoT.js Native API C#-Native API
C#-Native Applications
C-Native API
App FW Web FW Messaging Context
Multimedia Security System FW Network & Connectivity
Telephony Graphics & Window
Sensor Base Library
UI FW .Net FW Location
14
Lightweight App FW
Package Manager
app package database
1. App package install/uninstall/update request
Application Launcher
2. Manages App package db
3. Load App info from db
app A
app B
4. App launch request
5. App process is forked by the launcher
□ Package Manager to Deploy Apps
– Install/Uninstall/Update App packages with legacy Tizen Packaging format (tpk)
– Apps can be preloaded, downloaded and installed/updated/uninstalled in runtime
□ Application Launcher to Manage the Process Life Cycle of Apps
– Manage App processes : Launch, Terminate, Recover App processes
– Each App is launched as a separated process with its protected memory
– Some Apps can be launched when system boots and keep running state while the system is on
– Some Apps can be launched on demand by some commands
15 15
IoT App Security □ App Sandboxing
– Each app has its own Smack(Simplified Mandatory Access Control Kernel) label.
• Each app can not send IPC and signal, read/write other app files.
□ Access Control
– Important system objects are Smack labeled
• System daemons will make use of Smack and enforce access control
– The privileged accessibility (ex. Privacy related access) by apps is controlled by Cynara (Policy Checker Service)
□ App Signing
– To ensure app integrity and identify a developer and distributor
□ Key Manager
– Secure Repository for keys, certificates, and sensitive data
16 16
IoT.js/JerryScript □ JerryScript
– Ultra Lightweight JavaScript Engine (Under 160KB Binary size on ARM32 Linux)
– Supports ES5.1 and a few selected ES2015 features (Promise, Typed Array and so on)
□ IoT.js : JavaScript Framework
– Easy to develop by trendy JavaScript programming methodology
– Easy to maintain & modify logic by updating script only
IoT.js
JerryScript Binding I/O Event Binding Additional Binding
IoT.js Core
IoT.js API (Process/Event/Network/…)
JerryScript libtuv Additional Library
(e.g. OCF)
OS (RTOS/Linux)
IoT App
JavaScript
C
17
4. IOT SERVICE FW
What do we provide for Tizen IoT?
18 18
OCF / IoTivity □ OCF (Open Connectivity Foundation)
– Standard for IoT Connectivity
□ Iotivity
– Open source implementation for OCF based IoT Connectivity
□ OCF-Cloud
– Supports for easy device registration and control based on IoTivity
– Supports for easy way to create Mediator/Controller and
Enrollee/Controllee devices on Tizen
OCF-Cloud
Enrollee Devices
Tizen Platform
Mediator/Controller Devices
Easy Setup
19 19
Easy Setup □ A sequence of set-up interactions between mobile users and IoT
devices where the IoT device is ready for users to use.
□ Once Easy-setup is done, IoT device can not only connect to
network, but also be registered to IoTivity cloud server
□ The Goal of Easy Setup is that Mobile provides an
information securely to IoT Device as follows:
– WiFi AP info. such as SSID, PWD, etc.
– Cloud Server info. such as Auth Code, IP Addr, etc.
– Initial device info. such as lang, country, etc.
① Out of box ② Transfer WiFi AP Information via Soft AP Network
OCF Cloud
Resource Directory
④ Transfer Cloud Access information via WiFi AP Network
⑤ Device Registration to IoTivity Cloud server
③ Connect to Home WiFi AP
20
Samsung IoT Ecosystem
Samsung Connect App
Tizen/Tizen RT device
Tizen/Tizen RT device
Tizen/Tizen RT device
OCF-Cloud
(e.g. Samsung Connect)
□ Tizen/TizenRT makes Device Makers join easily in Samsung IoT Ecosystem
– We will provide an easy way to connect Tizen/TizenRT devices with Samsung Connect
Visit the exhibition booth “IoT Platform UX : Macaron”
21
5. TIZEN UPDATE
What do we provide for Tizen IoT?
22 22
Remote Firmware Update
Images from samsung.com
Tizen Mobile (TM1) Tizen IoT (RasPI3)
OCF cloud
update
-device signup
-register firmware resource
-get firmware info (pull/push)
-download/update request
-push for presence
-get device list
-observe resource & push -download/update request
content server
Remote Installer
Tizen Mobile
web-plugins
-download new firmware
iotivity iotivity
-easy setup
Tizen Update
Tizen IoT Core
Tizen OTA
LAMP
23 23
Raspberry Pi3
$ ./flash_sdcard flashing. . . . . . . . done. $
1. Flash firmware and start
2. Check firmware version by phone
3. Run firmware update from phone
Remote Firmware Update
Visit the exhibition booth “Remote Firmware Update”
24 24
Raspberry Pi3
OCF-Cloud
1. Flash firmware and start
2. Check firmware version by phone
3. Run firmware update from phone
Remote Firmware Update
content server
Visit the exhibition booth “Remote Firmware Update”
25 25
1. Flash firmware and start
2. Check firmware version by phone
3. Run firmware update from phone
Raspberry Pi3
OCF-Cloud
Remote Firmware Update
content server
Visit the exhibition booth “Remote Firmware Update”
26
Dockerization
Images from samsung.com
□ New Deployment Method of Tizen Platform & Application for IoT
– Creates Tizen-Docker Image including overall platform & applications
– Extends Tizen-Docker image with existing Building-blocks
□ Docker Services will be available for Dockerized Tizen Platform
– Deploys and Updates Tizen-Docker image with Docker-Hub Service
– Monitors and Manages Tizen-Docker image with Additional Docker-Cloud Services
Docker Image Registry
[Host OS] tizen-minimal / bare-os
[Container] Tizen-Docker
dockzen-launcher
Linux kernel
docker-engine
dockzen-agent
update-server
kernel + Host
tizen-iot-core
kernel + Host
tizen-iot-core
Multimedia fw
kernel + Host
tizen-iot-core
Voice fw
Extends Extends
27
CONCLUSION
28 28
Summary □ Open Hardware for Tizen IoT
– Raspberry Pi3, Artik 520, Artik 710 for Headed & Headless
– Peripheral IO FW and Extensible Sensor FW for User-Space Peripherals and Sensors
□ IoT App Model
– C-Native, C#-Native and IoT.js App will be supported
□ Samsung IoT Ecosystem
– IoT Devices with Tizen & Tizen RT will be able to easily join in Samsung IoT Ecosystem
□ Tizen Update (Preview)
– Remote Firmware Update
– Dockerized Tizen Platform