Downloadable Tools

ESP-IDF build process relies on a number of tools: cross-compiler toolchains, CMake build system, and others.

Installing the tools using an OS-specific package manager (like apt, yum, brew, etc.) is the preferred method when the required version of the tool is available. This recommendation is reflected in the Getting Started guide. For example, on Linux and macOS it is recommended to install CMake using an OS package manager.

However, some of the tools are IDF-specific and are not available in OS package repositories. Furthermore, different versions of ESP-IDF require different versions of the tools to operate correctly. To solve these two problems, ESP-IDF provides a set of scripts for downloading and installing the correct versions of tools, and exposing them in the environment.

The rest of the document refers to these downloadable tools simply as “tools”. Other kinds of tools used in ESP-IDF are:

  • Python scripts bundled with ESP-IDF (such as idf.py)

  • Python packages installed from PyPI.

The following sections explain the installation method, and provide the list of tools installed on each platform.

Note

This document is provided for advanced users who need to customize their installation, users who wish to understand the installation process, and ESP-IDF developers.

If you are looking for instructions on how to install the tools, see the Getting Started Guide.

Tools metadata file

The list of tools and tool versions required for each platform is located in tools/tools.json. The schema of this file is defined by tools/tools_schema.json.

This file is used by tools/idf_tools.py script when installing the tools or setting up the environment variables.

Tools installation directory

IDF_TOOLS_PATH environment variable specifies the location where the tools are to be downloaded and installed. If not set, IDF_TOOLS_PATH defaults to HOME/.espressif on Linux and macOS, and %USER_PROFILE%\.espressif on Windows.

Inside IDF_TOOLS_PATH, the scripts performing tools installation create the following directories and files:

  • dist — where the archives of the tools are downloaded.

  • tools — where the tools are extracted. The tools are extracted into subdirectories: tools/TOOL_NAME/VERSION/. This arrangement allows different versions of tools to be installed side by side.

  • idf-env.json — user install options (targets, features) are stored in this file. Targets are selected chip targets for which tools are installed and kept up-to-date. Features determine the Python package set which should be installed. These options will be discussed later.

  • python_env — not tools related; virtual Python environments are installed in the sub-directories.

  • espidf.constraints.*.txt — one constraint file for each ESP-IDF release containing Python package version requirements.

GitHub Assets Mirror

Most of the tools downloaded by the tools installer are GitHub Release Assets, which are files attached to a software release on GitHub.

If GitHub downloads are inaccessible or slow to access, it’s possible to configure a GitHub assets mirror.

To use Espressif’s download server, set the environment variable IDF_GITHUB_ASSETS to dl.espressif.com/github_assets. When the install process is downloading a tool from github.com, the URL will be rewritten to use this server instead.

Any mirror server can be used provided the URL matches the github.com download URL format: the install process will replace https://github.com with https://${IDF_GITHUB_ASSETS} for any GitHub asset URL that it downloads.

Note

The Espressif download server doesn’t currently mirror everything from GitHub, it only mirrors files attached as Assets to some releases as well as source archives for some releases.

idf_tools.py script

