Micro-ROS Zephyr and Eclipse ThreadX which is the right choice?

TLDR Given that we now have an open-source safety certified RTOS, with higher performance than Zephyr that is being supported by key micro-controller players should we be thinking about implementing micro-ROS on ThreadX?

Back a couple of years the motivation behind implementing Micro-ROS on Zephyr was that Zephyr was going to attempt to be the first open-source RTOS that had safety certification.

As far as I can see attempts were made, but I don’t see that Zephyr has managed to do it.

Meanwhile - earlier this year - ThreadX was generously released as open source by Microsoft and is now Eclipse ThreadX. ThreadX is IEC 61508, IEC 62304, ISO 26262, and EN 50128 conformance certified by SGS-TÜV Saar. ThreadX has also achieved EAL4+ Common Criteria security certification.

Not only that but it seems that all the major players are now getting behind ThreadX including AMD, Cypherbridge, Microsoft, NXP, PX5, Renesas, ST Microelectronics, Silicon Labs, and Witekio. For me ST and NXP are the two most critical ones - due to the depth and breadth of their uC portfolio.

Eclipse claims that they are going to staff up to maintain the safety certifications of this software - as some of you will know this is a very heavy lift, so who knows if they will succeed. The good news is that the uC makers need this and they are supporting the effort.

Meanwhile third party benchmarks seem to show ThreadX outperforms Zephyr in almost every metric:

My developers who have worked with Zephyr - think that its fine, but a bit complicated and bloated compared with other RTOS they have worked with.

Given that we now have a safety certified RTOS, with higher performance than Zephyr that is being supported by key micro-controller players should we be thinking about implementing micro-ROS on ThreadX?

Has anyone tried already? If not who is interested in trying?

Hi @davecrawley,

Thanks for your interest.

We haven’t updated our support for ThreadX specifically after the Eclipse acquisition. However, we did it for Azure RTOS, which includes ThreadX and NetXDuo.

You can check out our work here:

I hope this helps! Let me know if you need any more info.

Awesome! Better than expected answer!

Current micro-ROS documentation says NuttX, Zephyr and FreeRTOS e.g. here:

Is it out of date? Does it need updating?

Up-to-date documentation is here: 6. micro-ROS Documentation — Vulcanexus 1.0.0 documentation.

Also you can take a look at our Github organization: micro-ROS · GitHub