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.

ESP32 UART with ESP-IDF

The ESP32’s Universal Asynchronous Receiver Transmitter (UART) is a powerful feature for serial communication in IoT and embedded projects. In this blog post, we explore how to effectively use UART with the ESP32 using the ESP-IDF framework. We’ll cover the ESP32’s UART hardware, delve into the ESP-IDF APIs for controlling UART modules, and provide step-by-step guidance on configuring and implementing UART communication. Whether you’re interfacing with sensors, debugging, or building complex systems, this guide will equip you with the knowledge to harness the ESP32’s UART capabilities for seamless and reliable data exchange.

Read more 6 min read

Using STM32 ADC with STM32CubeIDE and HAL driver

The Analog-to-Digital Converter (ADC) in STM32 microcontrollers is a key feature for reading analog signals in embedded applications. In this blog post, we dive into the essentials of using the STM32 ADC with STM32CubeIDE and the Hardware Abstraction Layer (HAL) driver. We’ll explore the ADC’s features, break down the HAL driver APIs for controlling the ADC, and provide a step-by-step guide to configuring and implementing ADC functionality. Whether you’re measuring sensor data or building precision systems, this tutorial will empower you to leverage the STM32 ADC effectively in your projects.

Read more 6 min read

Controlling ESP32 GPIOs with micropython

The ESP32’s General Purpose Input/Output (GPIO) pins are essential for interfacing with sensors, actuators, and other peripherals in embedded projects. In this blog post, we explore how to control ESP32 GPIOs using MicroPython. You’ll learn how to configure pins as inputs or outputs, set or clear output pins, and read digital input states. With clear examples and step-by-step instructions, this guide makes it easy to harness the power of MicroPython for GPIO control, enabling you to build interactive and responsive projects with the ESP32, whether you’re a beginner or an experienced developer.

Read more 4 min read

Getting started with micropython on ESP32

MicroPython brings the simplicity and flexibility of Python to the powerful ESP32 microcontroller, making it an excellent choice for rapid prototyping and IoT projects. In this blog post, we guide you through the essentials of getting started with MicroPython on the ESP32. From setting up the necessary tools and flashing the MicroPython firmware to writing and running your first MicroPython program, this tutorial provides a clear, step-by-step approach. Whether you’re a beginner or an experienced developer, this guide will help you unlock the potential of MicroPython on the ESP32 for your next embedded project.

Read more 5 min read

ESP32 SPI Master (ESP-IDF)

The Serial Peripheral Interface (SPI) on the ESP32 is a versatile tool for high-speed communication with peripherals like displays and sensors. In this blog post, we dive into using the ESP32’s SPI peripheral as a master with the ESP-IDF framework. We’ll cover the SPI instances, explore the essential ESP-IDF APIs for SPI communication, and guide you through creating a hands-on project to control a MAX7219 module with an 8x8 LED matrix. This step-by-step tutorial equips you with the knowledge to leverage SPI for your ESP32 projects, whether you’re a beginner or an advanced developer.

Read more 6 min read

STM32 SPI Master using STM32CubeIDE and HAL

The Serial Peripheral Interface (SPI) is a powerful communication protocol for connecting STM32 microcontrollers with peripherals like the MAX7219, which drives an 8x8 LED dot matrix. In this blog post, we guide you through creating a project to control a MAX7219-based 8x8 LED matrix using STM32CubeIDE and the HAL library. We’ll cover configuring the STM32 SPI peripheral as a master, exploring HAL APIs for SPI communication, and setting up the MAX7219 to display patterns. With step-by-step instructions, this tutorial helps beginners and experienced developers alike master STM32 SPI for dynamic LED matrix projects.

Read more 9 min read

ESP32 PWM using LEDC peripheral (ESP-IDF)

The LED Control (LEDC) peripheral on the ESP32 is a powerful tool for generating Pulse Width Modulation (PWM) signals, ideal for applications like LED dimming and motor control. In this blog post, we explore the capabilities of the LEDC peripheral and the ESP-IDF APIs used to configure it. You’ll learn how to create a hands-on project that uses PWM to control the color of an RGB LED, with step-by-step instructions. Whether you’re a beginner or an experienced developer, this guide will help you master PWM on the ESP32 for dynamic and colorful projects.

Read more 7 min read

Control LEDs using ESP32 Web Server (ESP-IDF)

