{"id":15698361,"url":"https://github.com/Microsoft/vscode-arduino","last_synced_at":"2025-10-14T14:30:52.151Z","repository":{"id":37483551,"uuid":"77013141","full_name":"microsoft/vscode-arduino","owner":"microsoft","description":"Visual Studio Code extension for Arduino","archived":true,"fork":false,"pushed_at":"2024-10-01T17:06:24.000Z","size":10508,"stargazers_count":1189,"open_issues_count":297,"forks_count":244,"subscribers_count":59,"default_branch":"main","last_synced_at":"2025-10-10T00:14:06.358Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/microsoft.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-12-21T03:39:11.000Z","updated_at":"2025-10-04T16:37:28.000Z","dependencies_parsed_at":"2023-12-01T22:26:49.383Z","dependency_job_id":"d37c6468-e397-4daa-a5b9-128dc3aba2bd","html_url":"https://github.com/microsoft/vscode-arduino","commit_stats":null,"previous_names":[],"tags_count":124,"template":false,"template_full_name":null,"purl":"pkg:github/microsoft/vscode-arduino","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fvscode-arduino","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fvscode-arduino/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fvscode-arduino/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fvscode-arduino/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microsoft","download_url":"https://codeload.github.com/microsoft/vscode-arduino/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fvscode-arduino/sbom","scorecard":{"id":643544,"data":{"date":"2025-08-11","repo":{"name":"github.com/microsoft/vscode-arduino","commit":"23ed54b7a39ad1ceaf34ac303e18dce8c1f53a47"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.5,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/microsoft/vscode-arduino/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/microsoft/vscode-arduino/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/microsoft/vscode-arduino/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:92: update your workflow using https://app.stepsecurity.io/secureworkflow/microsoft/vscode-arduino/build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/microsoft/vscode-arduino/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/fixed-issues.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/microsoft/vscode-arduino/fixed-issues.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/stale-issues.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/microsoft/vscode-arduino/stale-issues.yml/main?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/build.yml:74","Warn: npmCommand not pinned by hash: .github/workflows/build.yml:76","Warn: npmCommand not pinned by hash: .github/workflows/build.yml:78","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   3 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":0,"reason":"46 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-4gmj-3p3h-gm8h","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-2j2x-2gpw-g8fm","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-pq67-2wwv-3xjx","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-c76h-2ccp-4975","Warn: Project is vulnerable to: GHSA-cxrh-j4jr-qwg3","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7","Warn: Project is vulnerable to: GHSA-pfq8-rq6v-vf5m","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-r683-j2x4-v87g","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-7mwh-4pqv-wmr8","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T11:27:00.077Z","repository_id":37483551,"created_at":"2025-08-21T11:27:00.077Z","updated_at":"2025-08-21T11:27:00.077Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279019119,"owners_count":26086680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T19:26:19.763Z","updated_at":"2025-10-14T14:30:51.714Z","avatar_url":"https://github.com/microsoft.png","language":"TypeScript","funding_links":[],"categories":["Arduino Tools","Tools"],"sub_categories":["Mesh networks"],"readme":"# Visual Studio Code extension for Arduino (deprecated)\n\n\u003e ⚠️ **Warning** ⚠️\n\u003e\n\u003e # This extension is deprecated and no longer maintained. We recommend existing customers to use the [Arduino IDE software](https://www.arduino.cc/en/software). \n\u003e # This extension will no longer be available on the marketplace as of 10/1/2024, please see [details here](https://github.com/microsoft/vscode-arduino/issues/1760).\n\n[![Gitter](https://img.shields.io/badge/chat-on%20gitter-blue.svg)](https://gitter.im/Microsoft/vscode-arduino)\n\nWelcome to the Visual Studio Code extension for **Arduino** \u003csup\u003epreview\u003c/sup\u003e ! The Arduino extension makes it easy to develop, build, and deploy your Arduino sketches in Visual Studio Code, with a rich set of functionalities. These include:\n\n* IntelliSense and syntax highlighting for Arduino sketches\n* Verify and upload your sketches in Visual Studio Code\n* Built-in board and library manager\n* Built-in example list\n* Built-in serial monitor\n* Snippets for sketches\n* Automatic Arduino project scaffolding\n* Command Palette (\u003ckbd\u003eF1\u003c/kbd\u003e) integration of frequently used commands (e.g. Verify, Upload...)\n\n## Prerequisites\nEither the legacy Arduino IDE or Arduino CLI are required. The recommended\napproach is to use the version of Arduino CLI that comes bundled with the\nextension, which works out of the box. Support for the legacy Arduino IDE will\nbe removed in a future version of the extension.\n\n### Arduino CLI\nTo use the bundled version of Arduino CLI, `arduino.useArduinoCli` should be `true`,\nand `arduino.path` and `arduino.commandPath` should be empty or unset.\n`arduino.useArduinoCli` defaults to `false` while we deprecate support for the\nArduino IDE, but there will be a prompt when the extension first activates to\nswitch to the Arduino CLI.\n\nIf you want to use a custom version of Arduino CLI, it can be downloaded from\nthe repository's [release page](https://github.com/arduino/arduino-cli/releases/).\nFor custom versions, `arduino.path` must be set to the directory containing the\nArduino CLI executable.\n\n### Legacy Arduino IDE\nUse of the legacy Arduino IDE is not recommended, and support for the legacy\nArduino IDE will be removed in a future version of the extension. The legacy\nArduino IDE can be installed from the Arduino [download page](https://www.arduino.cc/en/main/software#download).\n- The supported legacy Arduino IDE versions are `1.6.x` and up to, but not including, `2.0.0`.\n- The Windows Store's version of the Arduino IDE is not supported because of the sandbox environment that the application runs in.\n- *Note:* Arduino IDE `1.8.7` had some breaking changes, causing board package and library installation failures.  These failures were corrected in `1.8.8` and later.\n- *Note:* Arduino IDE `2.X.Y` is not supported and there are no plans for support in the future ([issue 1477](https://github.com/microsoft/vscode-arduino/issues/1477)).\n\n## Installation\nOpen VS Code and press \u003ckbd\u003eF1\u003c/kbd\u003e or \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003eP\u003c/kbd\u003e *or* \u003ckbd\u003eCmd\u003c/kbd\u003e + \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003eP\u003c/kbd\u003e to open command palette, select **Install Extension** and type `vscode-arduino`.\n\nOr launch VS Code Quick Open (\u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eP\u003c/kbd\u003e *or* \u003ckbd\u003eCmd\u003c/kbd\u003e + \u003ckbd\u003eP\u003c/kbd\u003e ), paste the following command, and press enter.\n```bash\next install vscode-arduino\n```\n\nYou can also install directly from the Marketplace within Visual Studio Code, searching for `Arduino`.\n\n## Get Started\nYou can find code samples and tutorials each time that you connect a supported device. Alternatively you can visit our [IoT Developer Blog Space](https://devblogs.microsoft.com/iotdev/) or [Get Started Tutorials](https://docs.microsoft.com/azure/iot-hub/iot-hub-arduino-iot-devkit-az3166-get-started).\n\n## Commands\nThis extension provides several commands in the Command Palette (\u003ckbd\u003eF1\u003c/kbd\u003e or \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003eP\u003c/kbd\u003e *or* \u003ckbd\u003eCmd\u003c/kbd\u003e + \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003eP\u003c/kbd\u003e) for working with `*.ino` files:\n\n- **Arduino: Board Manager**: Manage packages for boards. You can add 3rd party Arduino board by configuring `Additional Board Manager URLs` in the board manager.\n- **Arduino: Change Board Type**: Change board type or platform.\n- **Arduino: Change Timestamp Format**: Change format of timestamp printed before each line of Serial Monitor output.\n- **Arduino: Close Serial Monitor**: Stop the serial monitor and release the serial port.\n- **Arduino: Examples**: Show list of examples.\n- **Arduino: Initialize**: Scaffold a VS Code project with an Arduino sketch.\n- **Arduino: Library Manager**: Explore and manage libraries.\n- **Arduino: Open Serial Monitor**: Open the serial monitor in the integrated output window.\n- **Arduino: Select Serial Port**: Change the current serial port.\n- **Arduino: Upload**: Build sketch and upload to Arduino board.\n- **Arduino: CLI Upload**: Upload complied code without building sketch (CLI only).\n- **Arduino: Upload Using Programmer**: Upload using an external programmer.\n- **Arduino: CLI Upload Using Programmer**: Upload using an external programmer without building sketch (CLI only).\n- **Arduino: Verify**: Build sketch.\n- **Arduino: Rebuild IntelliSense Configuration**: Forced/manual rebuild of the IntelliSense configuration. The extension analyzes Arduino's build output and sets the IntelliSense include paths, defines, compiler arguments accordingly.\n\n## Keybindings\n- **Arduino: Upload** \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003eCmd\u003c/kbd\u003e + \u003ckbd\u003eU\u003c/kbd\u003e *or* \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eU\u003c/kbd\u003e\n- **Arduino: Verify** \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003eCmd\u003c/kbd\u003e + \u003ckbd\u003eR\u003c/kbd\u003e *or* \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eR\u003c/kbd\u003e\n- **Arduino: Rebuild IntelliSense Configuration** \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003eCmd\u003c/kbd\u003e + \u003ckbd\u003eI\u003c/kbd\u003e *or* \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eI\u003c/kbd\u003e\n\n## Options\n| Option | Description |\n| --- | --- |\n| `arduino.useArduinoCli` | Whether to use the Arduino CLI (`true`) or the legacy Arduino IDE (`false`) -- defaults to `false`. If using `true`, either leave the `arduino.path` and `arduino.commandPath` values unset to use the bundled version of Arduino CLI, or point them at a custom version of Arduino CLI. Note that a future version of the extension will change this default to `true` and remove support for legacy Arduino IDE. |\n| `arduino.path`  | Path to the Arduino installation.  You can use a custom version of Arduino by modifying this setting to include the full path. Example: `C:\\\\Program Files\\\\Arduino` for Windows, `/Applications` for Mac, `/home/\u003cusername\u003e/Downloads/arduino-1.8.1` for Linux. (Requires a restart after change). The default value is automatically detected from your legacy Arduino IDE installation path. To use the Arduino CLI, use the path that contains the `arduino-cli` executable (e.g. `/usr/local/bin`), or leave it unset to use the bundled version of Arduino CLI. |\n| `arduino.commandPath` | Path to an executable (or script) relative to `arduino.path`. The default value is `arduino_debug.exe` for Windows, `Contents/MacOS/Arduino` for Mac and `arduino` for Linux, You also can use a custom launch script to run Arduino by modifying this setting. (Requires a restart after change) Example: `run-arduino.bat` for Windows, `Contents/MacOS/run-arduino.sh` for Mac and `bin/run-arduino.sh` for Linux. To use the bundled version of Arduino CLI, leave this option unset. To use a custom version of Arduino CLI, use `arduino-cli`. |\n| `arduino.additionalUrls` | Additional Boards Manager URLs for 3rd party packages as a string array. The default value is empty. |\n| `arduino.logLevel` | CLI output log level. Could be info or verbose. The default value is `\"info\"`. |\n| `arduino.clearOutputOnBuild` | Clear the output logs before uploading or verifying. Default value is `false`. |\n| `arduino.allowPDEFiletype` | Allow the VSCode Arduino extension to open .pde files from pre-1.0.0 versions of Arduino. Note that this will break Processing code. Default value is `false`. | \n| `arduino.enableUSBDetection` | Enable/disable USB detection from the VSCode Arduino extension. The default value is `true`. When your device is plugged in to your computer, it will pop up a message \"`Detected board ****, Would you like to switch to this board type`\". After clicking the `Yes` button, it will automatically detect which serial port (COM) is connected a USB device. If your device does not support this feature, please provide us with the PID/VID of your device; the code format is defined in `misc/usbmapping.json`.To learn more about how to list the vid/pid, use the following tools: https://github.com/EmergingTechnologyAdvisors/node-serialport `npm install -g serialport` `serialport-list -f jsonline`|\n| `arduino.disableTestingOpen` | Enable/disable automatic sending of a test message to the serial port for checking the open status. The default value is `false` (a test message will be sent). |\n| `arduino.skipHeaderProvider` | Enable/disable the extension providing completion items for headers. This functionality is included in newer versions of the C++ extension. The default value is `false`.|\n| `arduino.disableIntelliSenseAutoGen` | When `true` vscode-arduino will not auto-generate an IntelliSense configuration (i.e. `.vscode/c_cpp_properties.json`) by analyzing Arduino's compiler output. |\n| `arduino.analyzeOnOpen` | When true, automatically run analysis when the project is opened. Only works when `arduino.analyzeOnSettingChange` is true. |\n| `arduino.analyzeOnSettingChange` | When true, automatically run analysis when board, configuration, or sketch settings are changed. |\n\nThe following Visual Studio Code settings are available for the Arduino extension. These can be set in global user preferences \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003e,\u003c/kbd\u003e *or* \u003ckbd\u003eCmd\u003c/kbd\u003e + \u003ckbd\u003e,\u003c/kbd\u003e or workspace settings (`.vscode/settings.json`). The latter overrides the former.\n\n```json\n{\n    \"arduino.useArduinoCli\": true,\n    \"arduino.logLevel\": \"info\",\n    \"arduino.allowPDEFiletype\": false,\n    \"arduino.enableUSBDetection\": true,\n    \"arduino.disableTestingOpen\": false,\n    \"arduino.skipHeaderProvider\": false,\n    \"arduino.additionalUrls\": [\n        \"https://raw.githubusercontent.com/VSChina/azureiotdevkit_tools/master/package_azureboard_index.json\",\n        \"http://arduino.esp8266.com/stable/package_esp8266com_index.json\"\n    ],\n}\n```\n\nThe following settings are as per sketch settings of the Arduino extension. You can find them in\n`.vscode/arduino.json` under the workspace.\n\n```json\n{\n    \"sketch\": \"example.ino\",\n    \"port\": \"COM5\",\n    \"board\": \"adafruit:samd:adafruit_feather_m0\",\n    \"output\": \"../build\",\n    \"prebuild\": \"./prebuild.sh\",\n    \"postbuild\": \"./postbuild.sh\",\n    \"intelliSenseGen\": \"global\"\n}\n```\n- `sketch` - The main sketch file name of Arduino.\n- `port` - Name of the serial port connected to the device. Can be set by the `Arduino: Select Serial Port` command. For Mac users could be \"/dev/cu.wchusbserial1420\".\n- `board` - Currently selected Arduino board alias. Can be set by the `Arduino: Change Board Type` command. Also, you can find the board list there.\n- `output` - Arduino build output path. If not set, Arduino will create a new temporary output folder each time, which means it cannot reuse the intermediate result of the previous build leading to long verify/upload time, so it is recommended to set the field. Arduino requires that the output path should not be the workspace itself or in a subfolder of the workspace, otherwise, it may not work correctly. By default, this option is not set. It's worth noting that the contents of this file could be deleted during the build process, so pick (or create) a directory that will not store files you want to keep.\n- `prebuild` - External command which will be invoked before any sketch build (verify, upload, ...). For details see the [Pre- and Post-Build Commands](#Pre--and-Post-Build-Commands) section.\n- `postbuild` - External command to be run after the sketch has been built successfully. See the afore mentioned section for more details.\n- `intelliSenseGen` - Override the global setting for auto-generation of the IntelliSense configuration (i.e. `.vscode/c_cpp_properties.json`). Three options are available:\n  - `\"global\"`: Use the global settings (default)\n  - `\"disable\"`: Disable the auto-generation even if globally enabled\n  - `\"enable\"`: Enable the auto-generation even if globally disabled\n- `buildPreferences` - Set Arduino preferences which then are used during any build (verify, upload, ...). This allows for extra defines, compiler options or includes. The preference key-value pairs must be set as follows:\n```json\n    \"buildPreferences\": [\n        [\"build.extra_flags\", \"-DMY_DEFINE=666 -DANOTHER_DEFINE=3.14 -Wall\"],\n        [\"compiler.cpp.extra_flags\", \"-DYET_ANOTER=\\\"hello\\\"\"]\n    ]\n}\n```\n\n## Known limitations/restrictions\n\n- Header files to include in a `.ino` sketch have to be in a sub-directory (e.g. put a header into `foo/foo.h` and then use `#include foo/foo.h`).  Without this subdirectory (e.g. `foo.h` directly next to the `.ino` file using `#include \"foo.h\"`), the compile step will fail. ([issue 1389](https://github.com/microsoft/vscode-arduino/issues/1389)\n\n\n\n## Pre- and Post-Build Commands\nOn Windows the commands run within a `cmd`-, on Linux and OSX within a `bash`-instance. Therefore your command can be anything what you can run within those shells. Instead of running a command you can invoke a script. This makes writing more complex pre-/post-build mechanisms much easier and opens up the possibility to run python or other scripting languages.\nThe commands run within the workspace root directory and vscode-arduino sets the following environment variables:\n**`VSCA_BUILD_MODE`** The current build mode, one of `Verifying`, `Uploading`, `Uploading (programmer)` or `Analyzing`. This allows you to run your script on certain build modes only.\n**`VSCA_SKETCH`** The sketch file relative to your workspace root directory.\n**`VSCA_BOARD`** Your board and configuration, e.g. `arduino:avr:nano:cpu=atmega328`.\n**`VSCA_WORKSPACE_DIR`** The absolute path of your workspace root directory.\n**`VSCA_LOG_LEVEL`** The current log level. This allows you to control the verbosity of your scripts.\n**`VSCA_SERIAL`** The serial port used for uploading. Not set if you haven't set one in your `arduino.json`.\n**`VSCA_BUILD_DIR`** The build directory. Not set if you haven't set one in your `arduino.json`.\n\nFor example under Windows the following `arduino.json` setup\n```json\n{\n    \"board\": \"arduino:avr:nano\",\n    \"sketch\": \"test.ino\",\n    \"configuration\": \"cpu=atmega328\",\n    \"prebuild\": \"IF \\\"%VSCA_BUILD_MODE%\\\"==\\\"Verifying\\\" (echo VSCA_BUILD_MODE=%VSCA_BUILD_MODE% \u0026\u0026 echo VSCA_BOARD=%VSCA_BOARD%)\"\n}\n```\nwill produce\n```\n[Starting] Verifying sketch 'test.ino'\nRunning pre-build command: \"IF \"%VSCA_BUILD_MODE%\"==\"Verifying\" (echo VSCA_BUILD_MODE=%VSCA_BUILD_MODE% \u0026\u0026 echo VSCA_BOARD=%VSCA_BOARD%)\"\nVSCA_BUILD_MODE=Verifying\nVSCA_BOARD=arduino:avr:nano:cpu=atmega328\nLoading configuration...\n\u003c...\u003e\n```\nwhen verifying.\n\n## IntelliSense\nvscode-arduino auto-configures IntelliSense by default. vscode-arduino analyzes Arduino's compiler output by running a separate build and generates the corresponding configuration file at `.vscode/c_cpp_properties.json`. vscode-arduino tries as hard as possible to keep things up to date, e.g. it runs the analysis when switching the board or the sketch.\n\nIt doesn't makes sense though to run the analysis repeatedly. Therefore if the workspace reports problems (\"squiggles\") - for instance after adding new includes from a new library - run the analysis manually:\n\nManual rebuild: **Arduino: Rebuild IntelliSense Configuration**,\nKeybindings: \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003eCmd\u003c/kbd\u003e + \u003ckbd\u003eI\u003c/kbd\u003e *or* \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eI\u003c/kbd\u003e\n\nWhen the analysis is invoked manually it ignores any global and project specific disable.\n\n### IntelliSense Configurations\nvscode-arduino's analysis stores the result as a dedicated IntelliSense-configuration named `Arduino`. You have to select it from the far right of the status bar when you're in one of your source files as shown here:\n\n![74001156-cfce8280-496a-11ea-9b9d-7d30c83765c1](https://user-images.githubusercontent.com/21954933/74351237-2696ea80-4db7-11ea-9f7a-1bfc652ad5f5.png)\n\nThis system allows you to setup and use own IntelliSense configurations in parallel to the automatically generated configurations provided through vscode-arduino. Just add your configuration to `c_cpp_properties.json` and name it differently from the default configuration (`Arduino`), e.g. `My awesome configuration` and select it from the status bar or via the command palette command **C/C++: Select a Configuration...**\n\n## Change Log\nSee the [Change log](https://github.com/Microsoft/vscode-arduino/blob/main/CHANGELOG.md) for details about the changes in each version.\n\n## Supported Operating Systems\nCurrently this extension supports the following operating systems:\n\n- Windows 7 and later (32-bit and 64-bit)\n- macOS 10.10 and later\n- Ubuntu 16.04\n  - The extension might work on other Linux distributions, as reported by other users, but without guarantee.\n\n## Support\nYou can find the full list of issues on the [Issue Tracker](https://github.com/Microsoft/vscode-arduino/issues). You can submit a [bug or feature suggestion](https://github.com/Microsoft/vscode-arduino/issues/new), and participate in community driven [discussions](https://gitter.im/Microsoft/vscode-arduino).\n\n## Development\n\nInstallation prerequisites:\n\n- [Git](https://git-scm.com/)\n- [Node.js](https://nodejs.org/) (\u003e= 12.x)\n- [Npm](https://www.npmjs.com/) (\u003e= 6.x)\n\nTo *run and develop*, do the following:\n- `git clone https://github.com/microsoft/vscode-arduino`\n- `cd vscode-arduino`\n- Run `npm i`\n- Run `npm i -g gulp`\n- Open in Visual Studio Code (`code .`)\n- Press \u003ckbd\u003eF5\u003c/kbd\u003e to debug.\n\nTo *test*, press \u003ckbd\u003eF5\u003c/kbd\u003e in VS Code with the \"Launch Tests\" debug configuration.\n\n## Code of Conduct\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct). For more information please see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/#howadopt) or contact opencode@microsoft.com with any additional questions or comments.\n\n## Privacy Statement\nThe [Microsoft Enterprise and Developer Privacy Statement](https://www.microsoft.com/en-us/privacystatement/EnterpriseDev/default.aspx) describes the privacy statement of this software.\n\n## License\nThis extension is licensed under the [MIT License](https://github.com/Microsoft/vscode-arduino/blob/main/LICENSE.txt). Please see the [Third Party Notice](https://github.com/Microsoft/vscode-arduino/blob/main/ThirdPartyNotices.txt) file for additional copyright notices and terms.\n\n## Contact Us\nIf you would like to help build the best Arduino experience with VS Code, you can reach us directly at [gitter chat room](https://gitter.im/Microsoft/vscode-arduino).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMicrosoft%2Fvscode-arduino","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMicrosoft%2Fvscode-arduino","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMicrosoft%2Fvscode-arduino/lists"}