SlideShare una empresa de Scribd logo
1 de 16
Copyright @ 2018 JFrog, PlatformIO - All rights reserved
Over-The-Air (OTA)
firmware upgrades for
Internet of Things devices
with JFrog Bintray
Dr. Ivan Kravets, CEO at PlatformIO
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
IoT Devices
30 billion devices by 2020 (wiki)
● Smart homes
● Smart cities
● Smart grids
● Virtual power plants
● Intelligent transportation
● ...
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
What’s Inside?
Copyright © 2018 JFrog, PlatformIO. All Rights Reserved
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
● Limited CPU ( ~100MHz )
● Limited RAM ( ~256KB )
● Limited Flash ( ~1MB)
● Limited communication bandwidth
● Limited TLS support
● Limited power supply resources
Average constrained device
Limited processing and storage capabilities
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
Flash Map
Fixed User Application (No OTA)
Boot (optional) Application EEPROM SPIFFS
To upgrade the application, you reprogram it
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
● Open source, Apache 2.0 license
● Zero dependency, written in pure Python
● Rich command line interface (CLI)
● Use your favorite IDE or OS
● Multi-platform build system
● Automatic toolchain and library management
● Built-in support for CI / CD
● “1-click” debugging
● Run unit test on a remote IoT device
How to program IoT device?
PlatformIO: an open source ecosystem for IoT development
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
Flash Map
Fixed User Application (No OTA)
Boot (optional) Application EEPROM SPIFFS
Upgradable User Application (OTA)
Boot OTA State Application Application* EEPROM SPIFFS
OTA needs 2 partitions to upgrade safely
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
● Free For Open Source
● 100% Automated via REST API
● Custom attributes per release
● Super fast CDN, don’t worry about continents!
● Full Control and Security
● Unlimited number of IoT devices
● Bulk upgrades
● Release provisioning and analytics
How to manage IoT updates?
JFrog Bintray: Universal Distribution Platform
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
Flash Map
Fixed User Application (No OTA)
Boot (optional) Application EEPROM SPIFFS
Upgradable User Application (OTA)
Boot OTA State Application Application* EEPROM SPIFFS
Bintray API
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
Build
(compile firmware)
Local Test
(native, host OS)
Remote Test
(on a physical remote device)
Delivery
(publish firmware)
CI / CD
Over-The-Air Firmware Upgrades Workflow
Smart homes Smart cities Smart grids Virtual power plants Intelligent transportation
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
Demo
Copyright © 2018 JFrog, PlatformIO. All Rights Reserved
https://github.com/platformio/bintray-secure-ota.git
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
Secure Bintray Client
C++ open source library by PlatformIO
#include <BintrayClient.h>
const BintrayClient bintray(
BINTRAY_USER,
BINTRAY_REPO,
BINTRAY_PACKAGE
);
const String version = bintray.getLatestVersion();
const String firmwarePath = bintray.getBinaryPath(version);
// download & flash image...
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
Initial configuration
platformio.ini
; Please navigate to https://bintray.com/, create an account,
; repository, and add a package where PlatformIO will deploy firmwares
; api_token = Bintray.com > Edit Profile > API Key
[bintray]
user = ivankravets
repository = platformio-ota
package = bintray-secure-ota
api_token = ${env.BINTRAY_API_TOKEN}
; Wi-Fi network settings
[wifi]
ssid = ${env.PIO_WIFI_SSID}
password = ${env.PIO_WIFI_PASSWORD}
[common]
; firmware version, please modify it between releases; positive integer value
release_version = 1
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
Unit Testing
Local & Remote
#include <unity.h>
void test_bintray_binary_path_is_valid(void) {
const String binaryPath = bintray.getBinaryPath(bintray.getLatestVersion());
TEST_ASSERT_TRUE(binaryPath.length() > 0);
TEST_ASSERT_TRUE(binaryPath.endsWith(".bin"));
TEST_ASSERT_TRUE(binaryPath.indexOf(BINTRAY_USER) > 0);
}
// ...
void setup() {
UNITY_BEGIN();
RUN_TEST(test_bintray_client_credentials);
RUN_TEST(test_wifi_connection);
RUN_TEST(test_bintray_binary_path_is_valid);
// ...
UNITY_END();
}
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
CI/CD Pipeline
Automated firmware delivery: any OS, any CI service
install:
- pip install -U platformio
- platformio upgrade --dev
- platformio update
script:
# Check compiler errors
- platformio run
# List remote devices
- platformio remote device list
# Run embedded test on a remote device
- platformio remote test -r
deploy:
provider: script
script: platformio run -e release -t upload
Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP
THANK YOU!

