diff --git a/CHANGELOG.md b/CHANGELOG.md index 7eee0c938..448af8ae4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,31 @@ All notable changes to the "Espressif IDF" extension will be documented in this file. +## [1.8.0](https://github.com/espressif/vscode-esp-idf-extension/releases/tag/v1.8.0) + +### Features and enhancements + +- [Add button to enable custom partition when calling Partition table editor](https://github.com/espressif/vscode-esp-idf-extension/pull/1160) +- [Add ESP-IDF version switcher](https://github.com/espressif/vscode-esp-idf-extension/pull/1173) +- [Translation using l10n vscode api, remove gulp files](https://github.com/espressif/vscode-esp-idf-extension/pull/1178) +- [Add Eclipse CDT Debug Adapter and update debugging documentation](https://github.com/espressif/vscode-esp-idf-extension/pull/1131) +- [Add Chip Id in port selection](https://github.com/espressif/vscode-esp-idf-extension/pull/1195) +- [Add idf.py reconfigure task as extension command](https://github.com/espressif/vscode-esp-idf-extension/pull/1198) +- [Add white spaces support for IDF_PATH and extension tasks](https://github.com/espressif/vscode-esp-idf-extension/pull/1159) +- [Add Hints viewers bar and code editor highlight](https://github.com/espressif/vscode-esp-idf-extension/pull/1225) +- [Add docs espressif files and workflow](https://github.com/espressif/vscode-esp-idf-extension/pull/1226) + +### Bug Fixes + +- [Avoid saveDefSdkconfig in all menu items](https://github.com/espressif/vscode-esp-idf-extension/pull/1171) Thanks @ArcticLampyrid +- [Add clarity to flash placeholder text](https://github.com/espressif/vscode-esp-idf-extension/pull/1142) +- [Fix output channel interrupt](https://github.com/espressif/vscode-esp-idf-extension/pull/1174) +- [Fix github tags to retrieve up to 100 tags](https://github.com/espressif/vscode-esp-idf-extension/pull/1196) +- [Fix and update devcontainer json mount and python setting](https://github.com/espressif/vscode-esp-idf-extension/pull/1200) +- [Add no ports validation](https://github.com/espressif/vscode-esp-idf-extension/pull/1204) +- [Update blink example reference in docs](https://github.com/espressif/vscode-esp-idf-extension/pull/1188) Thanks @kowyo +- [Consistent ESP Component Registry URL](https://github.com/espressif/vscode-esp-idf-extension/pull/1206) Thanks @XDanielPaul + ## [1.7.1](https://github.com/espressif/vscode-esp-idf-extension/releases/tag/v1.7.1) ### Features and enhancements diff --git a/README.md b/README.md index 18ebe1830..7b2fd3aeb 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,81 @@ Develop, build, flash, monitor, [debug](./docs/DEBUGGING.md) and [more](./docs/F Make sure to review our [documentation](./docs/ONBOARDING.md) first to properly use the extension. +# How to use + +1. Download and install [Visual Studio Code](https://code.visualstudio.com/). + +2. Install ESP-IDF system requirements for your operating system: + +- Requirements for [Linux](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/linux-setup.html#install-prerequisites) +- Requirements for [MacOS](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/macos-setup.html#install-prerequisites) +- For Windows the [C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools) might be required. + +3. In Visual Studio Code, Open the **Extensions** view by clicking on the Extension icon in the Activity Bar on the side of Visual Studio Code or the **View: Extensions** command (shortcut: ⇧ ⌘ X or Ctrl+Shift+X. + +4. Search for [ESP-IDF Extension](https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension). + +5. Install the extension. + +6. (OPTIONAL) Press F1 and type **ESP-IDF: Select where to Save Configuration Settings**, which can be User Settings (global), Workspace Settings or Workspace Folder Settings. Default is User settings. + + > **NOTE:** Please take a look at [Working with multiple projects](./docs/MULTI_PROJECTS.md) for more information. + +7. In Visual Studio Code, select menu "View" and "Command Palette" and type `configure esp-idf extension`. After, choose the **ESP-IDF: Configure ESP-IDF Extension** option. You can also choose where to save settings in the setup wizard. + > **NOTE:** For versions of ESP-IDF < 5.0, spaces are not supported inside configured paths. + +
+ +
+ +8. Choose **Express** and select the download server: + +- Espressif: Faster speed in China using Espressif Download servers links. +- Github: Using github releases links. + +9. Pick an ESP-IDF version to download or the `find ESP-IDF in your system` option to search for existing ESP-IDF directory. + +10. Choose the location for ESP-IDF Tools (also known as `IDF_TOOLS_PATH`) which is `$HOME\.espressif` on MacOS/Linux and `%USERPROFILE%\.espressif` on Windows by default. + +11. If your operating system is Linux or MacOS, choose the python executable to create ESP-IDF virtual environment. + + > **NOTE:** Windows users don't need to select a python executable since it is part of the setup. + > **NOTE:** Make sure that `IDF_TOOLS_PATH` doesn't have any spaces to avoid any build issues. Also make sure that `IDF_TOOLS_PATH` is not the same directory as `IDF_PATH`. + +12. The user will see a page showing the setup progress status showing ESP-IDF download progress, ESP-IDF Tools download and install progress as well as the creation of a python virtual environment. + +13. If everything is installed correctly, the user will see a message that all settings have been configured. You can start using the extension. Otherwise check the [Troubleshooting](#Troubleshooting) section if you have any issues. + +14. Press F1 and type **ESP-IDF: Show Examples Projects** to create a new project from ESP-IDF examples. Select ESP-IDF and choose an example to create a new project from. + +15. (OPTIONAL) Configure the `.vscode/c_cpp_properties.json` as explained in [C/C++ Configuration](./docs/C_CPP_CONFIGURATION.md). + +> **Note:** For code navigation the [Microsoft C/C++ Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) or [Clangd extension](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd) can be used for C/C++ language support. By default, projects created with **ESP-IDF: Create Project from Extension Template** or **ESP-IDF: Show Examples Projects** include a template for Microsoft C/C++ extension `c_cpp_properties.json` configuration file and doesn't need to be configured. Run **ESP-IDF: Run idf.py reconfigure task** to generate the compile_commands.json file so language support works. + +16. Set the serial port of your device by pressing F1, typing **ESP-IDF: Select Port to Use:** and choosing the serial port your device is connected. + +17. Select an Espressif target (esp32, esp32s2, etc.) with the **ESP-IDF: Set Espressif Device Target** command. + +18. Use the **ESP-IDF: Select OpenOCD Board Configuration** to choose the openOCD configuration files for the extension openOCD server. + +19. Next configure your ESP-IDF project by pressing F1 and typing **ESP-IDF: SDK Configuration Editor** command (CTRL E G keyboard shortcut ) where the user can modify the ESP-IDF project settings. After all changes are made, click save and close this window. + +20. When you are ready, build your project by pressing F1 and typing **ESP-IDF: Build your Project**. + +21. Flash to your device by pressing F1 and typing **ESP-IDF: Select Flash Method and Flash** to select either `UART`, `DFU` or `JTAG` depending on your serial connection. + +> **NOTE:** You can also use the **ESP-IDF: Flash (UART) your Project** or **ESP-IDF: Flash (with JTag)** directly. + +22. Start a monitor by pressing F1 and typing **ESP-IDF: Monitor Device** which will log the device activity in a Visual Studio Code terminal. + +23. To make sure you can debug your device, select your board configuration by pressing F1 and typing **ESP-IDF: Select OpenOCD Board Configuration**. You can test the connection by pressing F1 and typing **ESP-IDF: OpenOCD Manager**. The output is shown in the menu `View` -> `Output` and choose `ESP-IDF` from the dropdown list. + + > **NOTE:** The user can start or stop the OpenOCD from Visual Studio Code using the **ESP-IDF: OpenOCD Manager** command or from the `OpenOCD Server (Running | Stopped)` button in the visual studio code status bar. + +24. If you want to start a debug session, just press `F5` (make sure you had at least build, flash and openOCD is connecting correctly so the debugger works correctly). + +Check the [Troubleshooting](#Troubleshooting) section if you have any issues. + # Tutorials 1. [Install and setup the extension](./docs/tutorial/install.md). @@ -46,124 +121,446 @@ Check all the tutorials [here](./docs/tutorial/toc.md). Check all the [documentation](./docs/ONBOARDING.md). -# How to use - -- Download and install [Visual Studio Code](https://code.visualstudio.com/). -- Then - - Either open Visual Studio Code and create a workspace folder. - - Run `code ${YOUR_PROJECT_DIR}` from a command line terminal. -- Install this extension in your Visual Studio Code. - -There are few dependencies required in your system and available in environment variable PATH before installing this extension. Please review the following documentation. - -- Requirements for [Linux](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/linux-setup.html#install-prerequisites) -- Requirements for [MacOS](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/macos-setup.html#install-prerequisites) -- For Windows the [C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools) might be required. - -Install ESP-IDF and ESP-IDF Tools by following the [install tutorial](./docs/tutorial/install.md). - -> **NOTE:** Please note that this extension **only [supports](https://github.com/espressif/esp-idf/blob/master/SUPPORT_POLICY.md)** the release versions of ESP-IDF, you can use the extension on `master` branch or other branch, but certain features might not properly work. - -> **NOTE:** If you are using Windows Subsystem for Linux (WSL) 2, please take a look at the [WSL tutorial](docs/tutorial/wsl.md) for an step by step instruction or check the requirements in [WSL Documentation](./docs/WSL.md) needed in the WSL distribution. - -- (OPTIONAL) Press F1 and type **ESP-IDF: Select where to Save Configuration Settings**, which can be User settings, Workspace settings or workspace folder settings. - - > **NOTE:** Please take a look at [Working with multiple projects](./docs/MULTI_PROJECTS.md) for more information. Default is User settings. - -- On the first time using the extension, press F1 to show the Visual Studio Code Command Palette and type **ESP-IDF: Configure ESP-IDF extension** to open the extension configuration wizard. This will install ESP-IDF, ESP-IDF tools, create a virtual python environment with ESP-IDF and this extension python packages and configure the extension settings with these values. - - > **NOTE:** For versions of ESP-IDF < 5.0, spaces are not supported inside configured paths. - - > **NOTE:** Please take a look at [Install tutorial](./docs/tutorial/install.md) documentation or the [Setup documentation](./docs/SETUP.md) for details about extension setup and configuration. - -- Press F1 and type **ESP-IDF: Show Examples Projects** to create a new project from ESP-IDF examples. - -- Configure the `.vscode/c_cpp_properties.json` as explained in [C/C++ Configuration](./docs/C_CPP_CONFIGURATION.md). There is a default configuration that should work when you create a new project with the extension commands but you might want to modify it to your needs. - - > **Note:** For code navigation the [Microsoft C/C++ Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) or [Clangd extension](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd) can be used to resolve header/source links. By default, projects created with **ESP-IDF: Create Project from Extension Template** or **ESP-IDF: Show Examples Projects** include a template for Microsoft C/C++ extension `c_cpp_properties.json` configuration file. This can be optimized by building the project first and configure your project to use `build/compile_commands.json` as explained in [C/C++ Configuration](./docs/C_CPP_CONFIGURATION.md). - -- Do some coding! -- Check you set the correct port of your device by pressing F1, typing **ESP-IDF: Select Port to Use:** and choosing the serial port your device is connected. -- Select an Espressif target (esp32, esp32s2, etc.) with the **ESP-IDF: Set Espressif Device Target** command. -- Use the **ESP-IDF: Select OpenOCD Board Configuration** to choose the openOCD configuration files for the extension openOCD server. -- When you are ready, build your project by pressing F1 and typing **ESP-IDF: Build your Project**. -- Flash to your device by pressing F1 and typing **ESP-IDF: Select Flash Method and Flash** to select either UART or JTAG. You can also use the **ESP-IDF: Flash (UART) your Project** or **ESP-IDF: Flash (with JTag)** directly. - > **NOTE:** When using the **ESP-IDF: Select Flash Method and Flash** command, your choice will be saved in the `idf.flashType` configuration setting in the current workspace folder's settings.json. -- You can later start a monitor by pressing F1 and typing **ESP-IDF: Monitor Device** which will log the device activity in a Visual Studio Code terminal. -- To make sure you can debug your device, select the your board by pressing F1 and typing **ESP-IDF: Select OpenOCD Board Configuration** or manually define the openOCD configuration files with `idf.openOcdConfigs` configuration in your settings.json. -- If you want to start a debug session, just press F5 (make sure you had at least build and flash once before so the debugger works correctly). Check the [Troubleshooting](./README.md#Troubleshooting) section if you have any issues. - # Available commands -Click F1 to show Visual studio code actions, then type **ESP-IDF** to see possible actions. - -| Command Description | Keyboard Shortcuts (Mac) | Keyboard Shortcuts (Windows/ Linux) | -| ------------------------------------------------------- | -------------------------------------- | ----------------------------------------- | -| Add Arduino ESP32 as ESP-IDF Component | | | -| Add Docker Container Configuration | | | -| Add Editor coverage | | | -| Add OpenOCD rules file (For Linux users) | | | -| Add vscode configuration folder | | | -| Build, Flash and start a monitor on your device | ⌘ I D | Ctrl E D | -| Build your project | ⌘ I B | Ctrl E B | -| Clear eFuse Summary | | | -| Clear ESP-IDF Search Results | | | -| Clear Saved ESP-IDF Setups | | | -| Configure ESP-IDF extension | | | -| Configure Paths | | | -| Configure Project SDKConfig for Coverage | | | -| Create project from Extension Template | ⌘ I C | Ctrl E C | -| Create New ESP-IDF Component | | | -| Device configuration | | | -| Dispose Current SDK Configuration Editor Server Process | | | -| Doctor Command | | | -| Encrypt and Flash your Project | | | -| Erase Flash Memory from Device | ⌘ I R | Ctrl E R | -| Execute Custom Task | ⌘ I J | Ctrl E J | -| Flash your project | ⌘ I F | Ctrl E F | -| Flash (DFU) your project | | | -| Flash (UART) your project | | | -| Flash (with JTag) | | | -| Full Clean Project | ⌘ I X | Ctrl E X | -| Get eFuse Summary | | | -| Get HTML Coverage Report for project | | | -| Import ESP-IDF Project | | | -| Install ESP-ADF | | | -| Install ESP-IDF Python Packages | | | -| Install ESP-MDF | | | -| Install ESP-Matter | | | -| Install ESP-Rainmaker | | | -| Install ESP-HomeKit-SDK | | | -| Launch IDF Monitor for CoreDump / GDB-Stub Mode | | | -| Launch QEMU Server | | | -| Launch QEMU Debug Session | | | -| Monitor device | ⌘ I M | Ctrl E M | -| Monitor QEMU Device | | | -| New Project | ⌘ I N | Ctrl E N | -| Open ESP-IDF Terminal | ⌘ I T | Ctrl E T | -| NVS Partition Editor | | | -| Partition Table Editor | | | -| Pick a workspace folder | | | -| Remove Editor coverage | | | -| Run idf.py reconfigure task | | | -| Run ESP-IDF-SBOM vulnerability check | | | -| Save Default SDKCONFIG file (save-defconfig) | | | -| SDK Configuration editor | ⌘ I G | Ctrl E G | -| Search in documentation... | ⌘ I Q | Ctrl E Q | -| Select Flash Method | | | -| Select port to use | ⌘ I P | Ctrl E P | -| Select OpenOCD Board Configuration | | | -| Select where to save configuration settings | | | -| Select output and notification mode | | | -| Set default sdkconfig file in project | | | -| Set Espressif device target | | | -| Set ESP-MATTER Device Path (ESP_MATTER_DEVICE_PATH) | | | -| Show Examples Projects | | | -| Show Ninja Build Summary | | | -| Size analysis of the binaries | ⌘ I S | Ctrl E S | -| Unit Test: Build and flash unit test app for testing | | | -| Unit Test: Install ESP-IDF PyTest requirements | | | -| Search Error Hint | | | +Click F1 to show Visual studio code actions, then type **ESP-IDF** to see all possible actions. + +Category | +Command Description | +Description | +Keyboard Shortcuts (Mac) | +Keyboard Shortcuts (Windows/ Linux) | +
---|---|---|---|---|
Configuration | +Add OpenOCD rules file (For Linux users) | +Add OpenOCD permissions to /etc/udev/rules.d to allow OpenOCD execution. | ++ | + |
Add Docker Container Configuration | +Add the .devcontainer files to the currently opened project directory, necessary to use a ESP-IDF project in a Docker container with Visual Studio Code + Remote - Containers extension | ++ | + | |
Add vscode configuration folder | +Add .vscode files to the currently opened project directory. These include launch.json (for debugging), settings.json and c_cpp_properties.json for syntax highlight. | ++ | + | |
Configure ESP-IDF extension | +Open a window with a setup wizard to install ESP-IDF, IDF Tools and python virtual environment. | ++ | + | |
Select output and notification mode | +This extension shows many notifications and output in the Output window ESP-IDF. This command allows the user to set if to show notifications, show output, both or none of them. | ++ | + | |
Select where to save configuration settings | +In Visual Studio Code settings can be saved in 3 places: User Settings (global settings), workspace ( .code-workspace file) or workspace folder (.vscode/settings.json). + More information in working with multiple projects. | ++ | + | |
Pick a workspace folder | +when using a Visual Studio Code workspace with multiple workspace folders, this command allow you to select which workspace folder to use for this extension commands. + More information in working with multiple projects. | ++ | + | |
Basic | +Show Examples Projects | +Launch UI to show examples from selected framework and allow the user to create a project from them. This command will show frameworks already configured in the extension so if + you want to see ESP-Rainmaker examples you need to run the Install ESP-Rainmaker first (or set the equivalent setting idf.espRainmakerPath) and then execute this command to see the examples. | ++ | + |
Set Espressif device target | +This will set the target for the current project (IDF_TARGET). Similar to idf.py set-target. For example if you want to use ESP32 or ESP32-C3 you need to execute this command. | ++ | + | |
SDK Configuration editor | +Launch a UI to configure your ESP-IDF project settings. This is equivalent to idf.py menuconfig | +⌘ I G | +Ctrl E G | +|
Build your project | +Build your project using `CMake` and `Ninja-build` as explained in ESP-IDF Build System Using Cmake Directly. You could modify the behavior of the build task with idf.cmakeCompilerArgs for Cmake configure step and idf.ninjaArgs for Ninja step. For example, using [-j N] where N is the number of jobs run in parallel. | +⌘ I B | +Ctrl E B | +|
Size analysis of the binaries | +Launch UI with the ESP-IDF project binaries size information. | +⌘ I S | +Ctrl E S | +|
Select port to use | +Select which serial port to use for ESP-IDF tasks like flashing or monitor your device. | +⌘ I P | +Ctrl E P | +|
Flash your project | +Write binary data to the ESP’s flash chip from your current ESP-IDF project. This command will use either UART, DFU or JTAG based on idf.flashType | +⌘ I F | +Ctrl E F | +|
Monitor device | +This command will execute idf.py monitor to start serial communication with Espressif device. + Please take a look at the IDF Monitor Documentation. | +⌘ I M | +Ctrl E M | +|
Open ESP-IDF Terminal | +Launch a terminal window configured with extension ESP-IDF settings. Similar to export.sh script from ESP-IDF CLI. | +⌘ I T | +Ctrl E T | +|
Select OpenOCD Board Configuration | +Select the openOCD configuration files that match your Espressif device target. For example if you are using DevKitC or ESP-Wrover-Kit. This is necessary for flashing with JTAG or debugging your device. | ++ | + | |
Build, Flash and start a monitor on your device | +Build the project, write binaries program to device and start a monitor terminal with a single command. Similar to `idf.py build flash monitor` | +⌘ I D | +Ctrl E D | +|
Project creation | +Show Examples Projects | +Launch UI to show examples from selected framework and allow the user to create a project from them. This command will show frameworks already configured in the extension so if + you want to see ESP-Rainmaker examples you need to run the Install ESP-Rainmaker first (or set the equivalent setting idf.espRainmakerPath) and then execute this command to see the examples. | ++ | + |
Create project from Extension Template | +Create ESP-IDF using one of the extension template projects. | +⌘ I C | +Ctrl E C | +|
Create New ESP-IDF Component | +Create a new component in the current directory based on ESP-IDF component template | ++ | + | |
Import ESP-IDF Project | +Import an existing ESP-IDF project and add .vscode and .devcontainer files to a new location and also able to rename the project. | ++ | + | |
New Project | +Launch UI with a ESP-IDF project creation wizard using examples templates from ESP-IDF and additional frameworks configured in the extension. | +⌘ I N | +Ctrl E N | +|
Flashing | +Select Flash Method | +Select which flash method to use for Flash your project command. It can be DFU, JTAG or UART. | ++ | + |
Flash your project | +Write binary data to the ESP’s flash chip from your current ESP-IDF project. This command will use either UART, DFU or JTAG based on idf.flashType | +⌘ I F | +Ctrl E F | +|
Flash (DFU) your project | +Write binary data to the ESP’s flash chip from your current ESP-IDF project using DFU. Only for ESP32-S2 and ESP32-S3. | ++ | + | |
Flash (UART) your project | +Write binary data to the ESP’s flash chip from your current ESP-IDF project using esptool.py | ++ | + | |
Flash (with JTag) | +Write binary data to the ESP’s flash chip from your current ESP-IDF project using OpenOCD JTAG | ++ | + | |
Encrypt and Flash your Project | +Execute flashing the project program to device while adding --encrypt for partitions to be encrypted. | ++ | + | |
Erase Flash Memory from Device | +Execute esptool.py erase_flash command to erase flash chip (set to 0xFF bytes) | +⌘ I R | +Ctrl E R | +|
Code coverage | +Add Editor coverage | +Parse your project GCOV Code coverage files to add color lines + representing code coverage on currently opened source code file | ++ | + |
Configure Project SDKConfig for Coverage | +Set required values in your project SDKConfig to enable Code Coverage | ++ | + | |
Get HTML Coverage Report for project | +Parse your project GCOV Code coverage files to generate a HTML coverage report. | ++ | + | |
Remove Editor coverage | +Remove editor colored lines from Add Editor coverage command | ++ | + | |
Additional frameworks | +Install ESP-ADF | +Clone ESP-ADF inside the selected directory and set idf.espAdfPath (idf.espAdfPathWin in Windows) configuration setting. | ++ | + |
Add Arduino ESP32 as ESP-IDF Component | +Add Arduino-ESP32 as a ESP-IDF component + in your current directory (${CURRENT_DIRECTORY}/components/arduino). | ++ | + | |
Install ESP-IDF Python Packages (DEPRECATION NOTICE) | +Install extension python packages. Deprecated will be removed soon. | ++ | + | |
Install ESP-MDF | +Clone ESP-MDF inside the selected directory and set idf.espMdfPath (idf.espMdfPathWin in Windows) configuration setting. | ++ | + | |
Install ESP-Matter | +Clone ESP-Matter and set idf.espMatterPath. The ESP-IDF: Set ESP-MATTER Device Path (ESP_MATTER_DEVICE_PATH) is used to define the device path for ESP-Matter. ESP-Matter is not supported in Windows. Make sure to install Matter system prerequisites first. | ++ | + | |
Set ESP-MATTER Device Path (ESP_MATTER_DEVICE_PATH) | +The ESP-IDF: Set ESP-MATTER Device Path (ESP_MATTER_DEVICE_PATH) is used to define the device path for ESP-Matter. ESP-Matter is not supported in Windows. | ++ | + | |
Install ESP-Rainmaker | +Clone ESP-Rainmaker and set idf.espRainmakerPath (idf.espRainmakerPathWin in Windows) configuration setting. | ++ | + | |
Install ESP-HomeKit-SDK | +Clone ESP-HomeKit-SDK inside the selected directory and set idf.espHomeKitSdkPath (idf.espHomeKitSdkPathWin in Windows) configuration setting. | ++ | + | |
eFuse | +Get eFuse Summary | +Get list of eFuse and values from currently serial port chip. | ++ | + |
Clear eFuse Summary | +Clear the eFuse Summary tree from ESP Explorer EFUSEEXPLORER | ++ | + | |
QEMU | +Launch QEMU Server | +As described in QEMU documentation this command will execute ESP32 QEMU from the project Dockerfile with the current project binaries. | ++ | + |
Launch QEMU Debug Session | +As described in QEMU documentation this command will start a debug session to ESP32 QEMU from the project Dockerfile with the current project binaries. | ++ | + | |
Monitor QEMU Device | +As described in QEMU documentation this command will start a terminal to monitor the ESP32 QEMU from the project Dockerfile with the current project binaries. | ++ | + | |
Monitoring | +Monitor device | +This command will execute idf.py monitor to start serial communication with Espressif device. + Please take a look at the IDF Monitor Documentation. | +⌘ I M | +Ctrl E M | +
Launch IDF Monitor for CoreDump / GDB-Stub Mode | +Launch ESP-IDF Monitor with websocket capabilities. If the user has configured the panic handler to gdbstub or core dump, the monitor will launch a post mortem debug session of the chip. | ++ | + | |
Monitor QEMU Device | +As described in QEMU documentation this command will start a terminal to monitor the ESP32 QEMU from the project Dockerfile with the current project binaries. | ++ | + | |
Editors | +NVS Partition Editor | +Launch UI to create a CSV file for ESP_IDF Non Volatile Storage | ++ | + |
Partition Table Editor | +Launch UI to manage custom partition table as described in ESP_IDF Partition Table | ++ | + | |
SDK Configuration editor | +Launch a UI to configure your ESP-IDF project settings. This is equivalent to idf.py menuconfig | +⌘ I G | +Ctrl E G | +|
Unit Testing | +Unit Test: Build and flash unit test app for testing | +Copy the unit test app in the current project, build the current project and flash the unit test application to the connected device. More information in Unit testing documentation | ++ | + |
Unit Test: Install ESP-IDF PyTest requirements | +Install the ESP-IDF Pytest requirements packages to be able to execute ESP-IDF Unit tests. More information in | ++ | + | |
Scripts and Tools | +Run idf.py reconfigure task | +This command will execute idf.py reconfigure (CMake configure task). Useful when you need to generate compile_commands.json for the C/C++ language support. | ++ | + |
Erase Flash Memory from Device | +Execute esptool.py erase_flash command to erase flash chip (set to 0xFF bytes) | +⌘ I R | +Ctrl E R | +|
Dispose Current SDK Configuration Editor Server Process | +If you already executed the SDK Configuration editor, a cache process will remain in the background for faster re opening. This command will dispose of such cache process. | ++ | + | |
Doctor Command | +Run a diagnostic of the extension setup settings and extension logs to provide a troubleshooting report. | ++ | + | |
Troubleshoot Form | +Launch UI for user to send a troubleshoot report with steps to reproduce, run a diagnostic of the extension setup settings and extension logs to send to telemetry backend. | ++ | + | |
Run ESP-IDF-SBOM vulnerability check | +Creates Software bill of materials (SBOM) files in the Software Package Data Exchange (SPDX) format for applications generated by the Espressif IoT Development Framework (ESP-IDF). | ++ | + | |
Save Default SDKCONFIG file (save-defconfig) | +Generate sdkconfig.defaults files using the project current sdkconfig file. | ++ | + | |
Show Ninja Build Summary | +Execute the Chromium ninja-build-summary.py | ++ | + | |
Search in documentation... | +Select some text from your source code file and search in ESP-IDF documentation with results right in the vscode ESP-IDF Explorer tab. | +⌘ I Q | +Ctrl E Q | +|
Search Error Hint | +Type some text to find a matching error from ESP-IDF hints dictionary. | ++ | + | |
Clear ESP-IDF Search Results | +Clear results from ESP Explorer Documentation Search Results | ++ | + | |
Clear Saved ESP-IDF Setups | +Clear existing esp-idf setups saved by the extension. | ++ | + |
Command Description | +Description | +Keyboard Shortcuts (Mac) | +Keyboard Shortcuts (Windows/ Linux) | +
---|---|---|---|
Add Arduino ESP32 as ESP-IDF Component | +Add Arduino-ESP32 as a ESP-IDF component + in your current directory (${CURRENT_DIRECTORY}/components/arduino). | ++ | + |
Add Docker Container Configuration | +Add the .devcontainer files to the currently opened project directory, necessary to use a ESP-IDF project in a Docker container with Visual Studio Code + Remote - Containers extension | ++ | + |
Add Editor coverage | +Parse your project GCOV Code coverage files to add color lines + representing code coverage on currently opened source code file | ++ | + |
Add OpenOCD rules file (For Linux users) | +Add OpenOCD permissions to /etc/udev/rules.d to allow OpenOCD execution. | ++ | + |
Add vscode configuration folder | +Add .vscode files to the currently opened project directory. These include launch.json (for debugging), settings.json and c_cpp_properties.json for syntax highlight. | ++ | + |
Build, Flash and start a monitor on your device | +Build the project, write binaries program to device and start a monitor terminal with a single command. Similar to `idf.py build flash monitor` | +⌘ I D | +Ctrl E D | +
Build your project | +Build your project using `CMake` and `Ninja-build` as explained in ESP-IDF Build System Using Cmake Directly. You could modify the behavior of the build task with idf.cmakeCompilerArgs for Cmake configure step and idf.ninjaArgs for Ninja step. For example, using [-j N] where N is the number of jobs run in parallel. | +⌘ I B | +Ctrl E B | +
Clear eFuse Summary | +Clear the eFuse Summary tree from ESP Explorer EFUSEEXPLORER | ++ | + |
Clear ESP-IDF Search Results | +Clear results from ESP Explorer Documentation Search Results | ++ | + |
Clear Saved ESP-IDF Setups | +Clear existing esp-idf setups saved by the extension. | ++ | + |
Configure ESP-IDF extension | +Open a window with a setup wizard to install ESP-IDF, IDF Tools and python virtual environment. | ++ | + |
Configure Project SDKConfig for Coverage | +Set required values in your project SDKConfig to enable Code Coverage | ++ | + |
Create project from Extension Template | +Create ESP-IDF using one of the extension template projects. | +⌘ I C | +Ctrl E C | +
Create New ESP-IDF Component | +Create a new component in the current directory based on ESP-IDF component template | ++ | + |
Dispose Current SDK Configuration Editor Server Process | +If you already executed the SDK Configuration editor, a cache process will remain in the background for faster re opening. This command will dispose of such cache process. | ++ | + |
Doctor Command | +Run a diagnostic of the extension setup settings and extension logs to provide a troubleshooting report. | ++ | + |
Troubleshoot Form | +Launch UI for user to send a troubleshoot report with steps to reproduce, run a diagnostic of the extension setup settings and extension logs to send to telemetry backend. | ++ | + |
Encrypt and Flash your Project | +Execute flashing the project program to device while adding --encrypt for partitions to be encrypted. | ++ | + |
Erase Flash Memory from Device | +Execute esptool.py erase_flash command to erase flash chip (set to 0xFF bytes) | +⌘ I R | +Ctrl E R | +
Execute Custom Task | +User can define a command line command or script in idf.customTask which can be executed with this command. | +⌘ I J | +Ctrl E J | +
Flash your project | +Write binary data to the ESP’s flash chip from your current ESP-IDF project. This command will use either UART, DFU or JTAG based on idf.flashType | +⌘ I F | +Ctrl E F | +
Flash (DFU) your project | +Write binary data to the ESP’s flash chip from your current ESP-IDF project using DFU. Only for ESP32-S2 and ESP32-S3. | ++ | + |
Flash (UART) your project | +Write binary data to the ESP’s flash chip from your current ESP-IDF project using esptool.py | ++ | + |
Flash (with JTag) | +Write binary data to the ESP’s flash chip from your current ESP-IDF project using OpenOCD JTAG | ++ | + |
Full Clean Project | +Delete the current ESP-IDF project build directory. | +⌘ I X | +Ctrl E X | +
Get eFuse Summary | +Get list of eFuse and values from currently serial port chip. | ++ | + |
Get HTML Coverage Report for project | +Parse your project GCOV Code coverage files to generate a HTML coverage report. | ++ | + |
Import ESP-IDF Project | +Import an existing ESP-IDF project and add .vscode and .devcontainer files to a new location and also able to rename the project. | ++ | + |
Install ESP-ADF | +Clone ESP-ADF inside the selected directory and set idf.espAdfPath (idf.espAdfPathWin in Windows) configuration setting. | ++ | + |
Install ESP-IDF Python Packages (DEPRECATION NOTICE) | +Install extension python packages. Deprecated will be removed soon. | ++ | + |
Install ESP-MDF | +Clone ESP-MDF inside the selected directory and set idf.espMdfPath (idf.espMdfPathWin in Windows) configuration setting. | ++ | + |
Install ESP-Matter | +Clone ESP-Matter and set idf.espMatterPath. The ESP-IDF: Set ESP-MATTER Device Path (ESP_MATTER_DEVICE_PATH) is used to define the device path for ESP-Matter. ESP-Matter is not supported in Windows. | ++ | + |
Install ESP-Rainmaker | +Clone ESP-Rainmaker and set idf.espRainmakerPath (idf.espRainmakerPathWin in Windows) configuration setting. | ++ | + |
Install ESP-HomeKit-SDK | +Clone ESP-HomeKit-SDK inside the selected directory and set idf.espHomeKitSdkPath (idf.espHomeKitSdkPathWin in Windows) configuration setting. | ++ | + |
Launch IDF Monitor for CoreDump / GDB-Stub Mode | +Launch ESP-IDF Monitor with websocket capabilities. If the user has configured the panic handler to gdbstub or core dump, the monitor will launch a post mortem debug session of the chip. | ++ | + |
Launch QEMU Server | +As described in QEMU documentation this command will execute ESP32 QEMU from the project Dockerfile with the current project binaries. | ++ | + |
Launch QEMU Debug Session | +As described in QEMU documentation this command will start a debug session to ESP32 QEMU from the project Dockerfile with the current project binaries. | ++ | + |
Monitor device | +This command will execute idf.py monitor to start serial communication with Espressif device. + Please take a look at the IDF Monitor Documentation. | +⌘ I M | +Ctrl E M | +
Monitor QEMU Device | +As described in QEMU documentation this command will start a terminal to monitor the ESP32 QEMU from the project Dockerfile with the current project binaries. | ++ | + |
New Project | +Launch UI with a ESP-IDF project creation wizard using examples templates from ESP-IDF and additional frameworks configured in the extension. | +⌘ I N | +Ctrl E N | +
Open ESP-IDF Terminal | +Launch a terminal window configured with extension ESP-IDF settings. Similar to export.sh script from ESP-IDF CLI. | +⌘ I T | +Ctrl E T | +
NVS Partition Editor | +Launch UI to create a CSV file for ESP_IDF Non Volatile Storage | ++ | + |
Partition Table Editor | +Launch UI to manage custom partition table as described in ESP_IDF Partition Table | ++ | + |
Pick a workspace folder | +when using a Visual Studio Code workspace with multiple workspace folders, this command allow you to select which workspace folder to use for this extension commands. + More information in working with multiple projects. | ++ | + |
Remove Editor coverage | +Remove editor colored lines from Add Editor coverage command | ++ | + |
Run idf.py reconfigure task | +This command will execute idf.py reconfigure (CMake configure task). Useful when you need to generate compile_commands.json for the C/C++ language support. | ++ | + |
Run ESP-IDF-SBOM vulnerability check | +Creates Software bill of materials (SBOM) files in the Software Package Data Exchange (SPDX) format for applications generated by the Espressif IoT Development Framework (ESP-IDF). | ++ | + |
Save Default SDKCONFIG file (save-defconfig) | +Generate sdkconfig.defaults files using the project current sdkconfig file. | ++ | + |
SDK Configuration editor | +Launch a UI to configure your ESP-IDF project settings. This is equivalent to idf.py menuconfig | +⌘ I G | +Ctrl E G | +
Search in documentation... | +Select some text from your source code file and search in ESP-IDF documentation with results right in the vscode ESP-IDF Explorer tab. | +⌘ I Q | +Ctrl E Q | +
Search Error Hint | +Type some text to find a matching error from ESP-IDF hints dictionary. | ++ | + |
Select Flash Method | +Select which flash method to use for Flash your project command. It can be DFU, JTAG or UART. | ++ | + |
Select port to use | +Select which serial port to use for ESP-IDF tasks like flashing or monitor your device. | +⌘ I P | +Ctrl E P | +
Select OpenOCD Board Configuration | +Select the openOCD configuration files that match your Espressif device target. For example if you are using DevKitC or ESP-Wrover-Kit. This is necessary for flashing with JTAG or debugging your device. | ++ | + |
Select where to save configuration settings | +In Visual Studio Code settings can be saved in 3 places: User Settings (global settings), workspace ( .code-workspace file) or workspace folder (.vscode/settings.json). + More information in working with multiple projects. | ++ | + |
Select output and notification mode | +This extension shows many notifications and output in the Output window ESP-IDF. This command allows the user to set if to show notifications, show output, both or none of them. | ++ | + |
Set Espressif device target | +This will set the target for the current project (IDF_TARGET). Similar to idf.py set-target. For example if you want to use ESP32 or ESP32-C3 you need to execute this command. | ++ | + |
Set ESP-MATTER Device Path (ESP_MATTER_DEVICE_PATH) | +The ESP-IDF: Set ESP-MATTER Device Path (ESP_MATTER_DEVICE_PATH) is used to define the device path for ESP-Matter. ESP-Matter is not supported in Windows. | ++ | + |
Show Examples Projects | +Launch UI to show examples from selected framework and allow the user to create a project from them. This command will show frameworks already configured in the extension so if + you want to see ESP-Rainmaker examples you need to run the Install ESP-Rainmaker first (or set the equivalent setting idf.espRainmakerPath) and then execute this command to see the examples. | ++ | + |
Show Ninja Build Summary | +Execute the Chromium ninja-build-summary.py | ++ | + |
Size analysis of the binaries | +Launch UI with the ESP-IDF project binaries size information. | +⌘ I S | +Ctrl E S | +
Unit Test: Build and flash unit test app for testing | +Copy the unit test app in the current project, build the current project and flash the unit test application to the connected device. More information in Unit testing documentation | ++ | + |
Unit Test: Install ESP-IDF PyTest requirements | +Install the ESP-IDF Pytest requirements packages to be able to execute ESP-IDF Unit tests. More information in | ++ | + |