IoT.js. Next generation web for connected things. Samsung Electronics Software Center Piotr Marcinkiewicz 2017

Similar documents
Copyright 2017 Samsung. All Rights Reserved. O-Hoon Kwon, Ph.D. Samsung Electronics

SOSCON 2016 JerryScript

趙庸鎭 (Cho, Yong Jin)

JerryScript An ultra-lightweight JavaScript engine for the Internet of Things

Advanced Embedded Systems

Bluegiga Wi-Fi Software 9/19/2013 1

Husarion CORE2. Husarion CORE2 is a development board for Internet-connected automation & robotic devices.

EDJE PROJECT. The Software Foundation for IoT Devices. IS2T S.A All rights reserved.

Embedded Linux With Raspberry Pi IOT

Lesson 7 Programming Embedded Galileo, Raspberry Pi, BeagleBone and mbed Platforms

ArduCAM CC3200 UNO board

An Incubator Project in the Apache Software Foundation. 13 July 2016

Low-Cost Microcontrollers

Cooking with Team 279

Embedded Technosolutions

HOW TO INTEGRATE NFC CONTROLLERS IN LINUX

Hands-On Workshop: ARM mbed : From Rapid Prototyping to Production

Embedded Technosolutions

Azure Sphere: Fitting Linux Security in 4 MiB of RAM. Ryan Fairfax Principal Software Engineering Lead Microsoft

Hands-On Workshop: ARM mbed

STSW-BLUENRG1-DK. BlueNRG-1, BlueNRG-2 DK SW package

BLE121LR Bluetooth Smart Long Range Module 5/12/2014 1

3 Software Stacks for IoT Solutions. Ian Skerrett Eclipse

Soletta. Closing the IoT Development Gap. OpenIoT & ELC Europe 2016

ECE 598 Advanced Operating Systems Lecture 4

Enabling IoT OSs for Intel Quark MCU Platforms: the fast way. OpenIoT Summit Europe Andre Guedes

Kevin Meehan Stephen Moskal Computer Architecture Winter 2012 Dr. Shaaban

SPARK CORE A DIY guide for KingMakers KANDARP JANI DAN TEBBS

w w w. b a s e t r a i n i n g i n s t i t u t e. c o

Bluetooth Smart Development with Blue Gecko Modules. Mikko Savolainen October 2015

Lesson 6 Intel Galileo and Edison Prototype Development Platforms. Chapter-8 L06: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

Electronics Single Board Computers

Interconnects, Memory, GPIO

Research on the Performance of JavaScript-based IoT Service Platform

BT121 Bluetooth Smart Ready Module. May 2015

Overview of the Raspberry Pi Models 3B & 2B

Interrupt response times on Arduino and Raspberry Pi. Tomaž Šolc

Introduction to Embedded Systems

Samsung ARTIK05x/Shoreline icast 2 ThingWorx agent Setup Guide Version 1.0

Product Technical Brief S3C2440X Series Rev 2.0, Oct. 2003

Experiment 1. Development Platform. Ahmad Khayyat, Hazem Selmi, Saleh AlSaleh

STM32MP1 Microprocessor Continuing the STM32 Success Story. Press Presentation

EMBEDDED SYSTEMS WITH ROBOTICS AND SENSORS USING ERLANG

BT121 Bluetooth Smart Ready Module. July 2016

More info about the competition and the Intel Galileo Gen 2

Introduction to the Itron Riva Dev Kits

Java Programming on the Raspberry Pi with Pi4J. Rob Ratcliff

MYD-SAMA5D3X Development Board

TWR-KV10Z32 Sample Code Guide for CodeWarrior Board configuration, software, and development tools

The challenge with IoT

HARDWARE REFERENCE IMM-NRF51822

TWR-KV10Z32 Sample Code Guide for IAR Board configuration, software, and development tools

STM32 Cortex-M3 STM32F STM32L STM32W

