Free open-source MCU Zigbee stack implementation (RFD)

GitHub repo vagran/pulse-zigbee

I believe this is the first fully free Zigbee stack implementation for MCUs. The mainstream stacks are vendor-locked: restricted to specific platforms (usually the corresponding vendor’s MCUs) and released under custom licenses.

It implements only the RFD subset (no routers), but that is enough for most battery-powered hobby DIY devices used in home automation.

The project is also a demonstration of my Pulse framework, with its C++20 coroutines applied to a complex real-world project. The whole stack is built on the cooperative tasks, timers and synchronization primitives provided by Pulse, which lets the asynchronous protocol logic — timeouts, retransmissions, polling, multi-step exchanges — be written as straightforward sequential code instead of explicit state machines.

C++20 coroutines framework for embedded applications (STM32, nRF52840)

GitHub repo vagran/pulse

One day, I realized that I still couldn’t use C++20 coroutines in my embedded projects targeting STM32 and nRF52840 microcontrollers. While Rust developers can take advantage of coroutines through the Embassy framework, there was no comparable solution available for C++, despite coroutines having been part of the language for years.

So I decided to build one myself.

[Read More]