When setting up ESP32-S2 environment using command
idf.py set-target esp32s2, an error occurred as “Error: No such command ‘set-target’”. What could be the reason?
The ESP-IDF is adapted to ESP32-S2 from release/v4.2, thus setting up ESP32-S2 environment in previous versions will cause errors. In this case, when using command
idf.py set-target esp32s2, there will be error as “Error: No such command ‘set-target’”. It is recommended to perform tests and development on ESP32-S2 using ESP-IDF release/v4.2 and later versions. For more information, please refer to ESP32-S2 Get Started.
To check which ESP chips are supported by different ESP-IDF versions, please refer to ESP-IDF Release and SoC Compatibility.
When installing ESP-IDF version master using ESP-IDF Tools 2.3 in Windows system, an error occurred as: Installation has failed with exit code 2. What could be the reason?
This is related to the bad network environment. The Github repository cannot be downloaded smoothly under such network environment, causing SDK download failure on your PC. If you encounter Github access problems, it is recommended to use the offline version of the latest ESP-IDF Windows Installer.
When using esp-idf-tools-setup-2.2.exe in Windows system, a python error occurred during the installation:
Installation has failed with exit code 1
Update your tool chain: https://dl.espressif.com/dl/esp-idf-tools-setup-2.3.exe
Remove the obsolete option “–no-site-packages” from idf_tools.py
What should I do if I get
Download failed: security channel support error when installing build environment in the Windows system?
This is because the Windows system has disabled the default support for SSl3.0.
Solution: Go to Control Panel and find
Internet option, select
Advanced, and check the
use SSL 3.0option.
When executing export.bat in Windows system, what should I do if I get CMake and gdbgui version errors?
C:\Users\xxxx\.espressif\tools\cmake\3.16.4\bin The following Python requirements are not satisfied: gdbgui>=0.13.2.0
This is because the upstream gdbgui has been updated, thus it is not compatible with the low version of python. The current solution is to manually modify the root file
requirements.txtin ESP-IDF by changing the description of gdbgui version to
How to configure
IDF_PATH when developing ESP32 and ESP8266 simultaneously?
PATH, there is no need to do extra configurations. You can put them together as: export PATH=”$HOME/esp/xtensa-esp32-elf/bin:$HOME/esp/xtensa-lx106-elf/bin:$PATH”.
IDF_PATH, you can specify it for separate chips as:
In ESP32 related projects, use
IDF_PATH = $(HOME)/esp/esp-idf. In ESP8266 related projects, use
IDF_PATH = $(HOME)/esp/ESP8266_RTOS_SDK.
Do I need to use command
idf.py set-target every time when switching to another project?
When building the project with
idf.py build, the target is determined as follows:
If the build directory
buildalready exists, the system will use the target the project was previously built for. It is stored in CMakeCache.txt file in the
Alternatively, if the build directory doesn’t exist, the system will check if the
sdkconfigfile exists, and use the target specified there.
If both the build directory and
sdkconfigfile exist with different targets specified, the system will report an error. This shouldn’t happen normally, unless
sdkconfigwas changed manually without deleting the build directory.
sdkconfigfile nor build directory exists, it can be considered to use
IDF_TARGETto set the target as a CMake variable or environment variable. If this variable is set and is different from the target specified in
sdkconfigor in the build directory, the system will also report an error.
sdkconfigdoesn’t exist, build directory doesn’t exist, and the target is not set via
IDF_TARGET, then the system will use the default value. The default value can be set in
If the target isn’t set using any of the above methods, then the system will build for ESP32 target.
To answer your question:
idf.py set-targetstores the selected target in the project’s build directory and
sdkconfigfile, not in the terminal environment. So, once the project is configured and built once for a certain target, if you switch to a different directory and build another project, then come back, the target will not change, and will be the same as previously set for this project. And it’s not necessary to run
idf.py set-targetagain other than to switch to a different target.
If you want to make the project built for certain target by default, add
sdkconfig.defaultsfile of the project. After this, if
sdkconfigfile doesn’t exist and build directory doesn’t exist, idf.py build command will build for that target specified in
idf.py set-targetcommand can still be used to override the default target set in
How to know the version of ESP-IDF, is it recorded in a certain document?
Command line: You can obtain the version number by inputting
idf.py --versionin the terminal with an IDF environment.
CMake script: You can obtain the version number through the variable
Code compilation: You can obtain the version number by calling
esp_get_idf_versionduring code compilation or directly using the macro definition of version in “components/esp_common/include/esp_idf_version.h”.
How to optimize ESP-IDF compilation in Windows environment?
Please add the directories of ESP-IDF source code and compiler
.espressifto the exclusions of anti-virus program.
Is there an esptool that can be used directly on Windows?
You can go to esptool –> Releases and download the Windows version of the esptool from the Asset column on the drop-down page.
What could be the cause of the error KeyError: ‘idfSelectedId’ when running . /install.sh?
This is because ESP-IDF v5.0 or above is installed on your system. You can check the configuration in the ~/.espressif/idf-env.json file.
This error can be solved by running rm -rf ~/.espressif/idf-env.json.
When running demo, the package manager component dependency cannot be pulled, with the failure information Invaild manifest format, Invalid dependency format, and unknown keys in dependency details: override_path. What could be the reason?
This is due to missing component dependencies and can be solved after updating component-manager. The corresponding command is pip install –upgrade idf-component-manager.