EVE2 BLE Datasheet. The EVE Platform features standardized IO, common OS and drivers and ultra-low power consumption.

RENESAS SYNERGY PLATFORM

Bluegiga WF121 Wi-Fi Module. Embedded Wi-Fi modules. for affordable connectivity

User Manual. DVK512 Expansion Board For Raspberry Pi

extended external Benchmarking extension (XXBX)

STM32F429 Overview. Steve Miller STMicroelectronics, MMS Applications Team October 26 th 2015

LPC1788 Mio Board. The functional details of the board are as follows-

WF121: b/g/n module. Product Presentation

Introduction to L.A.P. 1

Embedded Linux UI Comparison. Tim Bird Senior Staff Software Engineer Sony Electronics

HOW TO INTEGRATE NFC FRONTENDS IN LINUX

Getting Started With the Stellaris EK-LM4F120XL LaunchPad Workshop. Version 1.05

Product Technical Brief S3C2416 May 2008

Azure Sphere Transformation. Patrick Ward, Principal Solutions Specialist

IoT Ecosystem and Business Opportunities

MYD-Y6ULX Development Board

RZ Embedded Microprocessors

Product Technical Brief S3C2412 Rev 2.2, Apr. 2006

MYD-IMX28X Development Board

The friendly operating system for the IoT!

Snappy Ubuntu Core Enabling secure devices with app stores

Chapter 15. ARM MCUs Architecture, Programming and Development Tools

Farklı Arduino Boardlar

neo.cortec. User Guide for NeoGateway

Kinetis SDK v Release Notes for the MK21DA5 and MKW24D5 Devices

Getting Started with FreeRTOS BSP for i.mx 7Dual

Fujitsu System Applications Support. Fujitsu Microelectronics America, Inc. 02/02

Product Technical Brief S3C2413 Rev 2.2, Apr. 2006

COM-RZN1D - Hardware Manual

Beyond TrustZone Security Enclaves Reed Hinkel Senior Manager Embedded Security Market Develop

MDK-ARM Version 5. ULINK Debug Adapters. Microcontroller Development Kit.

OK335xS Users Manual Part I - Introduction

Index. Cliff Wootton 2016 C. Wootton, Beginning Samsung ARTIK, DOI /

TI SimpleLink dual-band CC1350 wireless MCU

STM32F3. Cuauhtémoc Carbajal ITESM CEM 12/08/2013

PRU Hardware Overview. Building Blocks for PRU Development: Module 1

Software Design Challenges for heterogenic SOC's

Salvatore Rinzivillo VISUAL ANALYTICS

Adafruit Feather nrf52840 Express

Kinetis SDK v Release Notes for KV5x Derivatives

AT-501 Cortex-A5 System On Module Product Brief

NXP Cortex-M0 LPC1100L Design with a Cortex-M0 in a DIP package ASEE Tech Session. Sergio Scaglia (NXP Semiconductors) August 2012

ARDUINO INDUSTRIAL 1 01 Code: A000126

UM2375 User manual. Linux driver for the ST25R3911B/ST25R391x high performance NFC frontends. Introduction

AeroCore 2 for DragonBoard

RPi General Purpose IO (GPIO) Pins

Melon S3 FPGA Development Board Product Datasheet

Transcription:

IoT.js Next generation web for connected things Samsung Electronics Software Center Piotr Marcinkiewicz 2017

Agenda Introduction Architecture Node.js vs. IoT.js APIs You are invited Community Q&A 01 02 03 04 05 06 07

Introduction IoT.js Node.js and IoT.js provide same experience JavaScript RAM and FLASH RAM 200kB MCU 200MHz requirement is ~200kB MCU (Micro controller unit) No MMU nor GPOS MCU is cheap and ultra low power

Introduction IoT.js IoT.js can be compiled for Linux PC It works also for ARM Linux devices like Raspberry Pi 2/3 The major target is MCU STM32F4 is supported with Nuttx OS Artik053 is supported with TizenRT OS

