SlideShare a Scribd company logo
1 of 40
Download to read offline
Senior Technologist & Lead developer of Zenoh-Pico
carlos@zettascale.tech
Carlos Guimarães
Taming the Dragon - EP. 4
Zenoh on Microcontrollers and Low
Power Networks
Six Episodes
Nov 22nd — Zenoh Genesis (Recording )
Nov 29th — Zenoh: Getting Started (Recording )
Dec 6th — ROS 2 Robot-to-Anything with Zenoh (Recording )
Dec 13th — Zenoh on Microcontrollers and Low Power Networks
Dec 20th — Integrating DataBases and Messaging Protocols with Zenoh
Jan 10th — Data Flow Programming with Zenoh-Flow
All episodes run live on the given day at 10.00 CET and 18.00 CET to facilitate
participation from around the globe!
Let’s recap some Zenoh concepts
Uni
fi
es data in motion, data at rest and
computations from embedded microcontrollers
up to data centres
Provides a location-transparent API for high
performance pub/sub and distributed queries
across heterogeneous systems
Facilitates geo-distributed storage and integration
with third party technology in a plug-and-play
fashion
Runs everywhere
Over various network technologies: from
transport layer to data link
On embedded and constrained devices
Native libraries and API bindings for many
programming languages
Data Link
Network
Transport
Physical
…
Any topology
Peer-to-peer
Clique and mesh topologies
Routed
Routers forward data to and
from peers and clients
Brokered
Clients communicate through a
router or a peer
Router
Router
Brokered Routed
Router
Router
Router
Client
Client
Mesh
Peer
Peer
Peer
Peer
Peer
Router
Client Client Client Client
Router
Router
Client
Clique
Peer
Peer
Peer
Peer
COTS and embedded devices
Zenoh Router written in Rust
Native Rust libraries and
bindings to C and Python
Code and APIs
Rust
• Zenoh Router
• Plugins
• Native User API
library
Python
• User API binding
Binding based on
Rust library
C
• User API binding
based on Rust library
• Native User API
library with zenoh-pico
Coming soon…
API bindings:
• C++
• Java
• …
An ecosystem full of challenges
8bits 16bits
32bits 64bits
Scale of
Systems
Several CPU architectures
Different word size
Small scale systems
Medium scale systems
Complex systems
A Multitude of
Platforms
Bare-metal
Real-Time OS vs General-
purpose OS
Open-source vs proprietary
Time is not
guaranteed
Real-time clocks (RTC) are not
always there
Clock synchronisation might not
be possible
Broader time granularities
Year 2038 problem (signed 32-bit
integer representation)
Memory and
space
Lack of memory and space
Memory takes up a lot of silicon
area
Low power consumption
Tasks are very speci
fi
c and
limited
Energy
ef
fi
ciency
Low power consumption and
limited energy
Years of battery lifespan
Implement different sleep
modes
Power-friendly programming
patterns
Networks are
low powered
Small MTU sizes & low data rates
Gateway or mesh oriented
Connectionless transmissions
Might not rely on IP-based
technologies
A Continuous
Balance
Performance, functionality,
footprint, and energy
consumption
Not all applications have the
same requirements
Different ways for exposing and
consuming data
Zenoh a things-friendly protocol
* This is not an exhaustive feature list.
Challenges Zenoh Feature*
Scale of Systems Support for many RTOS and OS
Multitude of Platforms Support for many RTOS and OS
Energy E
ffi
ciency
Low wire overhead for data transmissions
Support connectionless protocols
Non-IP transports
Pub/sub with pull capabilities
Time is not Guaranteed Opt-in timestamping
Lack of Memory and Space
Brokered and P2P modes
Zenoh functionalities negotiation
Networks are also Low
Powered
Low overhead for data transmissions
Non-IP transports
Unicast and Multicast-based operation
A Continuous Balance Zenoh functionalities negotiation
Zenoh-Pico: A Smaller Dragon
Why Zenoh-Pico?
Embedded systems are key in many application domains, such as Robotics,
Automotive, Internet of Things, and Smart Cities
Run across constrained and low-power networks, such as LowPAN, LoRa,
Bluetooth, and Serial
Growing number of initiatives and adoption of Rust into embedded, but not yet
there
Key highlights
Small footprint Zenoh implementation
optimised for embedded systems and
microcontrollers
Natively implemented in C
(~80% of embedded development)
Easily ported to many other platforms,
frameworks and communication stacks
MISRA-C compliant
Platforms
Frameworks
Communication
21
Same User API
but tailored
Share the Zenoh-C User API
Tailored regarding:
- Zenoh related
con
fi
gurations
- task management
- KeyExpr to String format
Ownership
Model
Explicit ownership model
Owned and loaned types
Ownership helpers:
- z_move
- z_loan
- z_check
- z_drop
Con
fi
gurations
Con
fi
gurations are handled in
a different way
Compile time con
fi
guration
- Enable / Disable features
Run time con
fi
gurations
- Same as Zenoh-C
Zenoh-Pico
Zenoh-C
Task
Management
Support for both multi-thread and
single-thread
Direct control over read and lease
tasks
Users spawn/destroy tasks threads
Users explicit trigger single
execution of read and lease tasks
Multi-Thread
Single-Thread
KeyExpr to
String format
Zenoh-Pico might not have
the full string representation of
KeyExpr in a given point in
time
Requires KeyExpr to be
resolved to get full string
representation
Throughput
Latency
Zenoh-Pico
Brokered
Zenoh-Pico
P2P
DDS-XRCE MQTT OPC-UA
Median 47us 16us 44us 44us 38us
Minimun 35us 12us 28us 34us 26us
Wire Overhead
Footprint
Arduino Zephyr MBedOS
Empty App (wo/ Zenoh-
Pico)
17796 bytes 160400 bytes 49552 bytes
Zenoh-Pico core (wo/
networking stacks)
62844 bytes 202980 bytes 99568 bytes
Zenoh-Pico w/ UDP stack 98176 bytes 209410 bytes 158008 bytes
Zenoh-Pico w/ TCP stack 104140 bytes 209434 bytes 158144 bytes
Zenoh-Pico w/ UDP and
TCP stacks
104916 bytes 211988 bytes 160008 bytes
Zenoh-Pico w/ Serial Stack Not supported yet Not supported yet 122472 bytes
Zenoh and Zenoh-Pico are the same?
TL;DR: Yes!
Zenoh-Pico is an alternative implementation of the Zenoh
- API portability (minimal tweaks)
- Same wire protocol (aka interoperable with Zenoh)
- Same set of functionalities (but lightweight)
- C99 and MISRA-C compliant
Less talk, more action
Hands-on #1
Turtlebot3
Burger
ROS2 RC supported by Zenoh
and Zenoh-Pico
Zenoh-Pico running on:
Remote Controller (ESP-32)
Zenoh router at the Cloud
Zenoh-DDS-Bridge running on
Turtlebot3
ESP32
+
MPU6050
Data
fl
ows
HTTP
zenoh-bridge-dds
bot1/rt/cmd_vel
bot1/cams/0
demo.zenoh.io
Zenoh
Router
REST
Plugin
Web
Server
Plugin
zcapture
Zenoh-Pico or Micro-ROS2
Zenoh-Pico Micro-ROS2
Communication Model
Peer-to-Peer
Client-to-Broker
Client-to-Router
Client-to-Broker
Transports Any Limited to IP networks by DDS-XRCE
User APIs
Extremely simple User API
Avoids error prone behaviours
Complex User API
Likely to unintented error behaviours
Footprint
Lightweight
Con
fi
gurable
Heavyweight
ROS2 Interoperability Yes Yes
35
Zenoh-powered
ROS2 RC
Turtlebot3
Burger
ESP32
+
Gyroscope
ROS2 RC alike using only
Zenoh and Zenoh-Pico
Zenoh-pico running on:
Turtlebot3 (OpenCR)
Remote Controller (ESP-32)
Zenoh router at the edge over
WiFi
Hands-on #2
Exposing data from serial-only devices to the
IP world
Zenoh-Pico running on:
Sensor devices (STSTM32 + DHT22)
Local Zenoh router bridging Serial devices
Zenoh router at Edge attached to an
In
fl
Monitoring data via Grafana
Zenoh
Router
In
fl
uxDB
Storage
Zenoh
Router
Grafana
That’s all folks…
Summing up…
Lightweight implementation of
Zenoh for embedded systems,
microcontrollers, and
constrained networks
High throughput, low latency,
small footprint, and minimal
wire overhead
MISRA-C compliant
Platforms
Frameworks
Communication
Don’t forget to visit
Zenoh’s website…
https://zenoh.io/
… zenoh-pico
GitHub …
https://github.com/eclipse-zenoh/
zenoh-pico
… and to join Zenoh’s
Discord server!
https://discord.gg/
2GJ958VuHs
Find out more in our channels
Thank You

