Configuration
Global Settings (User/Workspace)
Configure these in User Settings (Ctrl+,) or Workspace Settings:
onsemi.repositories
Type: object
Default: {}
Description: Repository configurations indexed by repository path.
Example:
{
"onsemi.repositories": {
"c:\\workspace\\zsdk": {
"projectType": "zephyr",
"tools": [
{
"id": "zephyr-sdk",
"installPath": "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\zephyr-sdk\\0.17.4",
"version": "0.17.4",
"isToolchain": true
},
{
"id": "cmake",
"installPath": "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\cmake\\4.0.3\\bin",
"version": "4.0.3",
"isToolchain": false
},
]
},
"c:\\cmake-project": {
"projectType": "cmake",
"tools": [
{
"id": "cmake",
"installPath": "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\cmake\\4.0.3\\bin",
"version": "4.0.3",
"isToolchain": false
},
{
"id": "arm-none-eabi-gcc",
"installPath": "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\arm-none-eabi-gcc\\14.3.1\\bin",
"version": "14.3.1",
"isToolchain": true
}
]
}
}
}
Properties:
projectType: Repository/project type -"zephyr","cmake", or"unknown"tools: Array of tool configurationsid: Tool identifier (e.g.,"arm-none-eabi-gcc","zephyr-sdk")version: Tool version stringinstallPath: Absolute path to tool installation directoryisToolchain: Boolean indicating if tool is a toolchain
onsemi.certificatePath
Type: string
Default: ""
Description: Path to a custom CA certificate file to trust for HTTPS requests, Git SSL verification (GIT_SSL_CAINFO), and pip installs (--cert). Useful for corporate proxies that use self-signed or internal CA certificates.
Note
The path is validated before use; if it points to a directory or a missing
file it is logged and skipped instead of aborting the install. In
uv-managed Python environments the custom CA is passed to uv via the
SSL_CERT_FILE environment variable (uv does not accept pip’s --cert
flag), and --allow-insecure-host is used when onsemi.allowInsecureTls
is set.
Example:
{
"onsemi.certificatePath": "C:/certs/corporate-ca.crt"
}
onsemi.allowInsecureTls
Type: boolean
Default: false
Description: Disables TLS certificate verification for onsemi Studio HTTP requests, Git SSL verification, and pip trusted-host checks (not recommended for production).
onsemi.git.useWindowsSchannel
Type: boolean
Default: true (Windows only)
Description: On Windows, routes Git and West operations through Git’s native
Secure Channel (schannel) SSL backend, so Git validates server certificates
against the Windows certificate store. This resolves corporate proxy / custom-CA
failures without a certificate bundle. It is applied via scoped GIT_CONFIG_*
environment overrides (covering git invoked internally by west update) rather
than mutating your global git config, and is reverted on deactivation. Has no
effect on non-Windows platforms.
Example:
{
"onsemi.git.useWindowsSchannel": false
}
onsemi.quickStart.enabled
Type: boolean
Default: true
Description: Show the Quick Start view in the onsemi Studio Activity Bar. The Quick Start view surfaces the Workspace and Tools Setup, Import Application, and Create New Application wizards alongside links to documentation. Set to false to hide the view from the sidebar.
Example:
{
"onsemi.quickStart.enabled": false
}
Project-Specific Settings (Folder/Resource)
These settings apply to individual project folders and are typically stored in .vscode/settings.json:
onsemi.workspacePath
Type: string
Default: ""
Description: Absolute path to the workspace/repository containing this project.
onsemi.toolchain
Type: string
Default: ""
Description: Absolute path to the toolchain directory.
Example: "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\zephyr-sdk\\0.17.4"
onsemi.venv.path
Type: string
Default: ""
Description: Path to Python virtual environment.
Example: "C:\\zephyr-workspace\\.venv"
onsemi.args
Type: array
Default: []
Scope: resource
Description: Additional command-line arguments for build commands.
Example:
{
"onsemi.args": ["--args1", "--args2"]
}
onsemi.envVars
Type: array
Default: []
Scope: resource
Description: Additional environment variables for build commands.
Example:
{
"onsemi.envVars": [
{
"name": "ZEPHYR_BASE",
"value": "C:/zephyr-workspace/zephyr"
},
{
"name": "CMAKE_BUILD_PARALLEL_LEVEL",
"value": "8"
}
]
}
onsemi.build.configurations
Type: array
Default: []
Scope: resource
Description: Build configurations for the project.
Common Properties (all project types):
name(required): Configuration nameactive: Whether this is the active configurationargs: Array of additional argumentsenvs: Array of environment variables (same format asonsemi.envVars)
Zephyr-Specific Properties:
boardName: Target board identifiersysbuild: Enable sysbuild mode (true/false)pristine: Pristine build mode ("auto","always", or"never")arch: Target architecture (e.g.,"arm","riscv64")snippets: Array of Zephyr snippet names to apply to the build. Each entry is passed towest buildas a repeated-S <name>flag. Defaults to an empty list and is preserved when a configuration is cloned. Available snippets can be listed with theonsemi: West: List Snippetscommand or selected from the Snippets multi-select in the Configure Settings panel.
Zephyr-Specific Configuration Example:
{
"onsemi.build.configurations": [
{
"name": "debug",
"active": true,
"boardName": "evb",
"sysbuild": false,
"pristine": "auto",
"args": ["--", "-DCONFIG_DEBUG_OPTIMIZATIONS=y"],
"envs": [
{
"name": "CONF_FILE",
"value": "prj_debug.conf"
}
]
},
{
"name": "release",
"active": false,
"boardName": "evb",
"sysbuild": true,
"args": ["--", "-DCONFIG_SIZE_OPTIMIZATIONS=y"],
"envs": [
{
"name": "CONF_FILE",
"value": "prj_release.conf"
},
{
"name": "EXTRA_DTC_OVERLAY_FILE",
"value": "boards/onnn_rsl15_evb.overlay"
}
]
}
]
}
CMake-Specific Properties:
buildType: CMake build type ("Debug","Release","RelWithDebInfo","MinSizeRel")generator: CMake generator (e.g.,"Ninja")toolchainFile: Path to CMake toolchain filecacheVars: Array of CMake cache variablesname: Variable namevalue: Variable value
configurationPreset: CMake configuration preset namebuildPreset: CMake build preset namesourceDir: Per-build-configuration override of the CMake source directory (relative to the project root). Used for superbuild layouts where different build configurations point at different sub-projects of the same workspace folder. When omitted, the project’s default source directory is used.
CMake-Specific Configuration Example:
{
"onsemi.build.configurations": [
{
"name": "Debug",
"active": true,
"buildType": "Debug",
"generator": "Ninja",
"toolchainFile": "C:/cmake-toolchains/arm-none-eabi.cmake",
"cacheVars": [
{
"name": "CMAKE_EXPORT_COMPILE_COMMANDS",
"value": "ON"
},
{
"name": "BUILD_TESTING",
"value": "OFF"
}
]
},
{
"name": "Release",
"active": false,
"buildType": "Release",
"generator": "Ninja",
"configurationPreset": "release-preset",
"buildPreset": "release-build"
}
]
}
IntelliSense Settings
onsemi.intelliSenseProvider
Type: string
Default: "clangd"
Options: "clangd" | "mscpp"
Scope: resource
Description: Select IntelliSense provider. clangd is the default; mscpp (Microsoft C/C++) remains a supported alternative.
Example:
{
"onsemi.intelliSenseProvider": "clangd"
}
onsemi.autoGenerateClangdConfig
Type: boolean
Default: true
Scope: resource
Description: Automatically generate .clangd configuration file.
onsemi.disableIntelliSense
Type: boolean
Default: true
Scope: resource
Description: Disable automatic IntelliSense configuration.
Complete Project Settings Example
Zephyr Project (.vscode/settings.json):
{
"onsemi.workspacePath": "C:\\workspace\\zephyr",
"onsemi.toolchain": "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\zephyr-sdk\\0.17.4",
"onsemi.venv.path": "c:\\workspace\\zephyr\\.venv",
"onsemi.build.configurations": [
{
"name": "debug",
"active": true,
"boardName": "evb",
"pristine": "auto",
"envs": [
{ "name": "CONF_FILE", "value": "prj_debug.conf" },
{ "name": "DTC_OVERLAY_FILE", "value": "C:/boards/evb.overlay" }
]
},
{
"name": "release",
"active": false,
"boardName": "evb",
"sysbuild": true,
"envs": [{ "name": "CONF_FILE", "value": "prj_release.conf" }]
}
]
}
CMake Project (.vscode/settings.json):
{
"onsemi.workspacePath": "C:\\workspace\\cmake-project",
"onsemi.toolchain": "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\arm-none-eabi-gcc\\14.3.1\\bin",
"onsemi.build.configurations": [
{
"name": "Debug",
"active": true,
"args": [],
"envVars": [],
"buildType": "",
"generator": "Ninja",
"targets": [],
"configurationPreset": "Debug-CM33",
"buildPreset": "",
"toolchainFile": "",
"cacheVars": [
{ "name": "CMAKE_EXPORT_COMPILE_COMMANDS", "value": "ON" },
{ "name": "BUILD_TESTING", "value": "OFF" }
]
},
{
"name": "Release",
"active": false,
"args": [],
"envVars": [],
"buildType": "",
"generator": "Ninja",
"targets": [],
"configurationPreset": "MinSizeRel-CM33",
"buildPreset": "",
"toolchainFile": "",
"cacheVars": [
{ "name": "CMAKE_EXPORT_COMPILE_COMMANDS", "value": "ON" }
]
}
]
}
SDK Manifest (sdk.json)
Bare-metal SDKs and projects derived from them describe themselves to the extension through an sdk.json file. Two flavors exist:
SDK-side ``sdk.json`` (sits at the root of an installed SDK):
name: Stable SDK identifier used for dependency matching (e.g.,"onsemi-bm-sdk")version: Semver version of the SDK installation (e.g.,"1.4.2")envVarName: Name of the environment variable the extension exports for this SDK so projects can reference it fromCMakePresets.jsonvia$env{...}(e.g.,"ONSEMI_BM_SDK"→ used as$env{ONSEMI_BM_SDK})minJLinkVersion: Optional minimum recommended J-Link version for this product (e.g.,"7.94"). When set, onsemi Studio warns (once per window session, non-blocking) if J-Link is missing or older than this version when starting a J-Link debug session or runningwest flash, and offers a shortcut to the SEGGER download page. SDKs that do not declare this field produce no warning.isNVMSupport: Optional boolean. Whentrue, the NVM Image Tool panel and theonsemi.panel.nvmcommand are surfaced for this SDK (via theonsemi.nvmSupportedcontext key).
Project-side ``sdk.json`` (sits inside the project, alongside CMakePresets.json):
sdkDependencies: Map of SDK name → semver range that the project requires. Example:{ "sdkDependencies": { "onsemi-sdk": "^1.4.0", "onsemi-rsl15-sdk": ">=2.0.0 <3.0.0" } }
When the project is configured the extension resolves each entry against the installed SDKs registered under onsemi.repositories. If a dependency cannot be satisfied the extension reports an actionable error of the form “This project requires <NAME> <range>; installed: <list>” and the configure step is aborted. When all dependencies are satisfied the matching SDK’s envVarName is exported into the project’s environment so the corresponding $env{...} substitution in CMakePresets.json resolves to the SDK’s install path.
Auth-Gated Toolchains (tools.json)
A tool declared in an SDK’s tools.json may require authorized onsemi access
to download by setting "auth": "github" (for example, a custom toolchain).
When you are not authorized to download such a tool — you cancel the sign-in / PAT
prompt or your account lacks access — that tool is skipped instead of failing
the whole install. Remaining tools continue installing, and the setup wizard’s
Finish step lists the skipped toolchains with a note that they require
authorized onsemi access and can be installed later once access is granted. This
applies to both Express and Advanced setup modes.