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.

注解

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:

  • 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.

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.

注解

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:

    • 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.

      注解

      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 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

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.

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

注解

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 for ESP-IDF includes a menu item to set up the tools. Internally the plugin calls idf_tools.py.

  • Visual Studio Code 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-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-2021r2/xtensa-esp32-elf-gcc8_4_0-esp-2021r2-linux-amd64.tar.gz

SHA256: 3eb3d68b27fa6ba5af6f88da21cb8face9be0094daaa8960793cfe570ab785ff

linux-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32-elf-gcc8_4_0-esp-2021r2-linux-arm64.tar.gz

SHA256: aa534be24e45e06b7080a6a3bb8cd9e3cfb818f5f8bce2244d7cfb5e91336541

linux-armel

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32-elf-gcc8_4_0-esp-2021r2-linux-armel.tar.gz

SHA256: f0e49ce06fe7833ff5d76961dc2dac5449d320f823bb8c05a302cf85a3a6eb04

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32-elf-gcc8_4_0-esp-2021r2-linux-i686.tar.gz

SHA256: 06de09b74652de43e5b22db3b7fc992623044baa75e9faaab68317a986715ba3

macos

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32-elf-gcc8_4_0-esp-2021r2-macos.tar.gz

SHA256: 96443f69c8569417c780ee749d91ef33cffe22153fffa30a0fbf12107d87381b

win32

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32-elf-gcc8_4_0-esp-2021r2-patch1-win32.zip

SHA256: eba06307022cc659e3c5345ecb3c620c99ec5d0d2a5cb59ac21c831edcbafc45

win64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32-elf-gcc8_4_0-esp-2021r2-patch1-win64.zip

SHA256: 36a47c80fa79a867244f39794565c391cf4646d221c8f3e228bef45a5de1d32a

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-2021r2/xtensa-esp32s2-elf-gcc8_4_0-esp-2021r2-linux-amd64.tar.gz

SHA256: a6e0947c92b823ca04f062522249f0a428357e0b056f1ff4c6bcabef83cf63a7

linux-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32s2-elf-gcc8_4_0-esp-2021r2-linux-arm64.tar.gz

SHA256: d2e5600fc194b508bd393b236a09fd62ed70afb6c36619d4b106b696a56ca66d

linux-armel

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32s2-elf-gcc8_4_0-esp-2021r2-linux-armel.tar.gz

SHA256: 3fff4199e986dd74660f17ca27d9414cb98f1b911a7f13bb3b22e784cb1156cf

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32s2-elf-gcc8_4_0-esp-2021r2-linux-i686.tar.gz

SHA256: 7732f9fb371d36b6b324820e300beecc33c2719921a61cf1cdb5bc625016b346

macos

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32s2-elf-gcc8_4_0-esp-2021r2-macos.tar.gz

SHA256: e6dd32782fcff8f633299b97d1c671d6b6513390aca2ddbd7543c2cc62e72d7e

win32

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32s2-elf-gcc8_4_0-esp-2021r2-patch1-win32.zip

SHA256: 083458aed4e0e1efad3779098b5626dbb41cfe00892daf1ae1fde07f59ac40b9

win64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32s2-elf-gcc8_4_0-esp-2021r2-patch1-win64.zip

SHA256: e535084882355d5f7587d79d4c0b6d135a318288acf50a5a2fe1b90dbc934b61

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-2021r2/xtensa-esp32s3-elf-gcc8_4_0-esp-2021r2-linux-amd64.tar.gz

SHA256: b958eb47f51fc2a91e3beda78a331a380eb8c96d5452f7795adf3f565d7fca2f

linux-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32s3-elf-gcc8_4_0-esp-2021r2-linux-arm64.tar.gz

SHA256: 5fb122f1109a0b1aa7a42b6b48f56c854c0a84d13047a3bb0a78bdc737bf70e2

linux-armel

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32s3-elf-gcc8_4_0-esp-2021r2-linux-armel.tar.gz

SHA256: d618be508629749110785ce0038b35959cc4e6953629e2dc6d65697425b905e1

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32s3-elf-gcc8_4_0-esp-2021r2-linux-i686.tar.gz

SHA256: 9701907da616992079d302acf5a04f97361b39ca3e74112690b2c896875f3a62

macos

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32s3-elf-gcc8_4_0-esp-2021r2-macos.tar.gz

SHA256: d417885a5d150d94b3b84f68460b7af399a789cb0c7c632e222feed666c8aaea

win32

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32s3-elf-gcc8_4_0-esp-2021r2-patch1-win32.zip

SHA256: 0985f5292370daad2bf228d80bcd51aacb060288a24c7d1965fddfb16e4e2613

win64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/xtensa-esp32s3-elf-gcc8_4_0-esp-2021r2-patch1-win64.zip

SHA256: cb98c854017ffa3222ef1db9e76151364d6f22841b11b07e857363065be91d1f

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-2021r2/riscv32-esp-elf-gcc8_4_0-esp-2021r2-linux-amd64.tar.gz

SHA256: 812d735063da9d063b374b59f55832a96c41fbd27ddaef19000a75de8607ba21

linux-arm64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/riscv32-esp-elf-gcc8_4_0-esp-2021r2-linux-arm64.tar.gz

SHA256: 712f1fbc3e08304a6f32aa18b346b16bbcb413b507b3d4c7c3211bf0d7dc4813