More Related Content

Similar to "Taming the Dragon": Zenoh on Microcontrollers and Low Power Networks

"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh
"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh
"Taming the Dragon": ROS2 Robot-to-Anything with ZenohZettaScaleTechnology
 
Getting the best out of WebRTC
Getting the best out of WebRTCGetting the best out of WebRTC
Getting the best out of WebRTCDigium
 
Getting the Best Out Of WebRTC - Astricon 2014
Getting the Best Out Of WebRTC - Astricon 2014Getting the Best Out Of WebRTC - Astricon 2014
Getting the Best Out Of WebRTC - Astricon 2014Dan Jenkins
 
Summit 16: Deploying Virtualized Mobile Infrastructures on Openstack
Summit 16: Deploying Virtualized Mobile Infrastructures on OpenstackSummit 16: Deploying Virtualized Mobile Infrastructures on Openstack
Summit 16: Deploying Virtualized Mobile Infrastructures on OpenstackOPNFV
 
Telco junho cost-effective approach for telco network analysis in 5_g_final
Telco junho cost-effective approach for telco network analysis in 5_g_finalTelco junho cost-effective approach for telco network analysis in 5_g_final
Telco junho cost-effective approach for telco network analysis in 5_g_finalJunho Suh
 
pppppppppppppppppjjjjjjjjjjjpppppppp.pptx
pppppppppppppppppjjjjjjjjjjjpppppppp.pptxpppppppppppppppppjjjjjjjjjjjpppppppp.pptx
pppppppppppppppppjjjjjjjjjjjpppppppp.pptxzeyadosama505
 
