4.2 KiB
Using VSCode
Experimental support for VSCode.
Pre-requisites
- arduino-cli, from https://arduino.github.io/arduino-cli/
- Microsoft VSCode, with the following extensions
- Arduino
- C/C++
- C/C++ Extension Pack
- C/C++ Themes (optional ??)
- Espressif IDF (for compilation problemMatcher, and maybe more??)
Configuration
- Edit the file
.vscode/settings.jsonand modify the following variables to match your development environment:
| Setting name | Description |
|---|---|
| ota-password | Password for Over-The-Air updates |
| ota-host | Hostname or IP address for OTA updates |
| ota-port | Port for OTA updates |
| arduino-esp32-version | Version of Arduino package esp32:esp32 |
| arduino-cli-location | Full path to arduino-cli.exe / arduino-cli |
| arduino-cli-fqbn | ESP32 FQBN, such as esp32:esp32:esp32wrover |
| arduino-cli-compile-flags | Your own define compilation flags, such as -DADD_YOUR_COMPILE_FLAGS |
| arduino-cli-build-output | Arduino build output location, such as ${workspaceFolder}\\build_output |
| arduino-esp32-include | Relative-to-AppData location to ESP32 Arduino include folder root |
| esp-tool-location | Full path to esptool.exe (Windows) / esptool (Linux) |
| cpp-compiler-location | Path to Arduino compiler to use |
Building
Just hit [Ctrl-Alt-b], which is the default keyboard shortcut in VSCode to build a project.
Flashing
To flash / upload the compiled project to the board, Tasks have been defined in tasks.json.
To run a task, hit Ctrl-p [space] and the following Tasks will be available to chose from.
TIP: Find your preferred method, such as OTA Upload, and set a keyboard shortcut such as Ctrl-Alt-9 which is unused by VSCode by default.
| Task name | Description |
|---|---|
| Compile | Same as hitting [Ctrl-Alt-b] or Verify in Arduino IDE |
| COM Upload App only | Upload via UART, but only the application binary (faster, but not always 100% working), not sure why. |
| COM Upload with partitions | Upload all partitions via UART, including the app. Stable method to upload via USB. |
| OTA Upload | Over The Air Upload. Stable. |
Known Issues
arduino-cli.yaml
It is unclear whether the content of this file has any impact whatsoever.
Defines specific to boards
At the moment, .vscode\c_cpp_properties.json contains a massive defines array which was automatically generated by the Arduino VSCode Extension itself, for my board only.
You may have to replace the array with the values respective to your own ESP32 board.
Intellisense
There seems to be variable replacement issues with Intellisense.
At the moment, in .vscode\c_cpp_properties.json, trying to replace this:
"arduino-esp32-version": "2.0.14",
"arduino-esp32-location" : "Arduino15\\packages\\esp32",
"arduino-esp32-include" : "Arduino15\\packages\\esp32\\hardware\\esp32\\${config:arduino-esp32-version}",
with a more simplied version such as this:
"arduino-esp32-version": "2.0.14",
"arduino-esp32-location" : "Arduino15\\packages\\esp32",
"arduino-esp32-include" : "${config:arduino-esp32-location}\\hardware\\esp32\\${config:arduino-esp32-version}",
.. in order to reuse arduino-esp32-location in other configuration values will result in Intellisense not finding, among others, Arduino.h.
Folder name must match .ino filename
While it would make sense to rename src.ino to something like HomeSpanDemo.ino, doing so will fail in
building the project. An error like the following will occur:
Can't open sketch: main file missing from sketch: C:\Users\JohnDoe\Documents\HomeSpan\src\src.ino
There seems to be a limitation where the .ino base filename has to match the folder name it is in.
Meaning if we'd want to use HomeSpanDemo.ino, the folder name the file is in would have to be
renamed from src\ to HomeSpanDemo\.