How-To-Tutorials
Practical, step-by-step guides for designing, programming, and integrating hardware and software in embedded projects.
176 articles

DC motors draw whatever current they need. PWM-based current limiting gives you a feedback loop: measure actual motor current via a shunt resistor and throttle the duty cycle to stay within safe bounds.
Sep 23, 2025

Build a BLE GATT server on ESP32 that reads DHT22 temperature and humidity data and pushes it to your phone via notifications. Includes NaN handling, reconnection logic, and practical wiring tips.
Sep 23, 2025

The nRF52840 doesn't have Wi-Fi built in, but pair it with an nRF7002 companion and Zephyr RTOS handles the rest. Here's how to build an MQTT logger that publishes JSON sensor data over Wi-Fi using the Zephyr v3.7+ networking stack.
Sep 23, 2025

Introduction In this tutorial, we will learn how to stream MJPEG video at a resolution of 640×480 from an ESP32-CAM to a web browser using an HTTP server...
Sep 23, 2025

Turn your ESP32 into a simple REST API server that serves live DHT11 temperature and humidity data as JSON over Wi-Fi. No cloud, no app—just hit a URL.
Sep 23, 2025

Introduction In this tutorial, we will learn how to stream video from the ESP32-CAM module to a web browser using MJPEG over HTTP. We’ll set the video...
Sep 23, 2025

Customize the U-Boot boot process on Raspberry Pi 4 by modifying environment variables like bootdelay and bootargs. Covers accessing the U-Boot console, editing variables, saving changes, and recovering from mistakes.
Sep 23, 2025

Use DMA to automatically update TIM2 PWM duty cycles for smooth RGB LED fading on STM32 -- zero CPU overhead once the transfer is running. Covers timer math, DMA configuration, and practical wiring.
Sep 23, 2025

The ESP32's I2S peripheral handles digital audio via DMA so your code just fills buffers. Here's how to wire up an INMP441 mic and PCM5102A DAC for simultaneous capture and playback at 16-bit 44.1kHz.
Sep 23, 2025

Turn your ESP32 into an async web server that serves dynamic HTML pages with live data. Uses ESPAsyncWebServer with template processing for real-time sensor dashboards.
Sep 23, 2025

Introduction Modifying U-Boot environment variables is a crucial step for optimizing the boot process and console output on a Raspberry Pi 4. This tutorial...
Sep 23, 2025

Build a custom USB DFU bootloader on STM32 for field firmware updates. Covers flash memory layout, the jump-to-application sequence, host-side tools, and practical tips for production-ready bootloader design.
Sep 23, 2025

The ESP32 has built-in I2S peripherals for real audio work. This guide covers wiring a PCM5102 DAC and INMP441 mic, configuring the ESP-IDF I2S driver on Arduino ESP32 core v3.x, and writing code for PCM playback and recording.
Sep 23, 2025

The ESP32’s eFuse blocks provide hardware-level key storage that’s far more secure than keeping secrets in flash or source code. Here’s how to properly burn, protect, and use eFuse-stored keys with ESP-IDF.
Sep 23, 2025

Set up I2S audio playback and recording on ESP32 using the MAX98357A DAC/amplifier and INMP441 MEMS microphone. Uses the current Arduino ESP32 v3.x I2S driver API with practical wiring and code examples.
Sep 22, 2025

Introduction In this tutorial, we will learn how to connect an ESP32 to Wi-Fi and set up a simple web server using the AsyncWebServer library. This will allow...
Sep 22, 2025

SWD debugging gives you a live window into your STM32F4's internals -- inspect variables, set breakpoints, and step through code in real time using ST-Link and Keil uVision.
Sep 22, 2025
Turn your ESP32 into a BLE GATT server that broadcasts DHT22 temperature and humidity readings every 5 seconds. Covers wiring, BLE setup with proper notify descriptors, and testing with a phone scanner app.
Sep 22, 2025
Build a PID controller on STM32 to regulate DC motor speed with PWM and encoder feedback. Covers PID math, anti-windup, timer interrupts, and tuning strategies.
Sep 22, 2025

The NXP i.MX6ULL's High Assurance Boot (HAB) feature cryptographically verifies firmware before execution, blocking unauthorized code. This guide covers the full secure boot implementation: key generation, image signing with CST, HAB verification, and OTP fuse programming.
Sep 22, 2025

Build a BLE GATT server on the ESP32 that reads DHT11 temperature and humidity data and pushes it to connected clients via Bluetooth Low Energy notifications.
Sep 22, 2025

Build a custom UART bootloader for STM32 Nucleo boards that receives firmware over serial, writes it to flash, and jumps to the application. Covers flash layout, sector erasing, vector table offsets, and practical debugging tips.
Sep 22, 2025

Introduction Integrating an I2C temperature sensor with the Zephyr RTOS on the nRF52840 Development Kit is a straightforward process that can enhance the...
Sep 22, 2025

Turn your ESP32 into a BLE sensor beacon that broadcasts DHT22 temperature and humidity data. Any phone with a BLE scanner can pick up the readings—no Wi-Fi or cloud needed.
Sep 22, 2025