Networking
NetworkingNetworking
NetworkingSNancy
 
Building efficient 5G NR base stations with Intel® Xeon® Scalable Processors
Building efficient 5G NR base stations with Intel® Xeon® Scalable Processors Building efficient 5G NR base stations with Intel® Xeon® Scalable Processors
Building efficient 5G NR base stations with Intel® Xeon® Scalable Processors Michelle Holley
 
WebRTC Standards from Tim Panton
WebRTC Standards from Tim PantonWebRTC Standards from Tim Panton
WebRTC Standards from Tim PantonAlan Quayle
 
PLNOG 8: Emil Gągała - DATA CENTER FABRIC COOKBOOK
PLNOG 8: Emil Gągała - DATA CENTER FABRIC COOKBOOK PLNOG 8: Emil Gągała - DATA CENTER FABRIC COOKBOOK
PLNOG 8: Emil Gągała - DATA CENTER FABRIC COOKBOOK PROIDEA
 
Hyper Transport Technology
Hyper Transport TechnologyHyper Transport Technology
Hyper Transport Technologynayakslideshare
 
Computer networking (nnm)
Computer networking (nnm)Computer networking (nnm)
Computer networking (nnm)nnmaurya
 
ETE405-lec7.pptx
ETE405-lec7.pptxETE405-lec7.pptx
ETE405-lec7.pptxmashiur
 
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...Slide_N
 
12.) fabric (your next data center)
12.) fabric (your next data center)12.) fabric (your next data center)
12.) fabric (your next data center)Jeff Green
 
ETE405-lec7.pdf
ETE405-lec7.pdfETE405-lec7.pdf
ETE405-lec7.pdfmashiur
 