linux-armel

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/riscv32-esp-elf-gcc8_4_0-esp-2021r2-linux-armel.tar.gz

SHA256: 80a3342cda2cd4b6b75ebb2b36d5d12fce7d375cfadadcff01ec3a907f0a16a2

linux-i686

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/riscv32-esp-elf-gcc8_4_0-esp-2021r2-linux-i686.tar.gz

SHA256: 7f0162a81558ab0ed09d6c5d356def25b5cb3d5c2d61358f20152fa260ccc8ae

macos

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/riscv32-esp-elf-gcc8_4_0-esp-2021r2-macos.tar.gz

SHA256: 3ff7e5427907cf8e271c1f959b70fb01e39625c3caf61a6567e7b38aa0c11578

win32

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch1-win32.zip

SHA256: f1ff7d2a87e1f1515371c1e4868b982e6a0958df144e2f1b2bd7e684ec1f9c93

win64

required

https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/riscv32-esp-elf-gcc8_4_0-esp-2021r2-patch1-win64.zip

SHA256: 791b8c8ed99934a2ec7f42100f2c71fb1ef7042efa7c6267c0d59394175c827a

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

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

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 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-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

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

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 package manager. 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.16.4/cmake-3.16.4-Linux-x86_64.tar.gz

SHA256: 12a577aa04b6639766ae908f33cf70baefc11ac4499b8b1c8812d99f05fb6a02

linux-armel

optional

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

SHA256: f8bd050c2745f0dcc4b7cef9738bbfef775950a10f5bd377abb0062835e669dc

macos

optional

https://github.com/Kitware/CMake/releases/download/v3.16.4/cmake-3.16.4-Darwin-x86_64.tar.gz

SHA256: f60e0ef96da48725cd8da7d6abe83cd9501167aa51625c90dd4d31081a631279

win32

required

https://github.com/Kitware/CMake/releases/download/v3.16.4/cmake-3.16.4-win64-x64.zip

SHA256: f37963bcfcebdfe5864926a3623f6c21220c35790c39cd65e64bd521cbb39c55

win64

required

https://github.com/Kitware/CMake/releases/download/v3.16.4/cmake-3.16.4-win64-x64.zip

SHA256: f37963bcfcebdfe5864926a3623f6c21220c35790c39cd65e64bd521cbb39c55

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.10.0-esp32-20211111/openocd-esp32-linux-amd64-0.10.0-esp32-20211111.tar.gz

SHA256: eed0030e49206175fb564756c9210a6389347867b3528b16f50d725d47b45bf0

linux-arm64

required

https://github.com/espressif/openocd-esp32/releases/download/v0.10.0-esp32-20211111/openocd-esp32-linux-arm64-0.10.0-esp32-20211111.tar.gz

SHA256: b4927173aa4230157d2f5019b3c51e94c880a0320c3ab7349cdc20c6b1c1eb14

linux-armel

required

https://github.com/espressif/openocd-esp32/releases/download/v0.10.0-esp32-20211111/openocd-esp32-linux-armel-0.10.0-esp32-20211111.tar.gz

SHA256: 590fe5427496ca94616796235803145aef74db2aad19bf25ee19e8c6ab7b94d4

linux-armhf

required

https://github.com/espressif/openocd-esp32/releases/download/v0.10.0-esp32-20211111/openocd-esp32-linux-armhf-0.10.0-esp32-20211111.tar.gz

SHA256: 27d754dbc3fb02cd3e78503a4f348288dc473e0fadbe87ac83090bdb0de51b00

macos

required

https://github.com/espressif/openocd-esp32/releases/download/v0.10.0-esp32-20211111/openocd-esp32-macos-0.10.0-esp32-20211111.tar.gz

SHA256: bc194319a39f8bb03ce75dab39feb51a36fa528bdee8bb594ccdd30730990c2f

win32

required

https://github.com/espressif/openocd-esp32/releases/download/v0.10.0-esp32-20211111/openocd-esp32-win32-0.10.0-esp32-20211111.zip

SHA256: 590ece2f7c1bf20a3bfadb8b82255d4735a8f4666c9cb897cc4584f72f3040fb

win64

required

https://github.com/espressif/openocd-esp32/releases/download/v0.10.0-esp32-20211111/openocd-esp32-win32-0.10.0-esp32-20211111.zip

SHA256: 590ece2f7c1bf20a3bfadb8b82255d4735a8f4666c9cb897cc4584f72f3040fb

ninja

Ninja build system

On Linux and macOS, it is recommended to install ninja using the OS package manager. 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

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: tools/windows/idf_exe

Platform

Required

Download

win32

required

https://dl.espressif.com/dl/idf-exe-v1.0.1.zip

SHA256: 53eb6aaaf034cc7ed1a97d5c577afa0f99815b7793905e9408e74012d357d04a

win64

required

https://dl.espressif.com/dl/idf-exe-v1.0.1.zip

SHA256: 53eb6aaaf034cc7ed1a97d5c577afa0f99815b7793905e9408e74012d357d04a

ccache

Ccache (compiler cache)

License: GPL-3.0-or-later

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

Platform

Required

Download

win64

required

https://dl.espressif.com/dl/ccache-3.7-w64.zip

SHA256: 37e833f3f354f1145503533e776c1bd44ec2e77ff8a2476a1d2039b0b10c78d6

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