1) The document discusses over-the-air (OTA) firmware upgrades for internet of things (IoT) devices using JFrog Bintray.
2) It describes the limited capabilities of typical IoT devices and challenges of upgrading their firmware.
3) It presents PlatformIO as an open source ecosystem that can be used to develop IoT firmware and JFrog Bintray as a universal distribution platform that can manage IoT firmware updates at scale through a REST API.
Introduction to Microservices Patterns. In these slides we explore microservices vs monolith apis. We try to identify the challenges of moving to microservices ecosystem and try to analyze possible solutions for data consistency, inter-communication, event driven and distributed transactions.
Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase. These slides give:
- an overview of Flutter,
- why is an awesome choice for cross-platform development
- why is unique compared to its competitors
- where to start from to get familiar with Flutter
Happy fluttering!
Reaching the multimedia web from embedded platforms with WPEWebkitIgalia
Nowadays the Web is one of the primary ways for multimedia content consumption
and real-time communication (through WebRTC). During this talk Philippe will
present the WPEWebKit web-engine that has been deployed on a wide range of
embedded platforms and how you can add it to your own Linux-based embedded
device. WPEWebKit is the official WebKit upstream port for embedded platforms.
For multimedia playback and real-time communication it heavily relies on the
GStreamer multimedia framework. Philippe will give an overview of the W3C
specifications supported by WPEWebKit. WPEWebKit products have been deployed in
various embedded environments and hardware platforms. Philippe will focus on
i.MX platforms, outlining the steps required to enable WPEWebKit in Yocto-based
BSPs. WPEWebKit can also be used in server-side innovative ways, such as
dynamic HTML/JS/CSS powered video overlaying. Philippe will present this
use-case, detailing how live video streams can be augmented with overlays.
GstWPE is a GStreamer plugin embedding a WPEWebKit WebView, allowing to inject
a live audio/video representation of any Web page into a GStreamer pipeline.
Both GPU-based hardware-accelerated and software rasterisers runtimes are
supported.
(c) Embedded Linux Conference - North America (ELC-NA 2021)
September 27-30, 2021
Hyatt Regency Seattle | Seattle, Washington + Virtual
https://events.linuxfoundation.org/embedded-linux-conference-north-america/
Introduction to Microservices Patterns. In these slides we explore microservices vs monolith apis. We try to identify the challenges of moving to microservices ecosystem and try to analyze possible solutions for data consistency, inter-communication, event driven and distributed transactions.
Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase. These slides give:
- an overview of Flutter,
- why is an awesome choice for cross-platform development
- why is unique compared to its competitors
- where to start from to get familiar with Flutter
Happy fluttering!
Reaching the multimedia web from embedded platforms with WPEWebkitIgalia
Nowadays the Web is one of the primary ways for multimedia content consumption
and real-time communication (through WebRTC). During this talk Philippe will
present the WPEWebKit web-engine that has been deployed on a wide range of
embedded platforms and how you can add it to your own Linux-based embedded
device. WPEWebKit is the official WebKit upstream port for embedded platforms.
For multimedia playback and real-time communication it heavily relies on the
GStreamer multimedia framework. Philippe will give an overview of the W3C
specifications supported by WPEWebKit. WPEWebKit products have been deployed in
various embedded environments and hardware platforms. Philippe will focus on
i.MX platforms, outlining the steps required to enable WPEWebKit in Yocto-based
BSPs. WPEWebKit can also be used in server-side innovative ways, such as
dynamic HTML/JS/CSS powered video overlaying. Philippe will present this
use-case, detailing how live video streams can be augmented with overlays.
GstWPE is a GStreamer plugin embedding a WPEWebKit WebView, allowing to inject
a live audio/video representation of any Web page into a GStreamer pipeline.
Both GPU-based hardware-accelerated and software rasterisers runtimes are
supported.
(c) Embedded Linux Conference - North America (ELC-NA 2021)
September 27-30, 2021
Hyatt Regency Seattle | Seattle, Washington + Virtual
https://events.linuxfoundation.org/embedded-linux-conference-north-america/
Introduction to Flutter - truly crossplatform, amazingly fastBartosz Kosarzycki
Intro: Flutter meaning rapid variation of electronic signal recently became Dart's framework name for mobile development. This presentation is a short introduction into a cross-platform solution covering iOS/Android. During this 45 minute period you'll learn what is flutter, where it came from and what it's for.
Decouvrir CQRS (sans Event sourcing) par la pratiqueThomas Pierrain
Introduction à CQRS présentée aux MS experiences 2016 (Palais des Congrès) par Thomas PIERRAIN, en compagnie de Bruno BOUCARD, Tomasz JASKULA et Eric VERNIE.
FOOD DELIVERY APP is a application designed primarily for use in the food delivery industry. This application will allow hotels, café, street food vendors and restaurants to increase scope of business by reducing the labor cost involved. Application presents an interactive and up-to-date menu with all available options in an easy to use manner. Customer can choose one or more items to place an order which will land in the cart before checking out. At the end customer can gets order confirmation details. Once the order is placed it is entered in the database and retrieved in pretty much real time.
Objective -
Develop a application that will allow customers to place their food order online and provide them with feedback, a generic image of the meal, a list of side dishes, main course ingredients, and cost information.
Apart from the general definition of a software module, There can be a more precise definition for it. The presentation describes the more specific definition of software modules. The content is taken from Kirk Knoernschild book Java Application Architecture
M2M Optimizations in Public Mobile Networks
M2M Over a Telecommunications Network
Network Optimizations for M2M
The Role of IP in M2M
IPv6 for M2M
6LoWPAN
Routing Protocol for Low-Power and Lossy Networks (RPL) CoRE
M2M Security
Trust Relationships in the M2M Ecosystem
Security Requirements
Which Types of Solutions are Suitable?
Standardization Efforts on Securing M2M and MTC Communications
M2M Terminals and Modules
M2M Module Categorization
Hardware Interfaces
Temperature and Durability Services
Software Interface
Cellular Certification
Lets Flutter - Talk on flutter in Google IO Extended in Google Developer Group Mumbai.
This has a detailed view of flutter and comparison of React native vs Flutter vs Native app development
YouTube Link: https://youtu.be/9XMt2hChbRo
** Edureka Online Training: https://www.edureka.co/ **
In this edureka PPT, Flutter tutorial, you will learn about google's cross-platform mobile application development framework. You will also learn to make a basic app using flutter at the end of this video.
The following topics are discussed in this PPT
Mobile Application Development
What is Flutter?
Why learn Flutter?
Flutter Architecture
Types of Widgets
How Flutter Compiles
Flutter Installation
Writing Our First Flutter Application
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...AMD Developer Central
Presentation CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and other usages, by Daryl-Sartain at the AMD Developer Summit (APU13) November 11-13, 2013.
Qt Creator IDE 101 – Qt Creator is a complete integrated development environment (IDE) for creating applications with the Qt application framework.
This session will give a brief 10 minute introduction in Qt tooling, then we will dive into a 35 minute introduction to Qt Creator, showing how to set-up and get started with this IDE.
The main goal for Qt Creator is meeting the development needs of Qt developers who are looking for simplicity, usability, productivity, extendibility & openness, while aiming to lower the barrier of entry for newcomers to Qt. Being focused on Qt development it provides an integrated development environment for both desktop as well as embedded development. Get started with Qt application development quickly & easily with project wizards, & quickly access recent projects & sessions.
Learn more at www.resources.qt.io
Try Qt for free at https://www.qt.io/download
Support de présentation de la première édition du Meetup Flutter de Rennes.
Le développement mobile cross-platforms n’a jamais vraiment convaincu : amenant souvent de lourdes contraintes qui entachent la productivité ou l’expérience utilisateur. Mais Google a repensé cette approche et propose une solution qui fait beaucoup parler. Nous verrons ensemble pourquoi il faut prêter une attention particulière à cette technologie.
Pour cette première édition, Aloïs et Romain (Orange Business Services) présenterons tout d'abord les objectifs de ce nouveau Meetup avant de présenter les outils de Google.
https://www.youtube.com/watch?v=K-tXEkGTzfE
Devices on the edge are highly varied in hardware and capabilities, even within the same technology space. Knowing that, how do we design an efficient, scalable, and reliable solution for updating the software on these devices, all while minimizing downtime for the user?
Introduction to Flutter - truly crossplatform, amazingly fastBartosz Kosarzycki
Intro: Flutter meaning rapid variation of electronic signal recently became Dart's framework name for mobile development. This presentation is a short introduction into a cross-platform solution covering iOS/Android. During this 45 minute period you'll learn what is flutter, where it came from and what it's for.
Decouvrir CQRS (sans Event sourcing) par la pratiqueThomas Pierrain
Introduction à CQRS présentée aux MS experiences 2016 (Palais des Congrès) par Thomas PIERRAIN, en compagnie de Bruno BOUCARD, Tomasz JASKULA et Eric VERNIE.
FOOD DELIVERY APP is a application designed primarily for use in the food delivery industry. This application will allow hotels, café, street food vendors and restaurants to increase scope of business by reducing the labor cost involved. Application presents an interactive and up-to-date menu with all available options in an easy to use manner. Customer can choose one or more items to place an order which will land in the cart before checking out. At the end customer can gets order confirmation details. Once the order is placed it is entered in the database and retrieved in pretty much real time.
Objective -
Develop a application that will allow customers to place their food order online and provide them with feedback, a generic image of the meal, a list of side dishes, main course ingredients, and cost information.
Apart from the general definition of a software module, There can be a more precise definition for it. The presentation describes the more specific definition of software modules. The content is taken from Kirk Knoernschild book Java Application Architecture
M2M Optimizations in Public Mobile Networks
M2M Over a Telecommunications Network
Network Optimizations for M2M
The Role of IP in M2M
IPv6 for M2M
6LoWPAN
Routing Protocol for Low-Power and Lossy Networks (RPL) CoRE
M2M Security
Trust Relationships in the M2M Ecosystem
Security Requirements
Which Types of Solutions are Suitable?
Standardization Efforts on Securing M2M and MTC Communications
M2M Terminals and Modules
M2M Module Categorization
Hardware Interfaces
Temperature and Durability Services
Software Interface
Cellular Certification
Lets Flutter - Talk on flutter in Google IO Extended in Google Developer Group Mumbai.
This has a detailed view of flutter and comparison of React native vs Flutter vs Native app development
YouTube Link: https://youtu.be/9XMt2hChbRo
** Edureka Online Training: https://www.edureka.co/ **
In this edureka PPT, Flutter tutorial, you will learn about google's cross-platform mobile application development framework. You will also learn to make a basic app using flutter at the end of this video.
The following topics are discussed in this PPT
Mobile Application Development
What is Flutter?
Why learn Flutter?
Flutter Architecture
Types of Widgets
How Flutter Compiles
Flutter Installation
Writing Our First Flutter Application
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...AMD Developer Central
Presentation CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and other usages, by Daryl-Sartain at the AMD Developer Summit (APU13) November 11-13, 2013.
Qt Creator IDE 101 – Qt Creator is a complete integrated development environment (IDE) for creating applications with the Qt application framework.
This session will give a brief 10 minute introduction in Qt tooling, then we will dive into a 35 minute introduction to Qt Creator, showing how to set-up and get started with this IDE.
The main goal for Qt Creator is meeting the development needs of Qt developers who are looking for simplicity, usability, productivity, extendibility & openness, while aiming to lower the barrier of entry for newcomers to Qt. Being focused on Qt development it provides an integrated development environment for both desktop as well as embedded development. Get started with Qt application development quickly & easily with project wizards, & quickly access recent projects & sessions.
Learn more at www.resources.qt.io
Try Qt for free at https://www.qt.io/download
Support de présentation de la première édition du Meetup Flutter de Rennes.
Le développement mobile cross-platforms n’a jamais vraiment convaincu : amenant souvent de lourdes contraintes qui entachent la productivité ou l’expérience utilisateur. Mais Google a repensé cette approche et propose une solution qui fait beaucoup parler. Nous verrons ensemble pourquoi il faut prêter une attention particulière à cette technologie.
Pour cette première édition, Aloïs et Romain (Orange Business Services) présenterons tout d'abord les objectifs de ce nouveau Meetup avant de présenter les outils de Google.
https://www.youtube.com/watch?v=K-tXEkGTzfE
Devices on the edge are highly varied in hardware and capabilities, even within the same technology space. Knowing that, how do we design an efficient, scalable, and reliable solution for updating the software on these devices, all while minimizing downtime for the user?
Breaking Extreme Networks WingOS: How to own millions of devices running on A...Priyanka Aash
"Extreme network's embedded WingOS (Originally created by Motorola) is an operating system used in several wireless devices such as access points and controllers. This OS is being used in Motorola devices, Zebra devices and Extreme network's devices. This research started focusing in an access point widely used in many Aircrafts by several worldwide airlines but ended up in something bigger in terms of devices affected as this embedded operating system is not only used in AP's for Aircrafts but also in Healthcare, Government, Transportation, Smart cities, small to big enterprises... and more.
Based on public information, we will see how vulnerable devices are actively used (outdoors) in big cities around the world. But also in Universities, Hotels,Casinos, Big companies, Mines, Hospitals and provides the Wi-Fi access for places such as the New york City Subway.
In this presentation we will show with technical details how several critical vulnerabilities were found in this embedded OS. First we will introduce some internals and details about the OS and then we will show the techniques used to reverse engineering the mipsN32 ABI code for the Cavium Octeon processor. It will be discussed how some code was emulated to detect how a dynamic password is generated with a cryptographic algorithm for a root shell backdoor. Besides, it will be shown how some protocols used by some services were reverse engineered to find unauthenticated heap and stack overflow vulnerabilities that could be exploitable trough Wireless or Ethernet connection.
This OS also uses a proprietary layer 2/3 protocol called MiNT. This protocol is used for communication between WingOS devices through VLAN or IP. This protocol was also reverse engineered and remote heap/stack overflow vulnerabilities were found on services using this protocol and will be shown. As a live demonstration, 2 devices will be used to exploit a remote stack overflow chaining several vulnerabilities as the attacker could do inside an aircraft (or other scenarios) through the Wi-Fi. As there are not public shellcodes for mipsN32 ABI, the particularities of creating a Shellcode for mipsN32 ABI will be also discussed."
" Breaking Extreme Networks WingOS: How to own millions of devices running on...PROIDEA
Extreme network's embedded WingOS (Originally created by Motorola) is an operating system used in several wireless devices such as access points and controllers. This OS is being used in Motorola devices, Zebra devices and Extreme network's devices. This research started focusing in an access point widely used in many Aircrafts by several worldwide airlines but ended up in something bigger in terms of devices affected as this embedded operating system is not only used in AP's for Aircrafts but also in Healthcare, Government, Transportation, Smart cities, small to big enterprises... and more. Based on public information, we will see how vulnerable devices are actively used (outdoors) in big cities around the world. But also in Universities, Hotels,Casinos, Big companies, Mines, Hospitals and provides the Wi-Fi access for places such as the New york City Subway. In this presentation we will show with technical details how several critical vulnerabilities were found in this embedded OS. First we will introduce some internals and details about the OS and then we will show the techniques used to reverse engineering the mipsN32 ABI code for the Cavium Octeon processor. It will be discussed how some code was emulated to detect how a dynamic password is generated with a cryptographic algorithm for a root shell backdoor. Besides, it will be shown how some protocols used by some services were reverse engineered to find unauthenticated heap and stack overflow vulnerabilities that could be exploitable trough Wireless or Ethernet connection. This OS also uses a proprietary layer 2/3 protocol called MiNT. This protocol is used for communication between WingOS devices through VLAN or IP. This protocol was also reverse engineered and remote heap/stack overflow vulnerabilities were found on services using this protocol and will be shown. As a demonstration, 2 devices will be used to exploit a remote stack overflow chaining several vulnerabilities as the attacker could do inside an aircraft (or other scenarios) through the Wi-Fi. As there are not public shellcodes for mipsN32 ABI, the particularities of creating a Shellcode for mipsN32 ABI will be also discussed.
Working on standards can be slow and tedious but there are also rewards: interoperability, open source implementations and high-quality specifications. Based on two examples of ongoing standardization efforts that aim to improve IoT security in the Internet Engineering Task Force (IETF), namely "Authentication and Authorization for Constrained Environments" (ACE) and "Software Updates for Internet of Things" (SUIT), Hannes explains the process and how to get involved.
Having trouble with IP's and switches?
Overcome these troubles with ManageEngine OpUtils
Learn more about
- IP address and switch port management
-Rogue device detection
-Bandwidth monitor and config file manager
- Troubleshooting tools
How to Use Telegraf and Its Plugin EcosystemInfluxData
Telegraf is the open source server agent which is used to collect metrics from your stacks, sensors and systems. It is InfluxDB’s native data collector that supports over 250+ inputs and outputs. Learn how to send data from a variety of systems, apps, databases and services in the appropriate format to InfluxDB. Discover tips and tricks on how to write your own plugins.
Join this webinar as Jessica Ingrassellino and Samantha Wang dive into:
Types of Telegraf plugins (i.e. input, output, aggregator and processor)
Specific plugins including Execd input plugins and the Starlark processor plugin
How to create your own Telegraf plugin
Open Source for Industry 4.0 – Open IoT Summit NA 2018Benjamin Cabé
Industry 4.0 is set to revolutionize the manufacturing industry. The potential for more flexible manufacturing, more efficient processes and lower costs are the driving factors behind the investment in Industry 4.0 solutions. A key part of creating successful Industry 4.0 solutions will be software on the factory floor and in the cloud.
In this talk, we will introduce how open source software has become a trusted source of technology for the enterprise IT software industry and how the Eclipse IoT open source community and other open source communities are now ready to provide production ready technology for the manufacturing industry and Industry 4.0. Open source software will provide the key building blocks that will promote the interoperability and flexibility required by Industry 4.0 solutions.
Having trouble with IP's and switches?
Overcome these troubles with ManageEngine OpUtils
Learn more about
- IP address and switch port management
-Rogue device detection
-Bandwidth monitor and config file manager
- Troubleshooting tools
by Mr. Ananth Subba, Co-founder & CTO, SpaceAge Labs, at NUS-ISS SkillsFuture Series Seminar: Secured IoTs and Secured Cloud – Partners in ensuring a Secured Smart Nation (3 Oct)
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)MdTanvirMahtab2
This presentation is about the working procedure of Shahjalal Fertilizer Company Limited (SFCL). A Govt. owned Company of Bangladesh Chemical Industries Corporation under Ministry of Industries.
Saudi Arabia stands as a titan in the global energy landscape, renowned for its abundant oil and gas resources. It's the largest exporter of petroleum and holds some of the world's most significant reserves. Let's delve into the top 10 oil and gas projects shaping Saudi Arabia's energy future in 2024.
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdffxintegritypublishin
Advancements in technology unveil a myriad of electrical and electronic breakthroughs geared towards efficiently harnessing limited resources to meet human energy demands. The optimization of hybrid solar PV panels and pumped hydro energy supply systems plays a pivotal role in utilizing natural resources effectively. This initiative not only benefits humanity but also fosters environmental sustainability. The study investigated the design optimization of these hybrid systems, focusing on understanding solar radiation patterns, identifying geographical influences on solar radiation, formulating a mathematical model for system optimization, and determining the optimal configuration of PV panels and pumped hydro storage. Through a comparative analysis approach and eight weeks of data collection, the study addressed key research questions related to solar radiation patterns and optimal system design. The findings highlighted regions with heightened solar radiation levels, showcasing substantial potential for power generation and emphasizing the system's efficiency. Optimizing system design significantly boosted power generation, promoted renewable energy utilization, and enhanced energy storage capacity. The study underscored the benefits of optimizing hybrid solar PV panels and pumped hydro energy supply systems for sustainable energy usage. Optimizing the design of solar PV panels and pumped hydro energy supply systems as examined across diverse climatic conditions in a developing country, not only enhances power generation but also improves the integration of renewable energy sources and boosts energy storage capacities, particularly beneficial for less economically prosperous regions. Additionally, the study provides valuable insights for advancing energy research in economically viable areas. Recommendations included conducting site-specific assessments, utilizing advanced modeling tools, implementing regular maintenance protocols, and enhancing communication among system components.
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Dr.Costas Sachpazis
Terzaghi's soil bearing capacity theory, developed by Karl Terzaghi, is a fundamental principle in geotechnical engineering used to determine the bearing capacity of shallow foundations. This theory provides a method to calculate the ultimate bearing capacity of soil, which is the maximum load per unit area that the soil can support without undergoing shear failure. The Calculation HTML Code included.
Immunizing Image Classifiers Against Localized Adversary Attacksgerogepatton
This paper addresses the vulnerability of deep learning models, particularly convolutional neural networks
(CNN)s, to adversarial attacks and presents a proactive training technique designed to counter them. We
introduce a novel volumization algorithm, which transforms 2D images into 3D volumetric representations.
When combined with 3D convolution and deep curriculum learning optimization (CLO), itsignificantly improves
the immunity of models against localized universal attacks by up to 40%. We evaluate our proposed approach
using contemporary CNN architectures and the modified Canadian Institute for Advanced Research (CIFAR-10
and CIFAR-100) and ImageNet Large Scale Visual Recognition Challenge (ILSVRC12) datasets, showcasing
accuracy improvements over previous techniques. The results indicate that the combination of the volumetric
input and curriculum learning holds significant promise for mitigating adversarial attacks without necessitating
adversary training.
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
● ...
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
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!