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]

ADK C++ Gradle plugin

When I wanted to use brand new C++20 modules in my next project I found that currently (2021 Q3) there is still no any support in major build systems typically used for C++ projects. So the obvious solution is to create one. This Gradle plugin satisfied all my needs for such a system and made me happy. More details in the repository.

GitHub repo vagran/adk-cpp-gradle-plugin

Tiny home hydroponics

This funny project was started both for having fun with some “biotech” and with relatively new for those times C++11 standard, especially regarding its usage possibility in MCUs. This ended with fully automated home hydroponics system. There is an article (in Russian) about this project.

I have a dream about version 2. This time it should have a bit larger scale and more serious approach to “biotech” part (tomatoes from version 1 had terrible taste). But still no time to implement all new ideas.

GitHub repo vagran/hydroponics [Read More]