Who is this for?

This Learning Path is for robotics developers, industrial automation engineers, and IoT system architects who are building distributed, scalable, and low-latency applications. Whether you're using the Robot Operating System (ROS), developing autonomous systems, or designing multi-node communication frameworks, you can use Eclipse Zenoh on Arm-based platforms, both in the cloud and on local devices like Raspberry Pi.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Understand Zenoh's architecture and how it integrates pub/sub, storage, querying, and computation models
  • Build and run Zenoh examples on both Arm servers and Raspberry Pi
  • Set up and deploy a multi-node Zenoh system

Prerequisites

Before starting, you will need the following:

  • At least two local Cortex-A devices running Linux, such as Raspberry Pi 4 or Pi 5. You can also use Arm servers or cloud instances
  • Experience with ROS 2 applications

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll build a multi-node Eclipse Zenoh system on Arm-based Linux devices such as Raspberry Pi. First, you’ll compile Zenoh from source. Then, you’ll distribute either the release binaries or a Docker image and run the nodes across multiple devices. You’ll test publish/subscribe messaging, in-memory storage and queries, and queryable nodes that compute results on demand. Finally, you’ll complete examples to see how to exchange messages across devices, retrieve stored values, and return calculated results through Zenoh queries.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
How do I know my Zenoh build is ready to deploy to other devices?
After building, check for compiled binaries under ~/zenoh/target/release. If the Zenoh examples run locally, you can copy the release binaries to your other Arm devices.
Which files do I need to copy when deploying binaries to additional Raspberry Pi boards?
Copy the compiled Zenoh binaries from ~/zenoh/target/release to each target device. Keep the files together so you can run the same examples across all nodes.
What result should I expect when I run the pub/sub example on two devices?
The subscriber should receive updates for keys that match the demo/example/** expression. When the publisher sends messages under matching keys, the subscriber observes those updates in real time over the local network.
Should I run Zenoh directly on the host or use Docker for multi-node tests?
Both approaches are supported. Run the release binaries directly on each device, or use Docker to distribute Zenoh and provide a consistent multi-node test environment.
What should I check if a z_get query returns no data in the storage example?
Confirm that the Zenoh daemon is running and that z_put and z_get use the same key. If port 7447 is already in use, stop the previous Zenoh process or configure another listener port. This example uses in-memory storage, so only values published after the daemon starts are available for you to query.
Next