Software Stacks to enable SDN and NFV
Software Stacks to enable SDN and NFVSoftware Stacks to enable SDN and NFV
Software Stacks to enable SDN and NFVYoshihiro Nakajima
 

Similar to "Taming the Dragon": Zenoh on Microcontrollers and Low Power Networks (20)

Introduction to socket programming nbv
Introduction to socket programming nbvIntroduction to socket programming nbv
Introduction to socket programming nbv
 
Operating System fo IoT
Operating System fo IoTOperating System fo IoT
Operating System fo IoT
 
"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh
"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh
"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh
 
Getting the best out of WebRTC
Getting the best out of WebRTCGetting the best out of WebRTC
Getting the best out of WebRTC
 
Getting the Best Out Of WebRTC - Astricon 2014
Getting the Best Out Of WebRTC - Astricon 2014Getting the Best Out Of WebRTC - Astricon 2014
Getting the Best Out Of WebRTC - Astricon 2014
 
Summit 16: Deploying Virtualized Mobile Infrastructures on Openstack
Summit 16: Deploying Virtualized Mobile Infrastructures on OpenstackSummit 16: Deploying Virtualized Mobile Infrastructures on Openstack
Summit 16: Deploying Virtualized Mobile Infrastructures on Openstack
 
Telco junho cost-effective approach for telco network analysis in 5_g_final
Telco junho cost-effective approach for telco network analysis in 5_g_finalTelco junho cost-effective approach for telco network analysis in 5_g_final
Telco junho cost-effective approach for telco network analysis in 5_g_final
 
pppppppppppppppppjjjjjjjjjjjpppppppp.pptx
pppppppppppppppppjjjjjjjjjjjpppppppp.pptxpppppppppppppppppjjjjjjjjjjjpppppppp.pptx
pppppppppppppppppjjjjjjjjjjjpppppppp.pptx
 
TCP/IP 3RD SEM.2012 AUG.ASSIGNMENT
TCP/IP 3RD SEM.2012 AUG.ASSIGNMENTTCP/IP 3RD SEM.2012 AUG.ASSIGNMENT
TCP/IP 3RD SEM.2012 AUG.ASSIGNMENT
 
Networking
NetworkingNetworking
Networking
 
Building efficient 5G NR base stations with Intel® Xeon® Scalable Processors
Building efficient 5G NR base stations with Intel® Xeon® Scalable Processors Building efficient 5G NR base stations with Intel® Xeon® Scalable Processors
Building efficient 5G NR base stations with Intel® Xeon® Scalable Processors
 
WebRTC Standards from Tim Panton
WebRTC Standards from Tim PantonWebRTC Standards from Tim Panton
WebRTC Standards from Tim Panton
 
PLNOG 8: Emil Gągała - DATA CENTER FABRIC COOKBOOK
PLNOG 8: Emil Gągała - DATA CENTER FABRIC COOKBOOK PLNOG 8: Emil Gągała - DATA CENTER FABRIC COOKBOOK
PLNOG 8: Emil Gągała - DATA CENTER FABRIC COOKBOOK
 
Hyper Transport Technology
Hyper Transport TechnologyHyper Transport Technology
Hyper Transport Technology
 
Computer networking (nnm)
Computer networking (nnm)Computer networking (nnm)
Computer networking (nnm)
 
ETE405-lec7.pptx
ETE405-lec7.pptxETE405-lec7.pptx
ETE405-lec7.pptx
 
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
 
12.) fabric (your next data center)
12.) fabric (your next data center)12.) fabric (your next data center)
12.) fabric (your next data center)
 
ETE405-lec7.pdf
ETE405-lec7.pdfETE405-lec7.pdf
ETE405-lec7.pdf
 
Software Stacks to enable SDN and NFV
Software Stacks to enable SDN and NFVSoftware Stacks to enable SDN and NFV
Software Stacks to enable SDN and NFV
 

Recently uploaded

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseWSO2
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governanceWSO2
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringWSO2
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governance
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 

