After I published a post about
idfx (tool for flashing ESP-IDF applications on WSL2) I have decided to describe in this post a complete process about how to install ESP-IDF on WSL2 and how to use
This post is written form of my youtube video about the same topic. I have decided to wrote this post along with the video because it will be much easier for you to just copy and paste commands inside of your WSL2.
idfx, this process of installation ESP-IDF on WSL2 is tested under Ubuntu 20.04 LTS and Debian distributions, and as a prerequisite for using
idfx, Python needs to be installed on the Windows.
After this short intro, you can open WSL2 and start to execute next commands.
- Update linux
sudo apt update && sudo apt upgrade -y
- Install tools required for esp-idf
sudo apt install -y git wget curl flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
- Make python3 as default python
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
- Make pip3 as default pip
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
- Make esp directory and go inside
cd ~ && mkdir esp && cd esp
- Clone esp-idf repository (this will take a while…)
git clone --recursive https://github.com/espressif/esp-idf.git
- Modify esp-idf installation script to work with WSL
cd esp-idf && ! grep -q "dirname --" install.sh; [ $? -eq 0 ] && sed -i 's/dirname/dirname --/g' install.sh
- Run esp-idf installation script
. ./install.sh || true
- Add esp-idf export script to the user profile script in order to make isp-idf tools visible on the PATH for every session
echo -e '\n\n. $HOME/esp/esp-idf/export.sh > /dev/null 2>&1 || true' >> ~/.profile
curl https://git.io/JyBgj --create-dirs -L -o $HOME/bin/idfx && chmod u+x $HOME/bin/idfx
- Source profile script to add all necessary tools to the PATH
. ~/.profile || true
Create (a copy of hello_world) project
- Make a copy of hello_world example project in home directory
cd ~ && cp -r $IDF_PATH/examples/get-started/hello_world .
Build, flash and monitor
- Go inside of project
- Set target to ESP32 (or other ESP chip)
idf.py set-target esp32
- Now we can build, flash and monitor our application with a single command:
idfx all COM2
Where in previous command
COM2 is the COM port of my ESP32. Open Device Manager on Windows to find COM port of your ESP.
(To exit from monitor press
Happy coding and flashing!