Learn how to use the ESP-IDF button component to handle GPIO buttons with event detection, debouncing, and callbacks. A step-by-step guide with practical code examples.
In this article, we explore how to configure GPIO pins as inputs in ESP-IDF and discuss the importance of pull-up/pull-down resistors. We will try two approaches for reading GPIO values: polling and event-driven interrupts, showing how to implement each method effectively.
This article introduces the ESP DNS component and explains why securing DNS resolution is essential for ESP32-based IoT devices. It shows how DNS over TLS (DoT) and DNS over HTTPS (DoH) can be enabled transparently in ESP-IDF with minimal code changes, using standard DNS APIs. Practical examples and guidance help developers choose the right protocol while balancing security, performance, and resource constraints.
This article walks through Espressif power modes and NuttX power states, then explains how they map to each other. Then it introduces NuttX’s power management system and the concept of governors. The how-to part shows how to control sleep modes from the shell and a custom application. Finally, you will see real power‑consumption measurements across multiple ESP chips to illustrate the practical impact using power states.
This article explains how to configure and control GPIO pins on Espressif SoCs, covering push-pull and open-drain output modes, drive capability, and library usage. It then provides a hands-on example of blinking an LED using gpio_set_direction and gpio_set_level on a ESP32-C61-DevKitC.
This article announces the ESP-IDF port of Amazon KVS WebRTC SDK, featuring memory optimizations, split mode power savings, and a simplified API. We also showcase ESP RainMaker Camera as a production-ready use-case built on this SDK.
This article describes the Matter camera features introduced in Matter 1.5 and discusses camera support for the ESP32 series of SoCs using Espressif Matter SDK
This article demonstrates how to implement an independently controllable robotic arm project based on the ESP32-P4 high-performance MCU. It covers complete kinematics, visual detection, and remote control, showcasing the great potential of ESP32-P4 in industrial applications.
This guide provides a practical getting‑started walkthrough for using MCUboot on ESP32. It covers step-by-step environment setup, bootloader building, application configuration, and flashing. It also gives an overview of MCUboot’s execution flow.
This article introduces fuzzing — a technique for finding vulnerabilities — and demonstrates practical workflows and lessons learned for ESP-IDF components and embedded libraries in general.
This article introduces the Thread Credentials Sharing feature, explains why it is important, how it works, and provides a demo using M5Stack Thread Border Router and SmartThings app.
This article explains what are the default values in the ESP-IDF configuration and how they are managed in the configuration system in the upcoming ESP-IDF v6. The purpose and behavior of default values are described. This article also explains what is a conflict in default values and how to resolve it with the “idf.py refresh-config” command.
Learn how to create, structure, and publish Arduino libraries for ESP32. This step-by-step guide covers everything from understanding a library structure to submitting your library to the Arduino Library Manager.
In this blog we will introduce how combining the Espressif RED-DA compliance framework along with the ESP ZeroCode platform can help accelerate your product development
Tired of juggling complex command-line arguments with endless idf.py flags? ESP-IDF v6.0 introduces a new feature, letting you switch between multiple build configuration. Learn how to structure your project, isolate sdkconfig files, and migrate from ad-hoc commands to clean, declarative builds.
Espressif announces the ESP RainMaker Phone App Development Kit, a comprehensive cross-platform toolkit combining a TypeScript SDK, Central Data Framework (CDF), and React Native reference app. This production-ready kit enables developers to rapidly build branded mobile applications with customisable UI and workflows, whilst leveraging Espressif’s robust RainMaker cloud infrastructure for device management and secure communication.
ESP32-C2 has 256 KB of physical RAM, but with default configurations, only 24 KB remains free in typical Wi-Fi + BLE scenarios. This article explores comprehensive memory optimization strategies that can free up over 100 KB of RAM, making complex applications viable on this cost-effective chip.
This article follows up on the article ‘Porting a library to an ESP-IDF component’ and shows some advanced tips and tricks when porting larger libraries into ESP-IDF components.
This guide demonstrates how to integrate external libraries into NuttX applications using static libraries and cross-compilation. Learn how to build a library on x86, integrate it into the NuttX simulation environment, and cross-compile for RISC-V targets like the ESP32-C6, all without moving your entire codebase into the NuttX directory structure.
Learn how Wokwi simulation and AI-assisted debugging solved a subtle RGB565 color mapping bug when porting Raylib to ESP32, turning hours of hardware debugging into an efficient iterative workflow with automated visual testing.
This article shows how to port an external library into an ESP-IDF project by converting it into a reusable component. Using tinyexpr as an example, it covers obtaining the source code, creating a new project, building a component, configuring the build system, and testing on hardware.
Learn how to extend idf.py with custom commands for your development workflow. This guide covers both component-based extensions for project-specific tools and Python package extensions for reusable commands, with practical examples and best practices for seamless integration.
This article explains how ESP-IDF brings object-oriented programming principles into C by using structs, opaque pointers, and handles to enforce encapsulation and modularity. It shows how components like HTTP servers and I²C buses are managed through handles that represent distinct objects for configuration and operation, and compares this approach to Python and C++.
Learn how to set up the ESP32 Arduino Core development environment, including Arduino IDE installation and ESP32 board package setup using both the Board Manager and manual Git installation methods.
This article shows how ESP-IDF’s logging system uses tags and verbosity levels to produce structured, configurable output, helping you keep code clean and debug more effectively.
This guide explores how to utilize flash memory for persistent data storage in NuttX-based embedded systems, covering SPI Flash fundamentals, file system options (SmartFS, SPIFFS, LittleFS), and practical implementation of a boot time logging application with Wi-Fi and NTP synchronization.
The esp-video component provides a solution to build camera applications on the ESP32 chips. This article will introduce the esp-video component, how to use it, and will give an overview of the framework around it.