WSL (Windows Subsystems for Linux) is a great way how to build projects based on ESP-IDF. The problem is how to flash the image from WSL Linux to a real chip?
Right now only WSL1 supports mapping of Windows COM ports to Linux /dev/ttyS*.
First of all, make sure that your image is running WSL1 (which is slower than WSL2):
In the case of WSL2 image, you can convert it by the following command (let assume the image of Ubuntu):
Use Windows Device Manager to determine COM ports of your ESP chip. Similar could be achieved by command:
The number of COM.. device will be mapped to the /dev/ttyS.. in Linux.
Start the Linux terminal (e.g. using Windows Terminal). Grant permission so that your user can read write /dev/ttyS* or add your user to dialout group if supported by distribution. Note: on Linux, the device is often mapped to /dev/ttyUSB*, notice the difference on Windows /dev/ttyS*.
Build and flash the project. It’s necessary to specify the device name, because autodetection in idf.py is not able to find /dev/ttyS. The second important part is to set the communication speed by “-b” option.
The last command should launch idf monitor, which you can terminate by CTRL+].
If you’re WSL2 user, you can try alternative approach using idfx tool.