tools/idf_tools.py script bundled with ESP-IDF performs several functions:

  • install: Download the tool into ${IDF_TOOLS_PATH}/dist directory, extract it into ${IDF_TOOLS_PATH}/tools/TOOL_NAME/VERSION.

    install command accepts the list of tools to install, in TOOL_NAME or TOOL_NAME@VERSION format. If all is given, all the tools (required and optional ones) are installed. If no argument or required is given, only the required tools are installed.

  • download: Similar to install but doesn’t extract the tools. An optional --platform argument may be used to download the tools for the specific platform.

  • export: Lists the environment variables which need to be set to use the installed tools. For most of the tools, setting PATH environment variable is sufficient, but some tools require extra environment variables.

    The environment variables can be listed in either of shell or key-value formats, set by --format parameter:

    • export optional parameters:

      • --unset Creates statement that unset some global variables, so the environment gets to the state it was before calling export.{sh/fish}.

      • --add_paths_extras Adds extra ESP-IDF-related paths of $PATH to ${IDF_TOOLS_PATH}/esp-idf.json, which is used to remove global variables when the active ESP-IDF environment is deactivated. Example: While processing export.{sh/fish} script, new paths are added to global variable $PATH. This option is used to save these new paths to the ${IDF_TOOLS_PATH}/esp-idf.json.

    • shell produces output suitable for evaluation in the shell. For example,

      export PATH="/home/user/.espressif/tools/tool/v1.0.0/bin:$PATH"
      

      on Linux and macOS, and

      set "PATH=C:\Users\user\.espressif\tools\v1.0.0\bin;%PATH%"
      

      on Windows.

      Note

      Exporting environment variables in Powershell format is not supported at the moment. key-value format may be used instead.

      The output of this command may be used to update the environment variables, if the shell supports this. For example:

      eval $($IDF_PATH/tools/idf_tools.py export)
      
    • key-value produces output in VARIABLE=VALUE format, suitable for parsing by other scripts:

      PATH=/home/user/.espressif/tools/tool/v1.0.0:$PATH
      

      Note that the script consuming this output has to perform expansion of $VAR or %VAR% patterns found in the output.

  • list: Lists the known versions of the tools, and indicates which ones are installed.

  • check: For each tool, checks whether the tool is available in the system path and in IDF_TOOLS_PATH.

  • install-python-env: Create a Python virtual environment in the ${IDF_TOOLS_PATH}/python_env directory and install there the required Python packages. An optional --features argument allows one to specify a comma-separated list of features to be added or removed. Feature that begins with - will be removed and features with + or without any sign will be added. Example syntax for removing feature XY is --features=-XY and for adding --features=+XY or --features=XY. If both removing and adding options are provided with the same feature, no operation is performed. For each feature a requirements file must exist. For example, feature XY is a valid feature if ${IDF_PATH}/tools/requirements/requirements.XY.txt is an existing file with a list of Python packages to be installed. There is one mandatory core feature ensuring core functionality of ESP-IDF (build, flash, monitor, debug in console). There can be an arbitrary number of optional features. The selected list of features is stored in idf-env.json. The requirement files contain a list of the desired Python packages to be installed and espidf.constraints.*.txt downloaded from https://dl.espressif.com and stored in ${IDF_TOOLS_PATH} the package version requirements for a given ESP-IDF version. Althought it is not recommended, the download and use of constraint files can be disabled with the --no-constraints argument or setting the IDF_PYTHON_CHECK_CONSTRAINTS environment variable to no.

  • check-python-dependencies: Checks if all required Python packages are installed. Packages from ${IDF_PATH}/tools/requirements/requirements.*.txt files selected by the feature list of idf-env.json are checked with the package versions specified in the espidf.constraints.*.txt file. The constraint file will be downloaded from https://dl.espressif.com if this step hasn’t been done already in the last day. The use of constraints files can be disabled similarly to the install-python-env command.

  • uninstall: Print and remove tools, that are currently not used by active ESP-IDF version.

    • --dry-run Print installed unused tools.

    • --remove-archives Additionally remove all older versions of previously downloaded installation packages.

Install scripts

Shell-specific user-facing scripts are provided in the root of ESP-IDF repository to facilitate tools installation. These are:

  • install.bat for Windows Command Prompt

  • install.ps1 for Powershell

  • install.sh for Bash

  • install.fish for Fish

Aside from downloading and installing the tools into IDF_TOOLS_PATH, these scripts prepare a Python virtual environment, and install the required packages into that environment.

These scripts accept optionally a comma separated list of chip targets and --enable-* arguments for enabling features. These arguments are passed to the idf_tools.py script which stores them in idf-env.json. Therefore, chip targets and features can be enabled incrementally.

Running the scripts without any optional arguments will install tools for all chip targets (by running idf_tools.py install --targets=all) and Python packages for core ESP-IDF functionality (by running idf_tools.py install-python-env --features=core).

Or for example, install.sh esp32 will install tools only for ESP32. See the Getting Started Guide for more examples.

install.sh --enable-XY will enable feature XY (by running idf_tools.py install-python-env --features=core,XY).

Export scripts

Since the installed tools are not permanently added into the user or system PATH environment variable, an extra step is required to use them in the command line. The following scripts modify the environment variables in the current shell to make the correct versions of the tools available:

  • export.bat for Windows Command Prompt

  • export.ps1 for Powershell

  • export.sh for Bash

  • export.fish for Fish

Note

To modify the shell environment in Bash, export.sh must be “sourced”: . ./export.sh (note the leading dot and space).

export.sh may be used with shells other than Bash (such as zsh). However in this case the IDF_PATH environment variable must be set before running the script. When used in Bash, the script will guess the IDF_PATH value from its own location.

In addition to calling idf_tools.py, these scripts list the directories which have been added to the PATH.

