This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Zephyr RTOS vs. FreeRTOS

Hi Nordic Support,

I am currently developing an IoT application (battery powered, cellular device with a few sensors connected). I have spent the past year building the application using FreeRTOS. I've used FreeRTOS for years, and it's more than adequate for the application I'm developing.

I have been asked to look into using Zephyr RTOS. It definitely is promising, but I have my doubts as to maturity, and the fact that it would be overkill for our project.

What is your opinion about Zephyr in terms of 

1. Maturity

2. Stability

3 Footprint

Any constructive critique would be really appreciated. Thanks

Tim

  • The nRF Connect SDK is based on Zephyr - so I guess Nordic must think it's suitably mature & stable, with an acceptable footprint ... ?

    https://www.nordicsemi.com/Software-and-tools/Software/nRF-Connect-SDK 

  • Hi.

    As said, we are using Zephyr for our nRF Connect SDK, and will use it for new features over the nRF5 SDK.

    However, it is worth noting that the nRF Connect SDK (NCS) is not production ready for all features yet. Particularly BLE Mesh, Thread and Zigbee are still only supported for "development", i.e. they are still not feature complete or fully tested.

    Otherwise, when it comes to maturity, even though the Zephyr project is relatively new (2015), it's history goes farther back. Zephyr is based on Wind River's VxWorks MickroKernel Profile for VxWorks. Which again is based on Eonic Systems' digital signal processor RTOS Virtuoso, which was acquired by Wind River in 2001. Virtuoso has been used in several projects, but one of the more notable ones in recent years is the Philae lander.

    Size wise, I have heard claims that a you can fit a very simple Zephyr application in ~8KB. One of the strengths of Zephyr is that it is very configurable, so with some care, you can remove a lot of features not used by your project.

    Stability wise, most of the Zephyr kernel APIs are quite stable. But, when it comes to higher layer libraries, there is more variance in how stable the interfaces are.

    Your Regional Sales Manager might be able to provide you with more information, or if you have further questions I will do my best to answer them.

    We also plan to hold a series of webinars this fall, which might also provide more answers.

    Best regards,

    Didrik

Related