Skip to content

How to Install Esptool on Windows 10

This article on how to install Esptool on Windows 10 was written because I remembered that I had been for a time wondering how to do it. If you’re a Windows user, you’re probably used to graphical interfaces. You’re also used to easy installs – download an installer file, run or open the file, follow the installation instructions, and it’s done.

Installing Esptool is a two-part process. First you download and install Python. Then, you run a Python command to install Esptool.

Esptool runs on the scripting and programming language Python. Therefore, we need to install Python first before we install Esptool.

How to Install Python

On Windows 10, you may simply type “python” on the Windows search box beside the Windows Start button and download Python from the Windows App Store. An issue with this procedure is that you may get an older version of Esptool from the App Store.

Picture of Python download page from Windows App Store, the first step in installing Esptool on Windows 10

If you want to get the latest version of Python, downloading the installer from the Esptool download page is the way to go.

Screenshot of download page of Python where a newer version is available for download

Run the downloaded Esptool installation file. As of this writing, the installation file for the latest version is python-3.8.1.

You may want to put a check mark on the Add Python 3.8 to PATH before clicking on the Install Now button. This will make it easier to start the Python and the Esptool program. Without the check mark, before you can run Python or Esptool, you would need to find the directory where you installed Python. You then would have to change your current directory to the Python’s folder.

Image of the Python 3.8.1 installer showing annotation for the Add Python 3.8 to PATH

How to Install Esptool

After successfully installing Python, open a command prompt window.

Type cmd on the Windows search box and click on the Command Prompt app. Then type the command pip install esptool.

Screenshot of the Windows command prompt showing the command used for installing Esptool on Windows 10

A successful Esptool installation will look like the screenshot below.

A screen grab of the output on command prompt after running the esptool installer and showing the successful installation of Esptool on Windows 10

Testing the Esptool Installation

A quick test of the Esptool installation can be done by issuing the command esptool.py version.

A screenshot of the command prompt for testing if the Esptool was indeed successfully installed on Windows 10

Congratulations! You now have Esptool installed and ready for use on your ESP8266 or ESP32 development board.

Examples of Possible Uses

Related Articles on How to Install Esptool on Windows 10

How to Install Arduino IDE on Windows 10
How to Set up Arduino IDE for ESP8266 Programming
How to Test NodeMCU V3 Using Esptool
NodeMCU V3 ESP8266 Pinout and Configuration
NodeMCU ESP-32S Pin Configuration

References on How to Install Esptool on Windows 10

Esptool Wiki on Github
Python on Wikipedia
Python Website