Introduction Artik 053 32-bit ARM Cortex R4 @ 320MHz for applications 29 GPIO, 2 SPI, 4 UART, 4 ADC, JTAG, 2 I2C 5-12 VDC input 1280 kb RAM, 8MB flash TizenRT RTOS https://github.com/samsung/tizenrt

Architecture IoT.js JavaScript service JerryScript API JavaScript service can access hardware and network using API It doesn't have graphical user interface JavaScript is executed in JerryScript virtual machine at device JS API is implemented using OS API (SYSFS, Peripheral API)

Architecture JavaScript service IoT.js JerryScript libtuv Operating System System API

Node.js vs. IoT.js JS IoT.js Node.js OS Both Node.js and IoT.js provide runtime environment for JavaScript GPOS general purpose operating system, RTOS real time operating system, V8 JavaScript engine from Chromium

Node.js vs. IoT.js Node.js IoT.js API Addons API Basic API Peripheral API Architecture JS engine, system I/O ECMA7 V8 libuv ECMA5.1 Jerry Script libtuv Platform GPOS RTOS Hardware CPU MCU

Node.js vs. IoT.js Node.js IoT.js Easy to extend More features Better CPU utilization Easy to port More OSes Both CPU and MCU support

JerryScript JerryScript RAM 64kB ROM 200kB JerryScript is lightweight JavaScript engine It is intended for very constrained devices. It supports snapshots.

JerryScript JerryScript ECMA 5.1 C99 JerryScript supports full ECMA 5.1 and some ECMA 6 (Typed Array, promise) https://github.com/jerrys cript-project/jerryscript

APIs Module JS C API Modules are implemented using C and JavaScript C language provides direct binding from OS API to JavaScript JavaScript defines objects and validates API calls from application

APIs src file.c file.c Runtime C implementation js file.js file.js modules file.c file.c platform os_xxx file.c file.c Runtime JS and modules JS Generic module C implementation os_xxx Platform specific module C implementation implementation compiled into snapshot

APIs Basic API Node.js style Core Extended API IoT.js style Hardware System Internet Communication

APIs Basic API Node.js style Core Module Console Events Timer Buffer System FS Stream Process Internet DNS HTTP Net HTTPS *

APIs Extended API IoT.js style Hardware GPIO ADC PWM Communication UDP SPI I 2 C UART BLE

APIs GPIO

You are invited https://github.com/ Samsung/iotjs Copyright c 2017 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED

Compilation and CI Install Build Check Precommit tools root folder.travis.yml

Dependencies git submodule jerry http-parser libtuv jerryscript-project/jerryscript Samsung/http-parser Samsung/libtuv precommit tizenrt nuttx Samsung/TizenRT Nuttx (Bitbucket)

Build process precommit.py build.py http-parser configure environment libtuv jerryscript test deploy IoT.js

Tools - install and check install: apt-get-install-* arm (RaspberryPi) nuttx tizenrt tizen travis check: license signed test tidy

Tools - precommit tests precommit.py --test flag passes 3 flags to build.py arch os board host-linux (tests are executed) default (x86*) default (linux) default (undefi ned) rpi2 arm default rpi2 artik10 arm tizen artik10 artik053 arm tizenrt artik05x nuttx arm nuttx stm32f4dis

Folders IoT.js folders: docs JS API description, build guides src source code of all major components tools build and configuration Python scripts test JavaScript tests samples JavaScript sample services (e.g. blink a LED)

Folders IoT.js folders: deps dependencies compiled with IoT.js cmake cmake configuration for IoT.js and submodules config configuration for Tizen, TizenRT, Nuttx include library header

Community 48 contributors 889 commits 266 forks 1420 stars IRC: freenode.net #iotjs Group: iotjs-dev@groups.io

Q&A https://github.com/ Samsung/iotjs Copyright c 2017 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED

THANK YOU https://github.com/ Samsung/iotjs Copyright c 2017 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED