🎄 Official support for Zephyr Project

We’re happy to announce initial support for Zephyr Project, a scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource-constrained devices, and built with safety and security in mind.

You can finally use PlatformIO and its professional 1-Click solutions (PIO Unified Debugger, PIO Unit Testing) without dependencies to 3rd party tools or build systems. Everything works out-of-the-box. All famous operating systems (Windows, macOS, Linux) and over 10+ popular IDEs are ready to make you happy these holidays.

Happy New Year! :yellow_heart: :christmas_tree: :santa:


Links

Examples

Demos

PlatformIO IDE for VSCode

CLion with PlatformIO plugin

Eclipse IDE

3 Likes

Thanks for this! I was hoping I would be able to start the journey of programming my PineTime development board with PlatformIO… and just in time, you implement support for Zephyr! :smiley: :smiley: So it looks like Mbed and Zephyr are in it’s immediate future! :wink:

1 Like

Thanks for the zephyr support :slight_smile:
I have a question though… when creating a project based on the nrf52840 board which zephyr base is used… is the ZEPHYR_BASE env var used? and if not can I set the zephyr base in my project? thanks.

1 Like

Hi @sameraugury! We specify our local ZEPHYR_BASE variable in an isolated environment. ZEPHYR_BASE value is equal to the path to framework-zephyr package.

Thanks as always Ivan.

I’ve become so used to Platformio and VScode, and now find myself attracted by the hardware of the NXP ‘crossover’ products, but as someone else said on this forum, the MCUxpresso tooling is so back to the future (in a bad way!) that it is physically painful.

I was wondering, with this announcement, and given that Platformio now supportsTeensyduino 4.0, and also that Zephyr supports RT1062, is there any chance that Platformio will support the RT1060 dev kit with Zephyr anytime soon?

1 Like

OK, my bad :slight_smile:

2 Likes

This Zephyr integration is really special, but I want to know if it’s feasible to integrate it with an external installation of Zephyr. What I mean is, an installation of zephyr somewhere on the filesystem, done using “west.” Maybe it’s possible to set-up some symlinks?

Hi @jpnorair! Indeed, the Zephyr integration is a bit unusual. In a nutshell, Zephyr has a pretty sophisticated structure and each Zephyr module is shipped as a standalone package. It might be a tedious task, but I believe it’s possible to point PlatformIO to custom Zephyr packages using the platform_packages option, for example:

[env:nucleo_f401re]
platform = ststm32
framework = zephyr
board = nucleo_f401re
platform_packages =
    platformio/framework-zephyr @ file:// /path/to/zephyr/zephyr/sources
    platformio/framework-zephyr-mbedtls @ file:// /path/to/zephyr/modules/crypto/mbedtls
    platformio/framework-zephyr-hal-st @ file:// /path/to/zephyr/modules/hal/st
    platformio/framework-zephyr-canopennode @ file:// /path/to/zephyr/modules/lib/canopennode
    .... and so on for all Zephyr packages

Please keep in mind that each Zephyr module should contain a valid package.json file. Besides, the framework-zephyr package should also contain PlatformIO build scripts (you can copy them from the original package).

2 Likes

Sir,

how can i use the BME280/BMP280 in forced mode on Platformio-Zephyr ?

Will i have this option on ZEPHYR 2.200 ?

Thanks!

Thanks. Today I was trying your example of creating a custom board, and I was not having success in the building phase. I think this is because I am using an SoC not supported in the PlatformIO Zephyr version (but it is supported in the mainline Zephyr). But if I can just link PlatformIO to my mainline Zephyr modules, that is a much better solution. I will try this next.

Hello: I’m working on this now and I posted a separate topic with questions.