15 thoughts on “How to Install Esptool on Windows 10”

  1. I have just tried this but I get an error when installing esptool.
    Thie is the error:

    C:\Users\tehud>pip install esptool
    Collecting esptool
    Using cached esptool-3.0.tar.gz (149 kB)
    Collecting bitstring>=3.1.6
    Using cached bitstring-3.1.7.tar.gz (195 kB)
    Collecting cryptography>=2.1.4
    Using cached cryptography-3.3.1-cp36-abi3-win_amd64.whl (1.5 MB)
    Collecting ecdsa>=0.16.0
    Using cached ecdsa-0.16.1-py2.py3-none-any.whl (104 kB)
    Collecting pyserial>=3.0
    Using cached pyserial-3.5-py2.py3-none-any.whl (90 kB)
    Collecting reedsolo=1.5.3
    Using cached reedsolo-1.5.4.tar.gz (271 kB)
    Collecting six>=1.4.1
    Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
    Collecting cffi>=1.12
    Using cached cffi-1.14.4-cp39-cp39-win_amd64.whl (179 kB)
    Collecting pycparser
    Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
    Using legacy ‘setup.py install’ for esptool, since package ‘wheel’ is not installed.
    Using legacy ‘setup.py install’ for bitstring, since package ‘wheel’ is not installed.
    Using legacy ‘setup.py install’ for reedsolo, since package ‘wheel’ is not installed.
    Installing collected packages: bitstring, six, pycparser, cffi, cryptography, ecdsa, pyserial, reedsolo, esptool
    Running setup.py install for bitstring … error
    ERROR: Command errored out with exit status 1:
    command: ‘c:\python39\python.exe’ -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘C:\\Users\\tehud\\AppData\\Local\\Temp\\pip-install-kd3p44fh\\bitstring\\setup.py'”‘”‘; __file__='”‘”‘C:\\Users\\tehud\\AppData\\Local\\Temp\\pip-install-kd3p44fh\\bitstring\\setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(__file__);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, __file__, ‘”‘”‘exec'”‘”‘))’ install –record ‘C:\Users\tehud\AppData\Local\Temp\pip-record-jnwv7913\install-record.txt’ –single-version-externally-managed –compile –install-headers ‘c:\python39\Include\bitstring’
    cwd: C:\Users\tehud\AppData\Local\Temp\pip-install-kd3p44fh\bitstring\
    Complete output (9 lines):
    running install
    running build
    running build_py
    creating build
    creating build\lib
    copying bitstring.py -> build\lib
    running install_lib
    byte-compiling c:\python39\Lib\site-packages\bitstring.py to bitstring.cpython-39.pyc
    error: [Errno 13] Permission denied: ‘c:\\python39\\Lib\\site-packages\\__pycache__\\bitstring.cpython-39.pyc.1892349097392’
    —————————————-
    ERROR: Command errored out with exit status 1: ‘c:\python39\python.exe’ -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘C:\\Users\\tehud\\AppData\\Local\\Temp\\pip-install-kd3p44fh\\bitstring\\setup.py'”‘”‘; __file__='”‘”‘C:\\Users\\tehud\\AppData\\Local\\Temp\\pip-install-kd3p44fh\\bitstring\\setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(__file__);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, __file__, ‘”‘”‘exec'”‘”‘))’ install –record ‘C:\Users\tehud\AppData\Local\Temp\pip-record-jnwv7913\install-record.txt’ –single-version-externally-managed –compile –install-headers ‘c:\python39\Include\bitstring’ Check the logs for full command output.
    WARNING: You are using pip version 20.2.3; however, version 21.0.1 is available.
    You should consider upgrading via the ‘c:\python39\python.exe -m pip install –upgrade pip’ command.
    Any idea why it is erroring? I’m not very conversant with low level programming or Python.

  2. Very informative and i like the main thing that you describe advantages and disadvantages very well-kept posting such informative topics.

  3. the installation fails:
    There is an error

    Requirement already satisfied: ecdsa>=0.16.0 in d:\users\dcastro\anaconda3\lib\site-packages (from esptool) (0.16.1)
    Requirement already satisfied: cryptography>=2.1.4 in d:\users\dcastro\anaconda3\lib\site-packages (from esptool) (3.1.1)
    Requirement already satisfied: bitstring>=3.1.6 in d:\users\dcastro\anaconda3\lib\site-packages (from esptool) (3.1.7)
    Requirement already satisfied: pyserial>=3.0 in d:\users\dcastro\anaconda3\lib\site-packages (from esptool) (3.5)
    Requirement already satisfied: six>=1.9.0 in d:\users\dcastro\anaconda3\lib\site-packages (from ecdsa>=0.16.0->esptool) (1.15.0)
    Requirement already satisfied: cffi!=1.11.3,>=1.8 in d:\users\dcastro\anaconda3\lib\site-packages (from cryptography>=2.1.4->esptool) (1.14.3)
    Requirement already satisfied: pycparser in d:\users\dcastro\anaconda3\lib\site-packages (from cffi!=1.11.3,>=1.8->cryptography>=2.1.4->esptool) (2.20)
    Building wheels for collected packages: reedsolo
    Building wheel for reedsolo (setup.py) … error
    ERROR: Command errored out with exit status 1:
    command: ‘D:\Users\dcastro\Anaconda3\python.exe’ -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘C:\\Users\\dcastro\\AppData\\Local\\Temp\\pip-install-a1azm01v\\reedsolo\\setup.py'”‘”‘; __file__='”‘”‘C:\\Users\\dcastro\\AppData\\Local\\Temp\\pip-install-a1azm01v\\reedsolo\\setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(__file__);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, __file__, ‘”‘”‘exec'”‘”‘))’ bdist_wheel -d ‘C:\Users\dcastro\AppData\Local\Temp\pip-wheel-p2_gn60p’
    cwd: C:\Users\dcastro\AppData\Local\Temp\pip-install-a1azm01v\reedsolo\
    Complete output (10 lines):
    Cython is installed, building creedsolo module
    running bdist_wheel
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.8
    copying reedsolo.py -> build\lib.win-amd64-3.8
    running build_ext
    building ‘creedsolo’ extension
    error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/
    —————————————-
    ERROR: Failed building wheel for reedsolo
    Running setup.py clean for reedsolo
    Failed to build reedsolo
    Installing collected packages: reedsolo, esptool
    Running setup.py install for reedsolo … error
    ERROR: Command errored out with exit status 1:
    command: ‘D:\Users\dcastro\Anaconda3\python.exe’ -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘C:\\Users\\dcastro\\AppData\\Local\\Temp\\pip-install-a1azm01v\\reedsolo\\setup.py'”‘”‘; __file__='”‘”‘C:\\Users\\dcastro\\AppData\\Local\\Temp\\pip-install-a1azm01v\\reedsolo\\setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(__file__);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, __file__, ‘”‘”‘exec'”‘”‘))’ install –record ‘C:\Users\dcastro\AppData\Local\Temp\pip-record-f0rhoeng\install-record.txt’ –single-version-externally-managed –compile –install-headers ‘D:\Users\dcastro\Anaconda3\Include\reedsolo’
    cwd: C:\Users\dcastro\AppData\Local\Temp\pip-install-a1azm01v\reedsolo\
    Complete output (10 lines):
    Cython is installed, building creedsolo module
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.8
    copying reedsolo.py -> build\lib.win-amd64-3.8
    running build_ext
    building ‘creedsolo’ extension
    error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/
    —————————————-
    ERROR: Command errored out with exit status 1: ‘D:\Users\dcastro\Anaconda3\python.exe’ -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘C:\\Users\\dcastro\\AppData\\Local\\Temp\\pip-install-a1azm01v\\reedsolo\\setup.py'”‘”‘; __file__='”‘”‘C:\\Users\\dcastro\\AppData\\Local\\Temp\\pip-install-a1azm01v\\reedsolo\\setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(__file__);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, __file__, ‘”‘”‘exec'”‘”‘))’ install –record ‘C:\Users\dcastro\AppData\Local\Temp\pip-record-f0rhoeng\install-record.txt’ –single-version-externally-managed –compile –install-headers ‘D:\Users\dcastro\Anaconda3\Include\reedsolo’ Check the logs for full command output.

  4. My installation did not fail, but when I run the version check, it says that ‘esptool.py’ is not recognized as an internal or external command,
    operable program or batch file.’

    Yes, I have Python. I am at version 3.8.

  5. I’ve installed python 3 times now. this is what I get

    C:\Users\mikeo>pip install esptool
    ‘pip’ is not recognized as an internal or external command,
    operable program or batch file.

    All this stuff says beginner level. All the videos on youtube the guys plug the device in and it pops up on their screen whether pc or mac. I’ve done all this on 3 different computers, both pc and mac, and plugged in brand new 2 different model microcontrollers. I’ve bought a new cable that was a 90 minute drive away plus $20 for the cable, the label said 10Gbps which ws the fastest speed capable data cable they had. There are umpteen tutorials on this and not a single one matches my experience irl. I can’t imagine these things don’t work reliably or there wouldn’t be aisles of components for them at the store. But this is frustrating….even the mfg website says the devices will be supported by Arduinio IDE but the devices are not listed in the menu, nothing even close in name. It also tells me try MU so I’ve installed MU on all 3 computers but same story, devices dont’ register and the app says no device connected.

    They say this device I have qt py esp32-c3 was only released to the market a couple months ago, am I foolish for thinking there would be support available for it? My other device is a trinket 5v which there wont be new firmware for anymore but that one my device manager at least calls it a trinket but the drivers arent’ correct, theres a yellow triangle on the icon. I downloaded every driver I could find for the other trinket MO because I can’t even find drivers for the trinket 5v but windows says the best driver is currently installed. I would rather use the qt py anyway

    Any help or advice is greatly appreciated.

  6. Installing on win11 was the same as the guide, but to run esp commands it’s the following syntax:

    python -m esptool version

Leave a Reply

Your email address will not be published. Required fields are marked *