Más contenido relacionado

La actualidad más candente

zOSMF Software Update Lab.pdf
zOSMF Software Update Lab.pdfzOSMF Software Update Lab.pdf
zOSMF Software Update Lab.pdfMarna Walle
 
BlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for CephBlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for CephSage Weil
 
Storing metrics at scale with Gnocchi
Storing metrics at scale with GnocchiStoring metrics at scale with Gnocchi
Storing metrics at scale with GnocchiGordon Chung
 
Linux, Virtualisation, and Clouds
Linux, Virtualisation, and CloudsLinux, Virtualisation, and Clouds
Linux, Virtualisation, and CloudsRobert Sutor
 
Upgrade to IBM z/OS V2.5 Planning
Upgrade to IBM z/OS V2.5 PlanningUpgrade to IBM z/OS V2.5 Planning
Upgrade to IBM z/OS V2.5 PlanningMarna Walle
 
Monitoring in CloudStack
Monitoring in CloudStackMonitoring in CloudStack
Monitoring in CloudStackShapeBlue
 
Shared Memory Communications-Direct Memory Access (SMC-D) Overview
Shared Memory Communications-Direct Memory Access (SMC-D) OverviewShared Memory Communications-Direct Memory Access (SMC-D) Overview
Shared Memory Communications-Direct Memory Access (SMC-D) OverviewzOSCommserver
 
Automated CloudStack Deployment
Automated CloudStack DeploymentAutomated CloudStack Deployment
Automated CloudStack DeploymentShapeBlue
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with AnsibleRayed Alrashed
 
DevOps with Ansible
DevOps with AnsibleDevOps with Ansible
DevOps with AnsibleSwapnil Jain
 
Comparison between OCFS2 and GFS2
Comparison between OCFS2 and GFS2Comparison between OCFS2 and GFS2
Comparison between OCFS2 and GFS2Gang He
 
Driving Digital Transformation With Containers And Kubernetes Complete Deck
Driving Digital Transformation With Containers And Kubernetes Complete DeckDriving Digital Transformation With Containers And Kubernetes Complete Deck
Driving Digital Transformation With Containers And Kubernetes Complete DeckSlideTeam
 
Upgrade to zOS V2.5 - Planning and Tech Actions.pdf
Upgrade to zOS V2.5 - Planning and Tech Actions.pdfUpgrade to zOS V2.5 - Planning and Tech Actions.pdf
Upgrade to zOS V2.5 - Planning and Tech Actions.pdfMarna Walle
 
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConAnatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConJérôme Petazzoni
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Edureka!
 

La actualidad más candente (20)

ZD&T Survival Kit
ZD&T Survival KitZD&T Survival Kit
ZD&T Survival Kit
 
zOSMF Software Update Lab.pdf
zOSMF Software Update Lab.pdfzOSMF Software Update Lab.pdf
zOSMF Software Update Lab.pdf
 
BlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for CephBlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for Ceph
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker Tutorial.pdf
Docker Tutorial.pdfDocker Tutorial.pdf
Docker Tutorial.pdf
 
Storing metrics at scale with Gnocchi
Storing metrics at scale with GnocchiStoring metrics at scale with Gnocchi
Storing metrics at scale with Gnocchi
 
Server pac 101
Server pac 101Server pac 101
Server pac 101
 
Linux, Virtualisation, and Clouds
Linux, Virtualisation, and CloudsLinux, Virtualisation, and Clouds
Linux, Virtualisation, and Clouds
 
Upgrade to IBM z/OS V2.5 Planning
Upgrade to IBM z/OS V2.5 PlanningUpgrade to IBM z/OS V2.5 Planning
Upgrade to IBM z/OS V2.5 Planning
 
Monitoring in CloudStack
Monitoring in CloudStackMonitoring in CloudStack
Monitoring in CloudStack
 
Shared Memory Communications-Direct Memory Access (SMC-D) Overview
Shared Memory Communications-Direct Memory Access (SMC-D) OverviewShared Memory Communications-Direct Memory Access (SMC-D) Overview
Shared Memory Communications-Direct Memory Access (SMC-D) Overview
 
Automated CloudStack Deployment
Automated CloudStack DeploymentAutomated CloudStack Deployment
Automated CloudStack Deployment
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with Ansible
 
DevOps with Ansible
DevOps with AnsibleDevOps with Ansible
DevOps with Ansible
 
Comparison between OCFS2 and GFS2
Comparison between OCFS2 and GFS2Comparison between OCFS2 and GFS2
Comparison between OCFS2 and GFS2
 
Driving Digital Transformation With Containers And Kubernetes Complete Deck
Driving Digital Transformation With Containers And Kubernetes Complete DeckDriving Digital Transformation With Containers And Kubernetes Complete Deck
Driving Digital Transformation With Containers And Kubernetes Complete Deck
 
Upgrade to zOS V2.5 - Planning and Tech Actions.pdf
Upgrade to zOS V2.5 - Planning and Tech Actions.pdfUpgrade to zOS V2.5 - Planning and Tech Actions.pdf
Upgrade to zOS V2.5 - Planning and Tech Actions.pdf
 
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConAnatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
 
SR-IOV Introduce
SR-IOV IntroduceSR-IOV Introduce
SR-IOV Introduce
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 

Similar a swampUP: Over-The-Air (OTA) firmware upgrades for Internet of Things devices with PlatformIO and JFrog Bintray

UC18NA-D3D202-Dianomic-IZoratti-Introduction-To-FogLAMP.pdf
UC18NA-D3D202-Dianomic-IZoratti-Introduction-To-FogLAMP.pdfUC18NA-D3D202-Dianomic-IZoratti-Introduction-To-FogLAMP.pdf
UC18NA-D3D202-Dianomic-IZoratti-Introduction-To-FogLAMP.pdfWlamir Molinari
 
Update Strategies for the Edge, by Kat Cosgrove
Update Strategies for the Edge, by Kat CosgroveUpdate Strategies for the Edge, by Kat Cosgrove
Update Strategies for the Edge, by Kat CosgroveCloud Native Day Tel Aviv
 
Breaking Extreme Networks WingOS: How to own millions of devices running on A...
Breaking Extreme Networks WingOS: How to own millions of devices running on A...Breaking Extreme Networks WingOS: How to own millions of devices running on A...
Breaking Extreme Networks WingOS: How to own millions of devices running on A...Priyanka Aash
 
" Breaking Extreme Networks WingOS: How to own millions of devices running on...
" Breaking Extreme Networks WingOS: How to own millions of devices running on..." Breaking Extreme Networks WingOS: How to own millions of devices running on...
" Breaking Extreme Networks WingOS: How to own millions of devices running on...PROIDEA
 
The Role of Standards in IoT Security
The Role of Standards in IoT SecurityThe Role of Standards in IoT Security
The Role of Standards in IoT SecurityHannes Tschofenig
 
Python for IoT, A return of experience
Python for IoT, A return of experiencePython for IoT, A return of experience
Python for IoT, A return of experienceAlexandre Abadie
 