Other installation methods

Depending on the environment, more user-friendly wrappers for idf_tools.py are provided:

  • IDF Tools installer for Windows can download and install the tools. Internally the installer uses idf_tools.py.

  • Eclipse Plugin includes a menu item to set up the tools. Internally the plugin calls idf_tools.py.

  • VSCode Extension for ESP-IDF includes an onboarding flow. This flow helps setting up the tools. Although the extension does not rely on idf_tools.py, the same installation method is used.

Custom installation

Although the methods above are recommended for ESP-IDF users, they are not a must for building ESP-IDF applications. ESP-IDF build system expects that all the necessary tools are installed somewhere, and made available in the PATH.

List of IDF Tools

xtensa-esp-elf-gdb

GDB for Xtensa

License: GPL-3.0-or-later

More info: https://github.com/espressif/binutils-gdb

Platform

Required

Download

linux-amd64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/xtensa-esp-elf-gdb-11.2_20220808-x86_64-linux-gnu.tar.gz

SHA256: a68ba3e142b9c2b1202756ce29f869f808f07298a22c080d061aa606d298a903

linux-arm64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/xtensa-esp-elf-gdb-11.2_20220808-aarch64-linux-gnu.tar.gz

SHA256: 50e6f37db46bed058520fb60734959f70124760e9284005aceae6c65383c0c49

linux-armel

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/xtensa-esp-elf-gdb-11.2_20220808-arm-linux-gnueabi.tar.gz

SHA256: 3e587ca9fd1162555df3f2349be4ae86ad9279507500f6e412d5f111c692f84b

linux-armhf

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/xtensa-esp-elf-gdb-11.2_20220808-arm-linux-gnueabihf.tar.gz

SHA256: 3c8e3721784bcb644a4f4fe486fa4939b51cef2a22eda601c830695ab3fc8108

linux-i686

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/xtensa-esp-elf-gdb-11.2_20220808-i586-linux-gnu.tar.gz

SHA256: c0a92aa2edc1463ca2cd09c3c9828bc48f2a69402de5ce413abe0a1ce01db8ea

macos

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/xtensa-esp-elf-gdb-11.2_20220808-x86_64-apple-darwin14.tar.gz

SHA256: 8a19adf0ffb241727240078b917f50ef5c5340d32bba81e433fcf5c04547bf32

macos-arm64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/xtensa-esp-elf-gdb-11.2_20220808-x86_64-apple-darwin14.tar.gz

SHA256: 8a19adf0ffb241727240078b917f50ef5c5340d32bba81e433fcf5c04547bf32

win32

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/xtensa-esp-elf-gdb-11.2_20220808-i686-w64-mingw32.zip

SHA256: fc6f4ca1cbe00bb51bf49282b276356ec2cba566c314a647892d6213accd6c8a

win64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/xtensa-esp-elf-gdb-11.2_20220808-x86_64-w64-mingw32.zip

SHA256: f53af973b66490697bdaa46937fc8fe89c5ca23ecc889be8c918383dcfcf0e0f

riscv32-esp-elf-gdb

GDB for RISC-V

License: GPL-3.0-or-later

More info: https://github.com/espressif/binutils-gdb

Platform

Required

Download

linux-amd64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/riscv32-esp-elf-gdb-11.2_20220808-x86_64-linux-gnu.tar.gz

SHA256: ee1f2f5bfc8805e3887ba628a7475c22b56dfa69f90a1eaec1b1ab7fbff0b27b

linux-arm64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/riscv32-esp-elf-gdb-11.2_20220808-aarch64-linux-gnu.tar.gz

SHA256: 1de34770a1421b25eb79e57505d6e5ad3a73b31075064c7667ae66bf060f5746

linux-armel

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/riscv32-esp-elf-gdb-11.2_20220808-arm-linux-gnueabi.tar.gz

SHA256: edc4ca65cfb59e01cac604e1e8915a6a85c8d44a193f13b5664dd2bcfe144f43

linux-armhf

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/riscv32-esp-elf-gdb-11.2_20220808-arm-linux-gnueabihf.tar.gz

SHA256: 40874852b4a30fd90eb52996f077363bf7645c50f0f7defdf8b8e4adc5f45681

linux-i686

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/riscv32-esp-elf-gdb-11.2_20220808-i586-linux-gnu.tar.gz

SHA256: 0d20d58ea1acc9ae35f455a4139c8cd06174c1f0910a7751793bc4265b464550

macos

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/riscv32-esp-elf-gdb-11.2_20220808-x86_64-apple-darwin14.tar.gz

SHA256: a4a7df6e41e378614af4600ef82f958308e1b0826680763b504c88bd55ca1551

macos-arm64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/riscv32-esp-elf-gdb-11.2_20220808-x86_64-apple-darwin14.tar.gz

SHA256: a4a7df6e41e378614af4600ef82f958308e1b0826680763b504c88bd55ca1551

win32

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/riscv32-esp-elf-gdb-11.2_20220808-i686-w64-mingw32.zip

SHA256: 2cb141a778d501c3b885e4f11a25aa24a20b6bf06bc9cfcc12b672418b0e967c

win64

required

https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v11.2_20220808/riscv32-esp-elf-gdb-11.2_20220808-x86_64-w64-mingw32.zip

SHA256: 01063604e35e3271837eca383ed38e2f069b88c84e5b41a6ad5be7399f14eed7

xtensa-esp32-elf

Toolchain for Xtensa (ESP32) based on GCC

License: GPL-3.0-with-GCC-exception

More info: https://github.com/espressif/crosstool-NG

Platform

Required

Download

linux-amd64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32-elf-gcc11_2_0-esp-2022r1-linux-amd64.tar.xz

SHA256: 698d8407e18275d18feb7d1afdb68800b97904fbe39080422fb8609afa49df30

linux-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32-elf-gcc11_2_0-esp-2022r1-linux-arm64.tar.xz

SHA256: 48ed01abff1e89e6fe1c3ebe4e00df6a0a67e53ae24979970464a4a3b64aa622

linux-armel

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32-elf-gcc11_2_0-esp-2022r1-linux-armel.tar.xz

SHA256: 0e6131a9ab4e3da0a153ee75097012823ccf21f90c69368c3bf53c8a086736f8

linux-armhf

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32-elf-gcc11_2_0-esp-2022r1-linux-armhf.tar.xz

SHA256: 74173665e228d8b1c988de0d743607a2f661e2bd24619c246e25dba7a01f46bd

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32-elf-gcc11_2_0-esp-2022r1-linux-i686.tar.xz

SHA256: d06511bb18057d72b555d6c5b62b0686f19e9f8c7d7eae218b712eed0907dbb2

macos

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32-elf-gcc11_2_0-esp-2022r1-macos.tar.xz

SHA256: 1c9d873c56469e3abec1e4214b7200d36804a605d4f0991e539b1577415409bf

macos-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32-elf-gcc11_2_0-esp-2022r1-macos-arm64.tar.xz

SHA256: 297249b0dc5307fd496c4d85d960b69824996c0c450a8c92f8414a5fd32a7c3b

win32

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32-elf-gcc11_2_0-esp-2022r1-win32.zip

SHA256: 858ee049d6d8de730ed3e30285c4adc1a9cdfe077b591ed0b6f2bfa5e3564f53

win64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32-elf-gcc11_2_0-esp-2022r1-win64.zip

SHA256: f469aff6a71113e3a145466d814184339e02248b158357766970646f5d2a3da7

xtensa-esp32s2-elf

Toolchain for Xtensa (ESP32-S2) based on GCC

License: GPL-3.0-with-GCC-exception

More info: https://github.com/espressif/crosstool-NG

Platform

Required

Download

linux-amd64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s2-elf-gcc11_2_0-esp-2022r1-linux-amd64.tar.xz

SHA256: 56e5913b6662b8eec7d6b46780e668bc7e7cebef239e326a74f764c92a3cc841

linux-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s2-elf-gcc11_2_0-esp-2022r1-linux-arm64.tar.xz

SHA256: 2f0ccc9d40279d6407ed9547250fb0434f16060faa94460c52b74614a38a1e21

linux-armel

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s2-elf-gcc11_2_0-esp-2022r1-linux-armel.tar.xz

SHA256: f71974c4aaf3f637f6adaa28bbbdf3a911db3385e0ab1544844513ec65185cc5

linux-armhf

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s2-elf-gcc11_2_0-esp-2022r1-linux-armhf.tar.xz

SHA256: 73e3be22c993f1112fcb1f7631d82552a6b759f82f12cfb78e669c7303d92b25

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s2-elf-gcc11_2_0-esp-2022r1-linux-i686.tar.xz

SHA256: 504efe97ce24561537bd442494b1046fc8fb9cc43a1c06ef1afa4652b7517201

macos

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s2-elf-gcc11_2_0-esp-2022r1-macos.tar.xz

SHA256: f53da9423490001727c5b6c3b8e1602b887783f0ed68e5defbb3c7712ada9631

macos-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s2-elf-gcc11_2_0-esp-2022r1-macos-arm64.tar.xz

SHA256: 3592e0fbdb2ca438c7360d93fd62ef0e05ead2fc8144eff344bbe1971d333287

win32

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s2-elf-gcc11_2_0-esp-2022r1-win32.zip

SHA256: 96b873210438713a84ea6e39e591cdbbeef453cb431d8392ac3fa2e68a48bc97

win64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s2-elf-gcc11_2_0-esp-2022r1-win64.zip

SHA256: 9ab0387e08047916bbf7ff0d2eb974c710bcf2e042cb04037b4dd93c9186f676

xtensa-esp32s3-elf

Toolchain for Xtensa (ESP32-S3) based on GCC

License: GPL-3.0-with-GCC-exception

More info: https://github.com/espressif/crosstool-NG

Platform

Required

Download

linux-amd64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s3-elf-gcc11_2_0-esp-2022r1-linux-amd64.tar.xz

SHA256: 5058b2e724166c34ca09ec2d5377350252de8bce5039b06c00352f9a8151f76e

linux-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s3-elf-gcc11_2_0-esp-2022r1-linux-arm64.tar.xz

SHA256: d2c6fb98a5018139a9f5af6eb808e968f1381a5b34547a185f4dec142b0fa44e

linux-armel

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s3-elf-gcc11_2_0-esp-2022r1-linux-armel.tar.xz

SHA256: 9944e67d95a5de9875670c5cd5cb0bb282ebac235a38b5fd6d53069813fead9e

linux-armhf

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s3-elf-gcc11_2_0-esp-2022r1-linux-armhf.tar.xz

SHA256: c0a8836dd709605f8d68ea1fd6e8ae79b3fa76274bfffdd8e79eeadc8f1f3ce1

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s3-elf-gcc11_2_0-esp-2022r1-linux-i686.tar.xz

SHA256: 0feccf884e36b6e93c27c793729199b18df22a409557b16c90b2883a6748e041

macos

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s3-elf-gcc11_2_0-esp-2022r1-macos.tar.xz

SHA256: 2b46730adc6afd8115e0be9365050a87f9523617e5e58ee35cb85ff1ddf2756c

macos-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s3-elf-gcc11_2_0-esp-2022r1-macos-arm64.tar.xz

SHA256: bb449ac62b9917638b35234c98ce03ddf1cac75c2d80fbd67c46ecec08369838

win32

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s3-elf-gcc11_2_0-esp-2022r1-win32.zip

SHA256: 0c9ec6d296b66523e3990b195b6597dfc4030f2335bf904b614f990ad6dabbde

win64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/xtensa-esp32s3-elf-gcc11_2_0-esp-2022r1-win64.zip

SHA256: 7213a0bf22607e9c70febaabef37822c2ae5e071ac53d6467e6031b02bb0b2bf

xtensa-clang

LLVM for Xtensa (ESP32, ESP32-S2) based on clang

License: Apache-2.0

More info: https://github.com/espressif/llvm-project

Platform

Required

Download

linux-amd64

optional

https://github.com/espressif/llvm-project/releases/download/esp-14.0.0-20220415/xtensa-esp32-elf-llvm14_0_0-esp-14.0.0-20220415-linux-amd64.tar.xz

SHA256: b0148627912dacf4a4cab4596ba9467cb8dd771522ca27b9526bc57b88ff366f

macos

optional

https://github.com/espressif/llvm-project/releases/download/esp-14.0.0-20220415/xtensa-esp32-elf-llvm14_0_0-esp-14.0.0-20220415-macos.tar.xz

SHA256: 1a78c598825ef168c0c5668aff7848825a7b9d014bffd1f2f2484ceea9df3841

macos-arm64

optional

https://github.com/espressif/llvm-project/releases/download/esp-14.0.0-20220415/xtensa-esp32-elf-llvm14_0_0-esp-14.0.0-20220415-macos.tar.xz

SHA256: 1a78c598825ef168c0c5668aff7848825a7b9d014bffd1f2f2484ceea9df3841

win64

optional

https://github.com/espressif/llvm-project/releases/download/esp-14.0.0-20220415/xtensa-esp32-elf-llvm14_0_0-esp-14.0.0-20220415-win64.zip

