Articles

Practical articles, tutorials, and deep dives on embedded systems development — covering Arduino, ESP32, Nordic SoCs, Zephyr RTOS, firmware updates, and real-world hardware projects.

STM32 Nucleo Embedded C++ Learning Roadmap with PlatformIO and VS Code

Discover how to master STM32 Nucleo development using modern C++ and the powerful PlatformIO + VS Code toolchain. This practical roadmap guides you from blinking an LED to building real-world applications like data loggers, sensor interfaces, and multitasking systems with FreeRTOS. Whether you're new to embedded programming or moving from C to C++, learn to write clean, maintainable code, abstract hardware with classes, handle interrupts, and integrate peripheral interfaces—all without vendor lock-in. Perfect for makers, students, and engineers ready to level up their embedded skills using professional tools.

Read more 4 min read

Getting Started with STM32 Nucleo-L433 and PlatformIO: C++ Development with VS Code

If you're exploring embedded C++ development on the STM32 Nucleo-L433RC-P board and want a modern, lightweight alternative to STM32CubeIDE, PlatformIO inside Visual Studio Code offers a fast and flexible workflow. This guide shows how to set up your environment, build your first firmware, and write clean, object-oriented code in C++ using the STM32Cube HAL framework.

Read more 4 min read

Task Synchronization with FreeRTOS Event Groups on ESP32 (ESP-WROVER-KIT Example)

FreeRTOS event groups provide an efficient way to synchronize tasks based on multiple conditions using binary flags. In this post, we explore how to use event groups on the ESP-WROVER-KIT with ESP-IDF. Through a practical example involving sensor and network initialization, we demonstrate how event bits can signal system readiness to a processing task. This approach enables clean, scalable task coordination in real-time embedded applications using the ESP32.

Read more 4 min read

Using FreeRTOS Mutex with ESP-WROVER-KIT for Resource Protection

FreeRTOS mutexes are essential for managing shared resources in embedded systems, ensuring that only one task accesses a resource at a time. In this post, we explore how mutexes work in FreeRTOS and demonstrate their use on the ESP-WROVER-KIT by protecting UART output shared between two tasks. This practical example shows how to prevent race conditions and output conflicts, while highlighting the importance of mutual exclusion in real-time applications on the ESP32 platform.

Read more 4 min read

Understanding FreeRTOS Semaphores with ESP-WROVER-KIT

FreeRTOS semaphores are powerful synchronization tools that help manage task coordination and shared resource access in real-time embedded systems. In this post, we explore how binary semaphores work in FreeRTOS and demonstrate their use with the ESP-WROVER-KIT by creating a simple application that synchronizes sensor data collection and UART transmission. Whether you're dealing with task-to-task signaling or interrupt-driven events, semaphores are essential for building stable and responsive applications on the ESP32 platform.

Read more 6 min read

Understanding FreeRTOS Queues with ESP-WROVER-KIT

FreeRTOS is a lightweight real-time operating system widely used in embedded systems. One of its core features is Queues, which enable inter-task communication and synchronization. In this post, we’ll explore FreeRTOS Queues from the ground up and demonstrate how to use them effectively on the ESP-WROVER-KIT, a powerful ESP32-based development board.

Read more 7 min read

Getting Started with FreeRTOS Tasks Using the ESP-WROVER-KIT

In this blog post, we explore the fundamental concept of tasks in FreeRTOS and how to implement them using the ESP-WROVER-KIT. With practical examples and in-depth explanations, you'll learn how to structure multitasking embedded applications, manage task priorities, and ensure real-time performance with FreeRTOS.

Read more 5 min read

Efficient Inter-Thread Communication with Message Queues in Zephyr RTOS on the nRF7002

In embedded systems development, efficient inter-thread communication is crucial for ensuring responsiveness and modularity. This article explores how to use message queues (k_msgq) in Zephyr RTOS to implement a clean producer-consumer architecture on the Nordic nRF7002 Development Kit. By simulating a sensor data pipeline that passes fixed-size messages between threads, we demonstrate how message queues can decouple tasks, manage timing mismatches, and improve system reliability. Whether you're working on IoT telemetry, data buffering, or real-time sensor fusion, mastering message queues in Zephyr is a foundational skill for building scalable embedded applications.

Read more 7 min read

Manage Your Home Server Docker Services with Portainer: A Complete Guide

Managing multiple Docker services on a home server can quickly become overwhelming if you rely only on the command line. In this guide, we’ll walk through how to use Portainer—an intuitive web-based management interface—to take control of your Docker containers, images, volumes, and networks. Whether you’re hosting Pi-hole, Home Assistant, or your own embedded dashboards, Portainer makes management easier and more efficient.

Read more 5 min read

Self-Hosted Git Server with Gitea: Manage Your Embedded Projects Locally

Tired of pushing your firmware code to public Git repositories or relying on cloud services like GitHub and GitLab? Hosting your own Git server with Gitea is a lightweight, privacy-friendly solution that fits perfectly in your home server environment. In this guide, we’ll walk through how to self-host Gitea using Docker on an Ubuntu-based home server—ideal for embedded developers working on ESP32, STM32, or nRF52 firmware projects.

Read more 3 min read

Turning a 2014 MacBook Air into a Home Server Lab

Got an old 2014 MacBook Air gathering dust? Transform it into a versatile home server lab with Ubuntu Desktop! This guide walks you through the process, from setup to running services like Plex or Docker, perfect for tech enthusiasts looking to experiment on a budget.

Read more 7 min read