Using Python for IoT: a return of experience, Alexandre Abadie
Using Python for IoT: a return of experience, Alexandre AbadieUsing Python for IoT: a return of experience, Alexandre Abadie
Using Python for IoT: a return of experience, Alexandre AbadiePôle Systematic Paris-Region
 
Challenges of Embedded IoT Development and How Amazon FreeRTOS is Changing th...
Challenges of Embedded IoT Development and How Amazon FreeRTOS is Changing th...Challenges of Embedded IoT Development and How Amazon FreeRTOS is Changing th...
Challenges of Embedded IoT Development and How Amazon FreeRTOS is Changing th...Amazon Web Services
 
PyCon_India_2017_MicroPython_Ayan
PyCon_India_2017_MicroPython_AyanPyCon_India_2017_MicroPython_Ayan
PyCon_India_2017_MicroPython_AyanAyan Pahwa
 
How to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemHow to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemInfluxData
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Benjamin Cabé
 
IRJET- Wi-Fi based Home & Industry Surveillance Bot using Pi Camera
IRJET-  	  Wi-Fi based Home & Industry Surveillance Bot using Pi CameraIRJET-  	  Wi-Fi based Home & Industry Surveillance Bot using Pi Camera
IRJET- Wi-Fi based Home & Industry Surveillance Bot using Pi CameraIRJET Journal
 