"Taming the Dragon": Zenoh on Microcontrollers and Low Power Networks

  • 1. Senior Technologist & Lead developer of Zenoh-Pico carlos@zettascale.tech Carlos Guimarães Taming the Dragon - EP. 4 Zenoh on Microcontrollers and Low Power Networks
  • 2. Six Episodes Nov 22nd — Zenoh Genesis (Recording ) Nov 29th — Zenoh: Getting Started (Recording ) Dec 6th — ROS 2 Robot-to-Anything with Zenoh (Recording ) Dec 13th — Zenoh on Microcontrollers and Low Power Networks Dec 20th — Integrating DataBases and Messaging Protocols with Zenoh Jan 10th — Data Flow Programming with Zenoh-Flow All episodes run live on the given day at 10.00 CET and 18.00 CET to facilitate participation from around the globe!
  • 3. Let’s recap some Zenoh concepts
  • 4. Uni fi es data in motion, data at rest and computations from embedded microcontrollers up to data centres Provides a location-transparent API for high performance pub/sub and distributed queries across heterogeneous systems Facilitates geo-distributed storage and integration with third party technology in a plug-and-play fashion
  • 5. Runs everywhere Over various network technologies: from transport layer to data link On embedded and constrained devices Native libraries and API bindings for many programming languages Data Link Network Transport Physical …
  • 6. Any topology Peer-to-peer Clique and mesh topologies Routed Routers forward data to and from peers and clients Brokered Clients communicate through a router or a peer Router Router Brokered Routed Router Router Router Client Client Mesh Peer Peer Peer Peer Peer Router Client Client Client Client Router Router Client Clique Peer Peer Peer Peer
  • 7. COTS and embedded devices Zenoh Router written in Rust Native Rust libraries and bindings to C and Python Code and APIs Rust • Zenoh Router • Plugins • Native User API library Python • User API binding Binding based on Rust library C • User API binding based on Rust library • Native User API library with zenoh-pico Coming soon… API bindings: • C++ • Java • …
  • 8. An ecosystem full of challenges
  • 9. 8bits 16bits 32bits 64bits Scale of Systems Several CPU architectures Different word size Small scale systems Medium scale systems Complex systems
  • 10. A Multitude of Platforms Bare-metal Real-Time OS vs General- purpose OS Open-source vs proprietary
  • 11. Time is not guaranteed Real-time clocks (RTC) are not always there Clock synchronisation might not be possible Broader time granularities Year 2038 problem (signed 32-bit integer representation)
  • 12. Memory and space Lack of memory and space Memory takes up a lot of silicon area Low power consumption Tasks are very speci fi c and limited
  • 13. Energy ef fi ciency Low power consumption and limited energy Years of battery lifespan Implement different sleep modes Power-friendly programming patterns
  • 14. Networks are low powered Small MTU sizes & low data rates Gateway or mesh oriented Connectionless transmissions Might not rely on IP-based technologies
  • 15. A Continuous Balance Performance, functionality, footprint, and energy consumption Not all applications have the same requirements Different ways for exposing and consuming data
  • 16. Zenoh a things-friendly protocol * This is not an exhaustive feature list. Challenges Zenoh Feature* Scale of Systems Support for many RTOS and OS Multitude of Platforms Support for many RTOS and OS Energy E ffi ciency Low wire overhead for data transmissions Support connectionless protocols Non-IP transports Pub/sub with pull capabilities Time is not Guaranteed Opt-in timestamping Lack of Memory and Space Brokered and P2P modes Zenoh functionalities negotiation Networks are also Low Powered Low overhead for data transmissions Non-IP transports Unicast and Multicast-based operation A Continuous Balance Zenoh functionalities negotiation
  • 18. Why Zenoh-Pico? Embedded systems are key in many application domains, such as Robotics, Automotive, Internet of Things, and Smart Cities Run across constrained and low-power networks, such as LowPAN, LoRa, Bluetooth, and Serial Growing number of initiatives and adoption of Rust into embedded, but not yet there
  • 19.
  • 20. Key highlights Small footprint Zenoh implementation optimised for embedded systems and microcontrollers Natively implemented in C (~80% of embedded development) Easily ported to many other platforms, frameworks and communication stacks MISRA-C compliant Platforms Frameworks Communication
  • 21. 21 Same User API but tailored Share the Zenoh-C User API Tailored regarding: - Zenoh related con fi gurations - task management - KeyExpr to String format
  • 22. Ownership Model Explicit ownership model Owned and loaned types Ownership helpers: - z_move - z_loan - z_check - z_drop
  • 23. Con fi gurations Con fi gurations are handled in a different way Compile time con fi guration - Enable / Disable features Run time con fi gurations - Same as Zenoh-C Zenoh-Pico Zenoh-C
  • 24. Task Management Support for both multi-thread and single-thread Direct control over read and lease tasks Users spawn/destroy tasks threads Users explicit trigger single execution of read and lease tasks Multi-Thread Single-Thread
  • 25. KeyExpr to String format Zenoh-Pico might not have the full string representation of KeyExpr in a given point in time Requires KeyExpr to be resolved to get full string representation
  • 27. Latency Zenoh-Pico Brokered Zenoh-Pico P2P DDS-XRCE MQTT OPC-UA Median 47us 16us 44us 44us 38us Minimun 35us 12us 28us 34us 26us
  • 29. Footprint Arduino Zephyr MBedOS Empty App (wo/ Zenoh- Pico) 17796 bytes 160400 bytes 49552 bytes Zenoh-Pico core (wo/ networking stacks) 62844 bytes 202980 bytes 99568 bytes Zenoh-Pico w/ UDP stack 98176 bytes 209410 bytes 158008 bytes Zenoh-Pico w/ TCP stack 104140 bytes 209434 bytes 158144 bytes Zenoh-Pico w/ UDP and TCP stacks 104916 bytes 211988 bytes 160008 bytes Zenoh-Pico w/ Serial Stack Not supported yet Not supported yet 122472 bytes
  • 30. Zenoh and Zenoh-Pico are the same? TL;DR: Yes! Zenoh-Pico is an alternative implementation of the Zenoh - API portability (minimal tweaks) - Same wire protocol (aka interoperable with Zenoh) - Same set of functionalities (but lightweight) - C99 and MISRA-C compliant
  • 31. Less talk, more action
  • 32. Hands-on #1 Turtlebot3 Burger ROS2 RC supported by Zenoh and Zenoh-Pico Zenoh-Pico running on: Remote Controller (ESP-32) Zenoh router at the Cloud Zenoh-DDS-Bridge running on Turtlebot3 ESP32 + MPU6050
  • 34. Zenoh-Pico or Micro-ROS2 Zenoh-Pico Micro-ROS2 Communication Model Peer-to-Peer Client-to-Broker Client-to-Router Client-to-Broker Transports Any Limited to IP networks by DDS-XRCE User APIs Extremely simple User API Avoids error prone behaviours Complex User API Likely to unintented error behaviours Footprint Lightweight Con fi gurable Heavyweight ROS2 Interoperability Yes Yes
  • 35. 35 Zenoh-powered ROS2 RC Turtlebot3 Burger ESP32 + Gyroscope ROS2 RC alike using only Zenoh and Zenoh-Pico Zenoh-pico running on: Turtlebot3 (OpenCR) Remote Controller (ESP-32) Zenoh router at the edge over WiFi
  • 36. Hands-on #2 Exposing data from serial-only devices to the IP world Zenoh-Pico running on: Sensor devices (STSTM32 + DHT22) Local Zenoh router bridging Serial devices Zenoh router at Edge attached to an In fl Monitoring data via Grafana Zenoh Router In fl uxDB Storage Zenoh Router Grafana
  • 38. Summing up… Lightweight implementation of Zenoh for embedded systems, microcontrollers, and constrained networks High throughput, low latency, small footprint, and minimal wire overhead MISRA-C compliant Platforms Frameworks Communication
  • 39. Don’t forget to visit Zenoh’s website… https://zenoh.io/ … zenoh-pico GitHub … https://github.com/eclipse-zenoh/ zenoh-pico … and to join Zenoh’s Discord server! https://discord.gg/ 2GJ958VuHs
  • 40. Find out more in our channels Thank You