SHA256: 793e7bd9c40fcb9a4fababaaccf3e4c5b8d9554d406af1b1fbee51806bf8c5dd

riscv32-esp-elf

Toolchain for 32-bit RISC-V based on GCC

License: GPL-3.0-with-GCC-exception

More info: https://github.com/espressif/crosstool-NG

Platform

Required

Download

linux-amd64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/riscv32-esp-elf-gcc11_2_0-esp-2022r1-linux-amd64.tar.xz

SHA256: 52710f804df4a033a2b621cc16cfa21023b42052819a51e35a2a164140bbf665

linux-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/riscv32-esp-elf-gcc11_2_0-esp-2022r1-linux-arm64.tar.xz

SHA256: 812a18f2ecdc3f72c1d098c4e8baa968841099ce9d9ecf95baea85ff71e11013

linux-armel

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/riscv32-esp-elf-gcc11_2_0-esp-2022r1-linux-armel.tar.xz

SHA256: bc6e3ff8323d1f8b137374788b5615152281aab9e7561c55ab1504145677b6c7

linux-armhf

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/riscv32-esp-elf-gcc11_2_0-esp-2022r1-linux-armhf.tar.xz

SHA256: 63f85a089fcd06939ed5e7e72ee5cdca590aa470075e409c0a4c59ef1cab3a7b

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/riscv32-esp-elf-gcc11_2_0-esp-2022r1-linux-i686.tar.xz

SHA256: 39d7295c30a23b5ea91baf61c207718ce86d4b1589014b030e121300370f696d

macos

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/riscv32-esp-elf-gcc11_2_0-esp-2022r1-macos.tar.xz

SHA256: d3a6f42b02a5f1485ba3fa92b8a9d9f307f643420e22b3765e88bbe4570aee01

macos-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/riscv32-esp-elf-gcc11_2_0-esp-2022r1-macos-arm64.tar.xz

SHA256: 23d9a715d932a3af57fd7393b0789f88d0f70fedaf5b803deb9ab81dee271bd6

win32

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/riscv32-esp-elf-gcc11_2_0-esp-2022r1-win32.zip

SHA256: 3e677ef068d7f154d33b0d3788b5f985c5066d110028eac44e0f76b3bda4429b

win64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1/riscv32-esp-elf-gcc11_2_0-esp-2022r1-win64.zip

SHA256: 324a5c679fef75313766cc48d3433c48bf23985a11b5070c5d19144538c6357b

esp32ulp-elf

Toolchain for ESP32 ULP coprocessor

License: GPL-2.0-or-later

More info: https://github.com/espressif/binutils-esp32ulp

Platform

Required

Download

linux-amd64

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32ulp-linux-amd64-2.28.51-esp-20191205.tar.gz

SHA256: 3016c4fc551181175bd9979869bc1d1f28fa8efa25a0e29ad7f833fca4bc03d7

linux-armel

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32ulp-linux-armel-2.28.51-esp-20191205.tar.gz

SHA256: 88967c086a6e71834282d9ae05841ee74dae1815f27807b25cdd3f7775a47101

linux-armhf

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32ulp-linux-armel-2.28.51-esp-20191205.tar.gz

SHA256: 88967c086a6e71834282d9ae05841ee74dae1815f27807b25cdd3f7775a47101

macos

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32ulp-macos-2.28.51-esp-20191205.tar.gz

SHA256: a35d9e7a0445247c7fc9dccd3fbc35682f0fafc28beeb10c94b59466317190c4

macos-arm64

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32ulp-macos-2.28.51-esp-20191205.tar.gz

SHA256: a35d9e7a0445247c7fc9dccd3fbc35682f0fafc28beeb10c94b59466317190c4

win32

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32ulp-win32-2.28.51-esp-20191205.zip

SHA256: bade309353a9f0a4e5cc03bfe84845e33205f05502c4b199195e871ded271ab5

win64

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32ulp-win32-2.28.51-esp-20191205.zip

SHA256: bade309353a9f0a4e5cc03bfe84845e33205f05502c4b199195e871ded271ab5

esp32s2ulp-elf

Toolchain for ESP32-S2 and ESP32-S3 ULP coprocessors

License: GPL-2.0-or-later

More info: https://github.com/espressif/binutils-esp32ulp

Platform

Required

Download

linux-amd64

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32s2ulp-linux-amd64-2.28.51-esp-20191205.tar.gz