The ESP32 is a powerful microcontroller that can be easily integrated into IoT projects. In this tutorial, you’ll learn how to create an ESP32 application using the ESP-IDF framework to control LEDs via an HTTP web server. We’ll guide you through the process of setting up the ESP32 web server, creating endpoints to control the LEDs, and connecting the ESP32 to your Wi-Fi network. With clear examples and practical code, you’ll be able to build a responsive web interface to toggle LEDs, providing a simple and effective way to control hardware remotely over the network.

Read more 6 min read

ESP32 Web Server (ESP-IDF)

The ESP32 is an ideal platform for creating connected IoT applications, and setting up a web server on this powerful microcontroller is straightforward with the ESP-IDF framework. In this guide, you’ll learn how to implement a web server on the ESP32, from configuring the network interface to handling HTTP requests. We’ll walk you through the steps of creating a web server, registering URI handlers, and sending responses back to clients. Whether you’re building a remote control interface, a data display, or any other web-based service, this tutorial will provide you with the foundation to get started with web server development on the ESP32.

Read more 4 min read

ESP32 WiFi Access Point (ESP-IDF)

The ESP32 is a versatile microcontroller that can be configured as either a station (client) or an access point (AP) to facilitate communication with other devices. In this guide, we’ll walk you through the process of configuring your ESP32 as a WiFi access point using the ESP-IDF framework. You’ll learn how to set up the access point mode, configure network parameters such as SSID and password, and manage client connections. With this tutorial, you’ll be able to turn your ESP32 into a central hub for IoT devices, enabling seamless wireless communication in your projects.

Read more 5 min read

ESP32 Partition Table

The ESP32’s partition table is a critical component that defines how memory is allocated and organized in your device. In this article, we’ll explore what a partition table is, why it’s essential for managing flash storage, and how it influences your application’s behavior. You’ll learn about the different types of partitions (such as app, data, and OTA), how to create a custom partition table, and how to modify the default settings to fit your project’s needs. By the end of this guide, you’ll understand how to efficiently allocate memory in your ESP32 projects for optimal performance and flexibility.

Read more 3 min read

Getting started with ESP32-DevKitC development board

The ESP32-DevKitC is an excellent starting point for exploring the capabilities of the ESP32 microcontroller. In this guide, we’ll introduce you to the key features of the ESP32-DevKitC development board, including its components, pinouts, and how to get your first program running. You’ll learn how to set up your development environment, connect the board to your computer, and create a simple “Hello World” program. With step-by-step instructions, this guide will help you hit the ground running and start experimenting with the powerful features of the ESP32-DevKitC.

Read more 5 min read

Setup ESP32 as WiFi Station (ESP-IDF)

The ESP32 is a powerful WiFi-enabled microcontroller, and one of its most common uses is connecting to an existing WiFi network as a station (client). In this article, we'll guide you through the steps to configure your ESP32 as a WiFi station using the ESP-IDF framework. You'll learn how to write a program that connects the ESP32 to a WiFi access point (AP), configure network parameters like SSID and password, and handle connection events. With clear instructions and practical code examples, this tutorial will help you get your ESP32 online and ready for IoT applications.

Read more 6 min read

nRF52 Pulse Width Modulation

If you're working with Nordic's nRF52 series and need precise control over LEDs, motors, or other peripherals, Pulse Width Modulation (PWM) is a key technique you'll want to master. In this post, we explore the powerful PWM peripheral built into the nRF52 microcontroller family. We'll walk through how to leverage the nrf_drv_pwm driver from the nRF5 SDK to generate high-resolution PWM signals, customize duty cycles, and build smooth, hardware-controlled waveforms — all with minimal CPU overhead. Whether you're dimming an LED or driving a servo motor, this guide will give you the tools to get started fast and clean.

Read more 8 min read

Controlling RGB LED with ESP32 using Bluetooth Low Energy (ESP-IDF)

Bluetooth Low Energy (BLE) is a powerful feature of the ESP32, enabling you to create wireless communication between your device and others. In this guide, we’ll help you get started with BLE development using the ESP-IDF framework, focusing on controlling an RGB LED. You’ll learn how to develop a GATT (Generic Attribute Profile) Server application on the ESP32 with a custom RGB service that allows you to change the LED's color remotely via BLE. With detailed steps and code examples, you’ll be able to control your RGB LED using a smartphone or another Bluetooth-enabled device, opening up endless possibilities for wireless control in your projects.

Read more 8 min read