The V-Model is a product development lifecycle that maps design phases on one side and testing phases on the other. It’s simple, easy to follow, and works well for small and medium projects like smart appliances or wearables.
Error handling is tricky. On one side, the caller needs to react to errors. On the other side, the more error details you pass back, the more complex the caller code becomes. Complex code means harder to read, harder to maintain, and more bugs. An...
Sysbuild is a higher-level build system that can be used to combine different modules that are not in the necessary under the same project like MCUmgr and MCUBoot. It’s a great tool and it’s part of the Zephyr ecosystem, but sometimes can be a pa...
In a previous post, I mentioned that I’ve been working a lot with the Linux and Zephyr RTOS code lately. Most of the time, I’m either tuning the device tree spec (DTS) or patching the kernel or writing drivers. I learned a lot about how Linux org...
I’m working lately a lot with embedded linux, and most of the time is either tuning the device tree spec (dts) or patching the kernel. So while debugging and patching the kernel I learned a lot about how linux organize the code and its use of th...
I’m pretty sure you’ve already heard about recursion. If not, check out these videos first:
In 2022, I spent almost a year looking for a business partner to start a new venture. During that time, I had a lot of conversations with people about various ideas and even tried out a few. One of the more intriguing ones was a device that could ...
In Zephyr, the typical way to enable logging in your application is by setting LOG_LEVEL and registering the module. This works well for small projects where you have one or two modules. But if your repository has multiple source files or modules,...
I’m currently building a firmware application in Zephyr for the STM32WB55, a microcontroller with limited flash space (~400KB when using MCUBoot). While exploring kernel configuration options, I came across the Link Time Optimization (LTO).
Secure boot is a critical security feature for embedded devices. It ensures that only authorized firmware runs on a device, protecting against unauthorized modifications or attacks. In this post, I’ll explain how secure boot works using a simple e...