SHA256: df7b2ff6c7c718a7cbe3b4b6dbcd68180d835d164d1913bc4698fd3781b9a466

linux-armel

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32s2ulp-linux-armel-2.28.51-esp-20191205.tar.gz

SHA256: 893b213c8f716d455a6efb2b08b6cf1bc34d08b78ee19c31e82ac44b1b45417e

linux-armhf

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32s2ulp-linux-armel-2.28.51-esp-20191205.tar.gz

SHA256: 893b213c8f716d455a6efb2b08b6cf1bc34d08b78ee19c31e82ac44b1b45417e

macos

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32s2ulp-macos-2.28.51-esp-20191205.tar.gz

SHA256: 5a9bb678a5246638cbda303f523d9bb8121a9a24dc01ecb22c21c46c41184155

macos-arm64

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32s2ulp-macos-2.28.51-esp-20191205.tar.gz

SHA256: 5a9bb678a5246638cbda303f523d9bb8121a9a24dc01ecb22c21c46c41184155

win32

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32s2ulp-win32-2.28.51-esp-20191205.zip

SHA256: 587de59fbb469a39f96168ae3eaa9f06b2601e6e0543c87eaf1bd97f23e5c4ca

win64

required

https://github.com/espressif/binutils-esp32ulp/releases/download/v2.28.51-esp-20191205/binutils-esp32s2ulp-win32-2.28.51-esp-20191205.zip

SHA256: 587de59fbb469a39f96168ae3eaa9f06b2601e6e0543c87eaf1bd97f23e5c4ca

cmake

CMake build system

On Linux and macOS, it is recommended to install CMake using the OS-specific package manager (like apt, yum, brew, etc.). However, for convenience it is possible to install CMake using idf_tools.py along with the other tools.

License: BSD-3-Clause

More info: https://github.com/Kitware/CMake

Platform

Required

Download

linux-amd64

optional

https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1-linux-x86_64.tar.gz

SHA256: f3c654b2e226b9d43369e0bd8487c51618d4dbe5a1af929dd32af7e6ca432d60

linux-arm64

optional

https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1-linux-aarch64.tar.gz

SHA256: 74062efddeb935bce3d33694a4db534cef9a650f77a9a153a9f217d9dc385c75

linux-armel

optional

https://dl.espressif.com/dl/cmake/cmake-3.23.1-Linux-armv7l.tar.gz

SHA256: aa6079237e16cc3b389479b2f7279d07e57f6aedad520e2b3014ef97fb906466

linux-armhf

optional

https://dl.espressif.com/dl/cmake/cmake-3.23.1-Linux-armv7l.tar.gz

SHA256: aa6079237e16cc3b389479b2f7279d07e57f6aedad520e2b3014ef97fb906466

macos

optional

https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1-macos-universal.tar.gz

SHA256: f794ed92ccb4e9b6619a77328f313497d7decf8fb7e047ba35a348b838e0e1e2

macos-arm64

optional

https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1-macos-universal.tar.gz

SHA256: f794ed92ccb4e9b6619a77328f313497d7decf8fb7e047ba35a348b838e0e1e2

win32

required

https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1-windows-x86_64.zip

SHA256: 9b509cc4eb7191dc128cfa3f2170036f9cbc7d9d5f93ff7fafc5b2d77b3b40dc

win64

required

https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1-windows-x86_64.zip

SHA256: 9b509cc4eb7191dc128cfa3f2170036f9cbc7d9d5f93ff7fafc5b2d77b3b40dc

openocd-esp32

OpenOCD for ESP32

License: GPL-2.0-only

More info: https://github.com/espressif/openocd-esp32

Platform

Required

Download

linux-amd64

required

https://github.com/espressif/openocd-esp32/releases/download/v0.11.0-esp32-20220706/openocd-esp32-linux-amd64-0.11.0-esp32-20220706.tar.gz

SHA256: 26f1f18dd93eb70a13203848d3fb1cc2e0de1fd6749c7dd771b2de8709735aed

linux-arm64

required

https://github.com/espressif/openocd-esp32/releases/download/v0.11.0-esp32-20220706/openocd-esp32-linux-arm64-0.11.0-esp32-20220706.tar.gz

SHA256: f97792bc2852937ec0accb9f0eb2e49926c0f747a71f101a4e34aed75d2c6fcc

linux-armel

required

https://github.com/espressif/openocd-esp32/releases/download/v0.11.0-esp32-20220706/openocd-esp32-linux-armel-0.11.0-esp32-20220706.tar.gz

