Blog
Technical writing on embedded software, firmware patterns, and the tools I use.

Latest article
Walking Through Bootlin's Yocto STM32MP1 Lab
If you're new to embedded Linux, "Yocto Project" is one of those names that comes up constantly and sounds intimidating. This post is a friendly, beginner-focused walkthrough of Bootlin's free Lab 1 training, targeting an STM32MP1 development board, including every error I ran into along the way and what it actually meant.
Read articleSeries
Embedded Linux from scratch
Building a Linux system by hand on a Raspberry Pi 4: cross-compiling toolchain, TF-A and U-Boot, the kernel, a minimal root filesystem, then hardware access from userspace.
Start the series- 01How to Build an ARM Cross-Compiling Toolchain with Crosstool-NG15 min read
- 02Booting a Raspberry Pi 4 with TF-A and U-Boot: A Practical Journey15 min read
- 03Cross-Compiling the Linux Kernel for Raspberry Pi 4: From Source to Boot25 min read
- 04From Kernel Panic to Shell Prompt: Building a Minimal Linux Userspace on Raspberry Pi 415 min read
- 05Accessing Hardware Devices on Raspberry Pi 4: GPIO, I2C and USB25 min read
Zephyr RTOS on STM32
From a first blinky to the project structure, build system, device tree and Kconfig.
Start the seriesAll articles
2026
JulWorking with WSL and VMware Shared FoldersA practical reference for setting up and troubleshooting a WSL-based development environment, attaching USB devices, and sharing files with VMware virtual machines.AprZephyr · Part 2Understanding Zephyr: Project Structure, Build System, Device Tree and KconfigIn the first part, we set up Zephyr from scratch on the STM32 Nucleo F103RB, built the blinky sample from inside the Zephyr source tree, and flashed it successfully. If you followed along, your LED is blinking and your toolchain is working.AprZephyr · Part 1Getting Started with Zephyr RTOS on STM32 Nucleo F103RBIf you've been working with bare-metal STM32 development using HAL or CubeMX, you've probably heard about Zephyr RTOS - the Linux Foundation's open-source, production-grade real-time operating system that's gaining serious traction in the embedded industry.AprHardware Debugging on AliExpress Modules: MAX30102 and SH1106 OLEDBuilding a medical device fot Hackster.io Arduino UNO Q contest, It meant dealing with cheap AliExpress modules that do not always behave the way
the seller describesAprEmbedded Linux · Part 5Accessing Hardware Devices on Raspberry Pi 4: GPIO, I2C and USBWith a working shell on the RPi4, the next step is learning how to access and control hardware devices from Linux. This lab covers three areas: exploring the Linux device model through `/dev` and `/sys`, driving GPIOs through the sysfs interfaceAprEmbedded Linux · Part 4From Kernel Panic to Shell Prompt: Building a Minimal Linux Userspace on Raspberry Pi 4With TF-A, U-Boot, and the Linux kernel running on the Raspberry Pi 4, the boot chain is solid. But a kernel with no userspace is just a very expensive panic message.AprEmbedded Linux · Part 3Cross-Compiling the Linux Kernel for Raspberry Pi 4: From Source to BootWith TF-A and U-Boot running, we now control the full boot chain. The
next step is bringing up the Linux kernel itself — from source to first
execution on hardware.AprEmbedded Linux · Part 2Booting a Raspberry Pi 4 with TF-A and U-Boot: A Practical JourneyIf you have ever tried to set up a proper embedded Linux boot chain on a
Raspberry Pi 4, you know it is not as simple as flashing an image and
pressing power.AprI'm Building an AI Neonatal Monitor for the Hackster.io "Invent the Future with Arduino UNO Q and App Lab" contestAI Neonatal Monitor for the Hackster.io Arduino UNO Q ContestAprEmbedded Linux · Part 1How to Build an ARM Cross-Compiling Toolchain with Crosstool-NGBuilding embedded Linux systems means compiling code on your x86 laptop for an ARM64 board. Your native gcc can't do that — you need a cross-compiler. In this tutorial, you'll build one from scratch using Crosstool-NG: configure GCC 14.3.0 targeting AArch64, choose musl as your C library, and test your binary on QEMU without any physical hardware.MarMy Journey at Embedded World 2026If there's one event every embedded engineer should experience at least once, it's Embedded World. This year, I made the trip to Nuremberg for Embedded World 2026 (March 10–12), and I came back with a head full of ideas, a bag full of dev boards, and a clear sense of where our industry is heading...