The Crucial Component of IoT Products by Aravinth Panchadcharam [ Senior Embe...
The Crucial Component of IoT Products by Aravinth Panchadcharam [ Senior Embe...The Crucial Component of IoT Products by Aravinth Panchadcharam [ Senior Embe...
The Crucial Component of IoT Products by Aravinth Panchadcharam [ Senior Embe...Next Big Thing AG
 
IoT Based Advertising System
IoT Based Advertising SystemIoT Based Advertising System
IoT Based Advertising SystemIRJET Journal
 
IoT Security by Design
IoT Security by DesignIoT Security by Design
IoT Security by DesignNUS-ISS
 
Micropython for the iot
Micropython for the iotMicropython for the iot
Micropython for the iotJacques Supcik
 
Japan Container Days v18.12 1C5 Kubernetes+ロボット(ROS)アプリの連携パラダイム
Japan Container Days v18.12 1C5 Kubernetes+ロボット(ROS)アプリの連携パラダイムJapan Container Days v18.12 1C5 Kubernetes+ロボット(ROS)アプリの連携パラダイム
Japan Container Days v18.12 1C5 Kubernetes+ロボット(ROS)アプリの連携パラダイムTatsuya Fukuta
 

Similar a swampUP: Over-The-Air (OTA) firmware upgrades for Internet of Things devices with PlatformIO and JFrog Bintray (20)

UC18NA-D3D202-Dianomic-IZoratti-Introduction-To-FogLAMP.pdf
UC18NA-D3D202-Dianomic-IZoratti-Introduction-To-FogLAMP.pdfUC18NA-D3D202-Dianomic-IZoratti-Introduction-To-FogLAMP.pdf
UC18NA-D3D202-Dianomic-IZoratti-Introduction-To-FogLAMP.pdf
 
Update Strategies for the Edge, by Kat Cosgrove
Update Strategies for the Edge, by Kat CosgroveUpdate Strategies for the Edge, by Kat Cosgrove
Update Strategies for the Edge, by Kat Cosgrove
 
OpUtils webinar
OpUtils webinarOpUtils webinar
OpUtils webinar
 
Breaking Extreme Networks WingOS: How to own millions of devices running on A...
Breaking Extreme Networks WingOS: How to own millions of devices running on A...Breaking Extreme Networks WingOS: How to own millions of devices running on A...
Breaking Extreme Networks WingOS: How to own millions of devices running on A...
 
" Breaking Extreme Networks WingOS: How to own millions of devices running on...
" Breaking Extreme Networks WingOS: How to own millions of devices running on..." Breaking Extreme Networks WingOS: How to own millions of devices running on...
" Breaking Extreme Networks WingOS: How to own millions of devices running on...
 
The Role of Standards in IoT Security
The Role of Standards in IoT SecurityThe Role of Standards in IoT Security
The Role of Standards in IoT Security
 
Python for IoT, A return of experience
Python for IoT, A return of experiencePython for IoT, A return of experience
Python for IoT, A return of experience
 
Using Python for IoT: a return of experience, Alexandre Abadie
Using Python for IoT: a return of experience, Alexandre AbadieUsing Python for IoT: a return of experience, Alexandre Abadie
Using Python for IoT: a return of experience, Alexandre Abadie
 
Free OpUtils Training presentation
Free OpUtils Training presentationFree OpUtils Training presentation
Free OpUtils Training presentation
 
Challenges of Embedded IoT Development and How Amazon FreeRTOS is Changing th...
Challenges of Embedded IoT Development and How Amazon FreeRTOS is Changing th...Challenges of Embedded IoT Development and How Amazon FreeRTOS is Changing th...
Challenges of Embedded IoT Development and How Amazon FreeRTOS is Changing th...
 
PyCon_India_2017_MicroPython_Ayan
PyCon_India_2017_MicroPython_AyanPyCon_India_2017_MicroPython_Ayan
PyCon_India_2017_MicroPython_Ayan
 
How to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemHow to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin Ecosystem
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018
 
IRJET- Wi-Fi based Home & Industry Surveillance Bot using Pi Camera
IRJET-  	  Wi-Fi based Home & Industry Surveillance Bot using Pi CameraIRJET-  	  Wi-Fi based Home & Industry Surveillance Bot using Pi Camera
IRJET- Wi-Fi based Home & Industry Surveillance Bot using Pi Camera
 
The Crucial Component of IoT Products by Aravinth Panchadcharam [ Senior Embe...
The Crucial Component of IoT Products by Aravinth Panchadcharam [ Senior Embe...The Crucial Component of IoT Products by Aravinth Panchadcharam [ Senior Embe...
The Crucial Component of IoT Products by Aravinth Panchadcharam [ Senior Embe...
 
OpUtils Free training
OpUtils Free training OpUtils Free training
OpUtils Free training
 
IoT Based Advertising System
IoT Based Advertising SystemIoT Based Advertising System
IoT Based Advertising System
 
IoT Security by Design
IoT Security by DesignIoT Security by Design
IoT Security by Design
 
Micropython for the iot
Micropython for the iotMicropython for the iot
Micropython for the iot
 
Japan Container Days v18.12 1C5 Kubernetes+ロボット(ROS)アプリの連携パラダイム
Japan Container Days v18.12 1C5 Kubernetes+ロボット(ROS)アプリの連携パラダイムJapan Container Days v18.12 1C5 Kubernetes+ロボット(ROS)アプリの連携パラダイム
Japan Container Days v18.12 1C5 Kubernetes+ロボット(ROS)アプリの連携パラダイム
 

Último

Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 

Último (20)

Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 

swampUP: Over-The-Air (OTA) firmware upgrades for Internet of Things devices with PlatformIO and JFrog Bintray

  • 1. Copyright @ 2018 JFrog, PlatformIO - All rights reserved Over-The-Air (OTA) firmware upgrades for Internet of Things devices with JFrog Bintray Dr. Ivan Kravets, CEO at PlatformIO
  • 2. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP IoT Devices 30 billion devices by 2020 (wiki) ● Smart homes ● Smart cities ● Smart grids ● Virtual power plants ● Intelligent transportation ● ...
  • 3. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP What’s Inside? Copyright © 2018 JFrog, PlatformIO. All Rights Reserved
  • 4. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP ● Limited CPU ( ~100MHz ) ● Limited RAM ( ~256KB ) ● Limited Flash ( ~1MB) ● Limited communication bandwidth ● Limited TLS support ● Limited power supply resources Average constrained device Limited processing and storage capabilities
  • 5. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP Flash Map Fixed User Application (No OTA) Boot (optional) Application EEPROM SPIFFS To upgrade the application, you reprogram it
  • 6. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP ● Open source, Apache 2.0 license ● Zero dependency, written in pure Python ● Rich command line interface (CLI) ● Use your favorite IDE or OS ● Multi-platform build system ● Automatic toolchain and library management ● Built-in support for CI / CD ● “1-click” debugging ● Run unit test on a remote IoT device How to program IoT device? PlatformIO: an open source ecosystem for IoT development
  • 7. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP Flash Map Fixed User Application (No OTA) Boot (optional) Application EEPROM SPIFFS Upgradable User Application (OTA) Boot OTA State Application Application* EEPROM SPIFFS OTA needs 2 partitions to upgrade safely
  • 8. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP ● Free For Open Source ● 100% Automated via REST API ● Custom attributes per release ● Super fast CDN, don’t worry about continents! ● Full Control and Security ● Unlimited number of IoT devices ● Bulk upgrades ● Release provisioning and analytics How to manage IoT updates? JFrog Bintray: Universal Distribution Platform
  • 9. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP Flash Map Fixed User Application (No OTA) Boot (optional) Application EEPROM SPIFFS Upgradable User Application (OTA) Boot OTA State Application Application* EEPROM SPIFFS Bintray API
  • 10. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP Build (compile firmware) Local Test (native, host OS) Remote Test (on a physical remote device) Delivery (publish firmware) CI / CD Over-The-Air Firmware Upgrades Workflow Smart homes Smart cities Smart grids Virtual power plants Intelligent transportation
  • 11. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP Demo Copyright © 2018 JFrog, PlatformIO. All Rights Reserved https://github.com/platformio/bintray-secure-ota.git
  • 12. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP Secure Bintray Client C++ open source library by PlatformIO #include <BintrayClient.h> const BintrayClient bintray( BINTRAY_USER, BINTRAY_REPO, BINTRAY_PACKAGE ); const String version = bintray.getLatestVersion(); const String firmwarePath = bintray.getBinaryPath(version); // download & flash image...
  • 13. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP Initial configuration platformio.ini ; Please navigate to https://bintray.com/, create an account, ; repository, and add a package where PlatformIO will deploy firmwares ; api_token = Bintray.com > Edit Profile > API Key [bintray] user = ivankravets repository = platformio-ota package = bintray-secure-ota api_token = ${env.BINTRAY_API_TOKEN} ; Wi-Fi network settings [wifi] ssid = ${env.PIO_WIFI_SSID} password = ${env.PIO_WIFI_PASSWORD} [common] ; firmware version, please modify it between releases; positive integer value release_version = 1
  • 14. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP Unit Testing Local & Remote #include <unity.h> void test_bintray_binary_path_is_valid(void) { const String binaryPath = bintray.getBinaryPath(bintray.getLatestVersion()); TEST_ASSERT_TRUE(binaryPath.length() > 0); TEST_ASSERT_TRUE(binaryPath.endsWith(".bin")); TEST_ASSERT_TRUE(binaryPath.indexOf(BINTRAY_USER) > 0); } // ... void setup() { UNITY_BEGIN(); RUN_TEST(test_bintray_client_credentials); RUN_TEST(test_wifi_connection); RUN_TEST(test_bintray_binary_path_is_valid); // ... UNITY_END(); }
  • 15. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP CI/CD Pipeline Automated firmware delivery: any OS, any CI service install: - pip install -U platformio - platformio upgrade --dev - platformio update script: # Check compiler errors - platformio run # List remote devices - platformio remote device list # Run embedded test on a remote device - platformio remote test -r deploy: provider: script script: platformio run -e release -t upload
  • 16. Copyright @ 2018 JFrog, PlatformIO - All rights reserved. Ribbit with us: #swampUP THANK YOU!