SHA256: 27e4c628994cf342e7fc5b07f49ca5533ba892fd8a150683a382a08758c3dfbe

linux-armhf

required

https://github.com/espressif/openocd-esp32/releases/download/v0.11.0-esp32-20220706/openocd-esp32-linux-armhf-0.11.0-esp32-20220706.tar.gz

SHA256: 7f3b57332104e8b8e6194553365a70a9d3754878cfc063d5dc5d839513a63de9

macos

required

https://github.com/espressif/openocd-esp32/releases/download/v0.11.0-esp32-20220706/openocd-esp32-macos-0.11.0-esp32-20220706.tar.gz

SHA256: 333ee2ec3c9b5dc6ad4509faae55335cdea7f8bf83a56bfcf5327e4497c8538a

macos-arm64

required

https://github.com/espressif/openocd-esp32/releases/download/v0.11.0-esp32-20220706/openocd-esp32-macos-arm64-0.11.0-esp32-20220706.tar.gz

SHA256: 7c5e721aac2ca11fc53595c7df32ea81c348854055ac3fe36340afbe3842756e

win32

required

https://github.com/espressif/openocd-esp32/releases/download/v0.11.0-esp32-20220706/openocd-esp32-win32-0.11.0-esp32-20220706.zip

SHA256: c3d39eb4365a9947e71f1d3780ce031185bc6437f21186568a5c05f23f57a8d0

win64

required

https://github.com/espressif/openocd-esp32/releases/download/v0.11.0-esp32-20220706/openocd-esp32-win32-0.11.0-esp32-20220706.zip

SHA256: c3d39eb4365a9947e71f1d3780ce031185bc6437f21186568a5c05f23f57a8d0

ninja

Ninja build system

On Linux and macOS, it is recommended to install ninja using the OS-specific package manager (like apt, yum, brew, etc.). However, for convenience it is possible to install ninja using idf_tools.py along with the other tools.

License: Apache-2.0

More info: https://github.com/ninja-build/ninja

Platform

Required

Download

linux-amd64

optional

https://dl.espressif.com/dl/ninja-1.10.2-linux64.tar.gz

SHA256: 32bb769de4d57aa7ee0e292cfcb7553e7cc8ea0961f7aa2b3aee60aa407c4033

macos

optional

https://dl.espressif.com/dl/ninja-1.10.2-osx.tar.gz

SHA256: 847bb1ca4bc16d8dba6aeed3ecb5055498b86bc68c364c37583eb5738bb440f1

macos-arm64

optional

https://dl.espressif.com/dl/ninja-1.10.2-osx.tar.gz

SHA256: 847bb1ca4bc16d8dba6aeed3ecb5055498b86bc68c364c37583eb5738bb440f1

win64

required

https://dl.espressif.com/dl/ninja-1.10.2-win64.zip

SHA256: bbde850d247d2737c5764c927d1071cbb1f1957dcabda4a130fa8547c12c695f

idf-exe

IDF wrapper tool for Windows

License: Apache-2.0

More info: https://github.com/espressif/idf_py_exe_tool

Platform

Required

Download

win32

required

https://github.com/espressif/idf_py_exe_tool/releases/download/v1.0.3/idf-exe-v1.0.3.zip

SHA256: 7c81ef534c562354a5402ab6b90a6eb1cc8473a9f4a7b7a7f93ebbd23b4a2755

win64

required

https://github.com/espressif/idf_py_exe_tool/releases/download/v1.0.3/idf-exe-v1.0.3.zip

SHA256: 7c81ef534c562354a5402ab6b90a6eb1cc8473a9f4a7b7a7f93ebbd23b4a2755

ccache

Ccache (compiler cache)

License: GPL-3.0-or-later

More info: https://github.com/ccache/ccache

Platform

Required

Download

win64

required

https://github.com/ccache/ccache/releases/download/v4.3/ccache-4.3-windows-64.zip

SHA256: a9cacae73c3906d8193456328bee74f7748cb1559a32eaced9ee78eadd416105

dfu-util

dfu-util (Device Firmware Upgrade Utilities)

License: GPL-2.0-only

More info: http://dfu-util.sourceforge.net/

Platform

Required

Download

win64

required

https://dl.espressif.com/dl/dfu-util-0.9-win64.zip

SHA256: 5816d7ec68ef3ac07b5ac9fb9837c57d2efe45b6a80a2f2bbe6b40b1c15c470e