Setup Windows Toolchain from Scratch¶
Setting up the environment gives you some more control over the process, and also provides the information for advanced users to customize the install. The pre-built environment, addressed to less experienced users, has been prepared by following these steps.
To quickly setup the toolchain in standard way, using prebuild environment, proceed to section Standard Setup of Toolchain for Windows.
Configure Toolchain & Environment from Scratch¶
Navigate to the MSYS2 installer page and download the
msys2-i686-xxxxxxx.exeinstaller executable (we only support a 32-bit MSYS environment, it works on both 32-bit and 64-bit Windows.) At time of writing, the latest installer is
Run through the installer steps. Uncheck the “Run MSYS2 32-bit now” checkbox at the end.
Once the installer exits, open Start Menu and find “MSYS2 MinGW 32-bit” to run the terminal.
(Why launch this different terminal? MSYS2 has the concept of different kinds of environments. The default “MSYS” environment is Cygwin-like and uses a translation layer for all Windows API calls. We need the “MinGW” environment in order to have a native Python which supports COM ports.)
The ESP-IDF repository on github contains a script in the tools directory titled
windows_install_prerequisites.sh. If you haven’t got a local copy of the ESP-IDF yet, that’s OK - you can just download that one file in Raw format from here: tools/windows/windows_install_prerequisites.sh. Save it somewhere on your computer.
Type the path to the shell script into the MSYS2 terminal window. You can type it as a normal Windows path, but use forward-slashes instead of back-slashes. ie:
C:/Users/myuser/Downloads/windows_install_prerequisites.sh. You can read the script beforehand to check what it does.
windows_install_prerequisites.shscript will download and install packages for ESP-IDF support, and the ESP32 toolchain.
During the initial update step, MSYS may update itself into a state where it can no longer operate. You may see errors like the following:
*** fatal error - cygheap base mismatch detected - 0x612E5408/0x612E4408. This problem is probably due to using incompatible versions of the cygwin DLL.
If you see errors like this, close the terminal window entirely (terminating the processes running there) and then re-open a new terminal. Re-run
windows_install_prerequisites.sh(tip: use the up arrow key to see the last run command). The update process will resume after this step.
MSYS2 Mirrors in China¶
There are some (unofficial) MSYS2 mirrors inside China, which substantially improves download speeds inside China.
To add these mirrors, edit the following two MSYS2 mirrorlist files before running the setup script. The mirrorlist files can be found in the
/etc/pacman.d directory (i.e.
Add these lines at the top of
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/ Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/i686
Add these lines at the top of
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch Server = http://mirror.bit.edu.cn/msys2/REPOS/MSYS2/$arch
You can enable an HTTP proxy for MSYS and PIP downloads by setting the
http_proxy variable in the terminal before running the setup script:
Or with credentials:
Add this line to
/etc/profile in the MSYS directory in order to permanently enable the proxy when using MSYS.
Alternative Setup: Just download a toolchain¶
If you already have an MSYS2 install or want to do things differently, you can download just the toolchain here:
If you followed instructions Configure Toolchain & Environment from Scratch, you already have the toolchain and you won’t need this download.
Just having this toolchain is not enough to use ESP-IDF on Windows. You will need GNU make, bash, and sed at minimum. The above environments provide all this, plus a host compiler (required for menuconfig support).