Embedded Rust developer needed to port Zenoh router to STM32

This may be just a matter of recompiling a well written RUST repsoitory for STM32, or it may be a more complicated than that. Let me explain.

We are a robot company developing our next generation robot. Our robots rely on pub/sub framworks to connect multiple different pieces of hardware together, specifically we use ROS2 with eclipse Zenoh as the transport layer. Eclipse Zenoh is the pub/sub part. Eclipse zenoh has multiple elements to help things talk to each other using Zenoh – you have a router that routes messages, peers and clients. To see these in a single diagram see this:

https://zenoh.io/docs/getting-started/deployment/

In our next generation robot we have multiple boards, such as motor controllers which need to talk to each other. Zenoh pico is the embedded form of Zenoh that is intended for embedded devices. We’ve successfully made this work on the STM32 and have zenoh pico operating on the board itself. So we use Zenoh pico on the board to talk to host computers over serial and that works. However this creates a problem.

Very often host computers only have one or two serial ports, however we might have 5 or 6 boards Because we have multiple boards running zenoh pico we want to enable them to talk to their respective host computers. So what we want to do is have all those boards talk to a high powered STM32 with lots of UARTs to enable lots of peripherals. The problem is what happens to that data then? How do we route it? Well Zenoh has a solution which is known as the Zenoh router. Its designed to work on big host computers, like a PC, but as far as I can see there is no blocker to work on a STM machine with sufficient resources. so the logical thing would be if we could put Zenoh router on the STM32 and it should – in theory all just work.

This job is really about trying this out – we want you to take Zenoh Router

https://github.com/eclipse-zenoh/zenoh

Write a build script for it for STM32. Specifically the STM32H743ZIT6 and let’s see if it does indeed work.

Zenoh is written in RUST so it may just need a reasonably talented RUST on STM32 developer.

Second step would be to build it on top of ThreadX our preferred RTOS.

Zenoh is still changing quite a bit – so we will need a build script and instructions on how to use it so that we can recompile from source if zenoh changes. We probably are going to want to open source the results of this project back to the Zenoh project.

Share the Post:

Related Posts