ESP-IDF Programming Guide Choose target... Choose version... Get Started API Reference Hardware Reference API Guides Security Guides Migration Guides Libraries and Frameworks Contributions Guide ESP-IDF Versions Resources Copyrights and Licenses About Switch Between Languages ESP-IDF Programming Guide ESP-IDF Programming Guide Edit on GitHub ESP-IDF Programming Guide [中文] This is the documentation for Espressif IoT Development Framework (esp-idf). ESP-IDF is the official development framework for the ESP32, ESP32-S, ESP32-C, ESP32-H and ESP32-P Series SoCs. This document describes using ESP-IDF with the ESP32-S3 SoC. To switch to a different SoC target, choose target from the dropdown in the upper left. Get Started API Reference API Guides Was this page helpful? Thank you! We received your feedback. If you have any comments, fill in Espressif Documentation Feedback Form. We value your feedback. Let us know how we can improve this page by filling in Espressif Documentation Feedback Form. Next © Copyright 2016 - 2025, Espressif Systems (Shanghai) Co., Ltd. Built with Sphinx using a theme based on Read the Docs Sphinx Theme. Download HTML ESP-IDF Programming Guide Choose target... Choose version... Get Started Introduction What You Need Hardware ESP32-S3-DevKitC-1 ESP32-S3-DevKitM-1 Software Installation IDE Manual Installation Windows Installer Linux and macOS Build Your First Project Uninstall ESP-IDF API Reference Hardware Reference API Guides Security Guides Migration Guides Libraries and Frameworks Contributions Guide ESP-IDF Versions Resources Copyrights and Licenses About Switch Between Languages ESP-IDF Programming Guide Get Started Edit on GitHub Get Started [中文] This document is intended to help you set up the software development environment for the hardware based on the ESP32-S3 chip by Espressif. After that, a simple example will show you how to use ESP-IDF (Espressif IoT Development Framework) for menu configuration, then for building and flashing firmware onto an ESP32-S3 board. Note This is documentation for stable version v5.5.2 of ESP-IDF. Other ESP-IDF Versions are also available. Introduction ESP32-S3 is a system on a chip that integrates the following features: Wi-Fi (2.4 GHz band) Bluetooth Low Energy Dual high performance Xtensa® 32-bit LX7 CPU cores Ultra Low Power co-processor running either RISC-V or FSM core Multiple peripherals Built-in security hardware USB OTG interface USB Serial/JTAG Controller Powered by 40 nm technology, ESP32-S3 offers excellent power efficiency, RF performance, security, and reliability, making it suitable for a wide range of application scenarios and power consumption requirements. Espressif provides basic hardware and software resources to help application developers realize their ideas using the ESP32-S3 series hardware. The software development framework by Espressif is intended for development of Internet-of-Things (IoT) applications with Wi-Fi, Bluetooth, power management and several other system features. What You Need Hardware An ESP32-S3 board. USB cable - USB A / micro USB B. Computer running Windows, Linux, or macOS. Note Currently, some of the development boards are using USB Type C connectors. Be sure you have the correct cable to connect your board! If you have one of ESP32-S3 official development boards listed below, you can click on the link to learn more about the hardware. ESP32-S3-DevKitC-1 ESP32-S3-DevKitM-1 Software To start using ESP-IDF on ESP32-S3, install the following software: Toolchain to compile code for ESP32-S3 Build tools - CMake and Ninja to build a full Application for ESP32-S3 ESP-IDF that essentially contains API (software libraries and source code) for ESP32-S3 and scripts to operate the Toolchain Installation To install all the required software, we offer some different ways to facilitate this task. Choose from one of the available options. IDE Note We highly recommend installing the ESP-IDF through your favorite IDE. Eclipse Plugin VSCode Extension Manual Installation For the manual procedure, please select according to your operating system. Windows Installer Linux and macOS Build Your First Project If you already have the ESP-IDF installed and are not using an IDE, you can build your first project from the command line following the Start a Project on Windows or Start a Project on Linux and macOS. Uninstall ESP-IDF If you want to remove ESP-IDF, please follow Uninstall ESP-IDF. Was this page helpful? Thank you! We received your feedback. If you have any comments, fill in Espressif Documentation Feedback Form. We value your feedback. Let us know how we can improve this page by filling in Espressif Documentation Feedback Form. Previous Next © Copyright 2016 - 2025, Espressif Systems (Shanghai) Co., Ltd. Built with Sphinx using a theme based on Read the Docs Sphinx Theme. Download HTML ESP-IDF Programming Guide Choose target... Choose version... Get Started API Reference Hardware Reference API Guides Security Guides Migration Guides Libraries and Frameworks Contributions Guide ESP-IDF Versions Releases Which Version Should I Start With? Versioning Scheme Support Periods Checking the Current Version Git Workflow Updating ESP-IDF Updating to Stable Release Updating to a Pre-Release Version Updating to Master Branch Updating to a Release Branch Resources Copyrights and Licenses About Switch Between Languages ESP-IDF Programming Guide ESP-IDF Versions Edit on GitHub ESP-IDF Versions [中文] The ESP-IDF GitHub repository is updated regularly, especially the master branch where new development takes place. For production use, there are also stable releases available. Releases The documentation for the current stable release version can always be found at this URL: https://docs.espressif.com/projects/esp-idf/en/stable/ Documentation for the latest version (master branch) can always be found at this URL: https://docs.espressif.com/projects/esp-idf/en/latest/ The full history of releases can be found on the GitHub repository Releases page. There you can find release notes, links to each version of the documentation, and instructions for obtaining each version. Another place to find documentation for all current releases is the documentation page, where you can go to the upper-left corner and click the version dropdown (between the target dropdown and the search bar). You can also use this dropdown to switch between versions of the documentation. Documentation for older versions are also still available: Which Version Should I Start With? For production purposes, use the current stable version. Stable versions have been manually tested, and are updated with "bugfix releases" which fix bugs without changing other functionality (see Versioning Scheme for more details). Every stable release version can be found on the Releases page. Also refer to Compatibility Between ESP-IDF Releases and Revisions of Espressif SoCs to make sure the ESP-IDF version you selected is compatible with the chip revision you are going to produce with. For prototyping, experimentation or for developing new ESP-IDF features, use the latest version (master branch in Git). The latest version in the master branch has all the latest features and has passed automated testing, but has not been completely manually tested ("bleeding edge"). If a required feature is not yet available in a stable release, but you do not want to use the master branch, it is possible to check out a pre-release version or a release branch. It is recommended to start from a stable version and then follow the instructions for Updating to a Pre-Release Version or Updating to a Release Branch. If you plan to use another project which is based on ESP-IDF, please check the documentation of that project to determine the version(s) of ESP-IDF it is compatible with. See Updating ESP-IDF if you already have a local copy of ESP-IDF and wish to update it. Versioning Scheme ESP-IDF uses Semantic Versioning. This means that: Major Releases, like v3.0, add new functionality and may change functionality. This includes removing deprecated functionality. If updating to a new major release (for example, from v2.1 to v3.0), some of your project's code may need updating and functionality may need to be re-tested. The release notes on the Releases page include lists of Breaking Changes to refer to. Minor Releases like v3.1 add new functionality and fix bugs but will not change or remove documented functionality, or make incompatible changes to public APIs. If updating to a new minor release (for example, from v3.0 to v3.1), your project's code does not require updating, but you should re-test your project. Pay particular attention to the items mentioned in the release notes on the Releases page. Bugfix Releases like v3.0.1 only fix bugs and do not add new functionality. If updating to a new bugfix release (for example, from v3.0 to v3.0.1), you do not need to change any code in your project, and you only need to re-test the functionality directly related to bugs listed in the release notes on the Releases page. Support Periods Each ESP-IDF major and minor release version has an associated support period. After this period, the release is End of Life and no longer supported. The ESP-IDF Support Period Policy explains this in detail, and describes how the support periods for each release are determined. Each release on the Releases page includes information about the support period for that particular release. As a general guideline: If starting a new project, use the latest stable release. If you have a GitHub account, click the "Watch" button in the top-right of the Releases page and choose "Releases only". GitHub will notify you whenever a new release is available. Whenever a bug fix release is available for the version you are using, plan to update to it. If possible, periodically update the project to a new major or minor ESP-IDF version (for example, once a year.) The update process should be stra