Requirements reference
This page summarizes the requirements for installing and working with the nRF Connect SDK. All of these requirements are installed when you install the nRF Connect SDK.
Supported operating systems (firmware)
The nRF Connect SDK supports Microsoft Windows, Linux, and macOS for development.
The following table lists the support levels for the nRF Connect SDK firmware. For OS support for additional software tools from Nordic Semiconductor, see the table at the bottom of the page.
Operating System |
x64 |
ARM64 |
|---|---|---|
Built and tested with Twister. |
Not supported. |
|
Built and tested with Twister. Comprehensive testing with Nordic Semiconductor hardware. |
Not supported. |
|
Not supported. |
Built and tested with Twister. |
For building, Twister uses definitions in sample.yml for the default configuration for the given sample or application.
- Zephyr features only available on Linux
There are some Zephyr features that are currently only available on Linux, including:
BlueZ integration
net-tools integration
Native Port (native_sim)
BabbleSim
nRF Connect SDK toolchain
The nRF Connect SDK toolchain includes the Zephyr SDK and adds the necessary tools and modules to create nRF Connect SDK samples and applications on top of it. The nRF Connect SDK toolchain is installed as one of the steps when Installing the nRF Connect SDK.
Note
Before you start setting up the nRF Connect SDK toolchain, install available updates for your operating system. The nRF Connect SDK tools are not supported by the older versions of the operating system.
Required tools
The following table shows the tools that are required for working with nRF Connect SDK v3.3.99.
The table lists the versions that are used for testing and are installed with the toolchain bundle when using the nRF Connect for VS Code extension or command line. Other versions might also work, but are not verified.
Tool |
Version |
|---|---|
Zephyr SDK |
1.0.1 |
CMake |
4.2.1 |
Devicetree compiler (dtc) |
1.4.7-1 |
2.52.0.windows.1 |
|
gperf |
3.1 |
ninja |
1.13.2 |
Python |
3.12.4 |
1.4.0 |
|
nRF Util |
8.1.1 |
nRF Util’s device command |
2.19.0 |
Tool |
Version |
|---|---|
Zephyr SDK |
1.0.1 |
CMake |
4.2.1 |
Devicetree compiler (dtc) |
1.5.1-1 |
2.52.0 |
|
gperf |
3.1 |
ninja |
1.13.2 |
Python |
3.12.4 |
1.4.0 |
|
nRF Util |
8.1.1 |
nRF Util’s device command |
2.19.0 |
Additionally, you need to install nrf-udev rules for accessing USB ports on Nordic Semiconductor devices and programming the firmware.
Tool |
Version |
|---|---|
Zephyr SDK |
1.0.1 |
CMake |
4.2.1 |
Devicetree compiler (dtc) |
1.6.1 |
2.52.0 |
|
gperf |
3.1 |
ninja |
1.13.2 |
Python |
3.12.4 |
1.4.0 |
|
nRF Util |
8.1.1 |
nRF Util’s device command |
2.19.0 |
- Checking tool versions
To check the list of installed packages and their versions, run the following command:
choco list -loChocolatey is installed as part of the Zephyr SDK toolchain when you install the nRF Connect SDK.
apt list --installedThis command lists all packages installed on your system. To list the version of a specific package, type its name and add
--version.brew list --versions
Required Python dependencies
The following table shows the Python packages that are required for working with nRF Connect SDK v3.3.99.
If no version is specified, the default version provided with pip is recommended.
If a version is specified, it is important that the installed version matches the required version.
When you install the nRF Connect SDK, you will install all Python dependencies into a local environment, not the system.
Building and running applications, samples, and tests
Package |
Version |
|---|---|
anytree |
|
canopen |
|
cbor2 |
>=5.4.2.post1 |
click |
>=8.2.0 |
cryptography |
>=44.0.1 |
ecdsa |
|
imagesize |
>=1.2.0 |
intelhex |
|
packaging |
|
progress |
>=4.67.1 |
pyelftools |
>=0.29 |
pylint |
|
PyYAML |
|
west |
>=1.0.0 |
windows-curses (only Windows) |
Building documentation
Python documentation dependencies are listed in the following table.
They can all be installed using the doc/requirements.txt file using pip.
Package |
Version |
|---|---|
azure-storage-blob |
|
m2r2 |
|
PyYAML |
|
pykwalify |
|
recommonmark |
|
sphinx |
>=8.1,<8.2 |
sphinx-copybutton |
|
sphinx-ncs-theme |
<2.1 |
sphinx-notfound-page |
>=1.0.0 |
sphinx-tabs |
>=3.4 |
sphinx-togglebutton |
|
sphinx_markdown_tables |
|
sphinxcontrib-mscgen |
|
sphinxcontrib-plantuml |
>=0.27 |
west |
>=1.0.0 |
J-Link Software and Documentation Pack
SEGGER’s J-Link Software and Documentation Pack is a package of tools that is required for SEGGER J-Link to work correctly with both Intel and ARM assemblies. Among others, this package includes the J-Link RTT Viewer, which can be used for Testing and optimization.
Use the J-Link v9.24a when working with the nRF Connect SDK, as also listed in the Install prerequisites section on the nRF Connect SDK installation page.
On Windows, you also need to install SEGGER USB Driver for J-Link, which is required for support of older Nordic Semiconductor devices in nRF Util. For information on how to install the USB Driver, see the nRF Util prerequisites documentation.
Additional software tools
Nordic Semiconductor provides proprietary tools for working with Nordic Semiconductor devices, as well as different nRF Connect SDK toolchain management tools that streamline the process of installing the nRF Connect SDK and its toolchain. Depending on your development environment, you need to install only some of them when you Install prerequisites.
Supported operating systems (proprietary tools)
The following table shows the operating system versions that support the additional software tools from Nordic Semiconductor. For firmware OS support, see the table at the top of the page.
Operating System |
x86 |
x64 |
ARM64 |
|---|---|---|---|
n/a |
Tier 1 |
Not supported |
|
Tier 3 |
Tier 3 |
Not supported |
|
Not supported |
Tier 1 |
Not supported |
|
Not supported |
Tier 2 |
Not supported |
|
Not supported |
Not supported |
Not supported |
|
n/a |
Tier 3 |
Tier 3 |
|
n/a |
Tier 1 |
Tier 1 |
|
n/a |
Tier 3 |
Tier 3 |
|
n/a |
Tier 3 |
Tier 3 |
- Tier definitions
- Tier 1
The toolchain management tools will always work. The automated build and automated testing ensure that the nRF Connect SDK tools build and successfully complete tests after each change.
- Tier 2
The toolchain management tools will always build. The automated build ensures that the nRF Connect SDK tools build successfully after each change. There is no guarantee that a build will work because the automation tests do not always run.
- Tier 3
The toolchain management tools are supported by design, but are not built or tested after each change. Therefore, the application may or may not work.
- Not supported
The toolchain management tools do not work, but it may be supported in the future.
- Not applicable
The specified architecture is not supported for the respective operating system.
nRF Connect for Visual Studio Code
nRF Connect for VS Code is a set of VSIX extensions that turns Visual Studio Code into a complete IDE for developing applications compatible with the nRF Connect SDK. The extensions that are part of nRF Connect for VS Code provide an interface for managing SDK and toolchain installations, an interface to the compiler and linker, an RTOS-aware debugger, a seamless interface to the nRF Connect SDK, and a serial terminal.
In addition, nRF Connect for VS Code provides the following configuration tools for the build system components:
For CMake, the build configuration management.
For Devicetree, the Devicetree Visual Editor.
For Kconfig, the Kconfig GUI.
For Zephyr’s Optimization Tools, the interactive Memory report feature.
The extensions that make up nRF Connect for VS Code are nRF Connect for VS Code, nRF Kconfig, nRF DeviceTree, and nRF Terminal. While you can install each extension separately, some of them will not work without others and you need all four to use all of the features.
The extensions follow their own release cycle. Use the latest available release for development.
The extensions are available for download from the following websites:
Visual Studio Code Marketplace, where the extensions are bundled as the nRF Connect for VS Code Extension Pack.
Open VSX Registry, from where you can install the extensions separately to editors based on Visual Studio Code and compatible with the VSIX format.
Note
Nordic Semiconductor does not test editors other than Visual Studio Code for compatibility with nRF Connect for VS Code. While you are encouraged to report any issues you encounter on DevZone, issues discovered in editors other than Visual Studio Code and not reproducible in Visual Studio Code will not be prioritized.
See the Installing the nRF Connect SDK page for information about how to use the extension to manage nRF Connect SDK toolchain installations. For more information about the extension and what it offers, visit the nRF Connect for Visual Studio Code documentation.
nRF Util
The nRF Util development tool is a unified command line utility for Nordic products. Its functionality is provided through installable and upgradeable commands that are served on a central package registry on the Internet.
The utility follows its own release cycle and has its own operating system requirements.
The nRF Connect SDK toolchain bundle includes the nRF Util version 8.1.1 and the device command version 2.19.0, as listed in Required tools. When you Install the nRF Connect SDK code and toolchain, you get both these versions locked to prevent unwanted changes to the toolchain bundle.
Note
When you install the nRF Connect SDK:
If you plan to work with command line, you also need to download nRF Util and install the following command in order to get the toolchain bundle:
sdk-manager command - The latest version is required for working with nRF Connect SDK toolchain packages. See Installing and upgrading nRF Util commands for information about how to install this command.
If you plan to work with the nRF Connect for VS Code extension, you do not need a separate nRF Util installation to get the toolchain bundle.