nRF Connect - nRF Connect for VS Code
Skip to content

Version 2022.4.219

Welcome to the April 2022 release of nRF Connect. This release, we have been working on improving the following areas:

Connected devices

When connecting a multi-core device over RTT connection, you can now select which core to connect to.

Core selection

Flashing improvements

We added two new optional arguments for the flash command; softreset and skipBuild.

softreset

When using nrfjprog, you can now add the --softreset option when flashing your application. At flash-time we fetch the applicationOptions for the application linked to the associated build configuration and check if the softreset flag is enabled. This only works when nrfjprog is used.

skipBuild

If you don't want to rebuild the application during flashing, you can now use the skipBuild argument to do this.

Here is an example of the configuration items:

{
  "nrf-connect.applicationOptions": {
    "/path/to/your/application": {
      "flash": {
        "softreset": true,
        "skipBuild": true
      }
    }
  }
}

The path specifier supports variable substitution, so you can use ${workspaceFolder} to replace the root of your workspace, allowing you to create portable settings for your project.

Set mcuboot devices into bootloader mode

We added in a friendly reminder to set your device into bootloader mode before flashing a device that uses mcuboot.

Better messaging for device connection status

In situations where the device linked to a build was disconnected, an error message would show "No devices connected", regardless of whether other devices were connected. This was not very clear, so we have added additional information about which device serial number the extension is looking for.

We also added some helpful tips and a link to the documentation for when a device cannot be detected.

There are several required tools for devices to connect properly. If you are missing any of these from the the nRF Command Line Tools, a warning message will alert you that they must be installed.

Improved visibility for device connections

The serial port and RTT connection points for connected devices are now grouped together in the device details, which can be found by expanding the device entry in the Connected Devices panel. You can start a new terminal session for the connection points by clicking the connect button on the right-hand side of the respective connection point.

Connection options

Webviews

It is now easier to locate the tab you want with unique icons for each of the webviews such as New Board and New Application.

Webview tabs

Create a new application

Some samples available in the Sample Browser do not have documentation for various reasons. Instead of showing the online documentation's default error page, the sample browser now shows a short text explaining the error and provides a link to the relevant GitHub repository where additional information may be found. The GitHub repository link is also added at the bottom of the sample browser window for all samples.

When using the Browse... button to set your application location, the last-used folder will now be set as the default location for faster access.

Generate build

Kconfig fragments that are not automatically detected and selectable from the drop-down menu can now be located and added from a new browse button.

Browse Kconfig fragments

We have changed the sorting mechanism for the board IDs in the board selection drop-down menu, so boards are sorted case-insensitively. Your boards are now listed alphabetically, regardless of capitalization.

Welcome page and panel

The Welcome page and Welcome panel have several new features to make setting up an application easier and more understandable.

Education and information support

Have you heard about the Nordic Developer Academy? It is an interactive online platform for learning how to use Nordic Semiconductor solutions. We added a link on the Welcome page to access the latest nRF Connect SDK Fundamentals course.

If you need to quickly reference the extension's documentation, you can now access the documentation site from a link in the Welcome panel.

Faster access to create a new board

The board creation tool now has a new title and icon to make it stand out in the Welcome panel.

Create a new board icon

Build configurations

TF-M child image support

Trusted Firmware-M child images were previously not detected or visible in the extension, but these are now supported. TF-M images are separate cmake projects, with a separate set of actions, as well as a separate set of source, input, and output files.

Removed redundant build panel information

With VS Code's new Secondary Side Bar feature, the entire nRF Connect SDK panel can be dragged to the right-hand side of the VS Code window. This made the Explorer sidebar's copy of the Build panel redundant, so we removed it. To keep the File Explorer and nRF Connect SDK panels visible at the same time, grab the nRF Connect SDK icon from the Activity Bar to the right-hand side of the VS Code window.

Move nRF Connect SDK to the sidebar

Source files are now automatically available for child images

Our source files view is only available in builds where CMAKE_EXPORT_COMPILE_COMMANDS is enabled. While the extension has been enabling when building with the Generate Build tool, the setting has not been propagated to included child images. We have changed the way we set this flag in the build command, so child images will always have this flag enabled. You can do a pristine build of your configuration to propagate this change to existing child images.

Intellisense works before building an application

The nRF Connect extension configures the C/C++ extension's IntelliSense context based on the active build configuration. When there was no active build configuration, the nRF Connect extension would previously leave the IntelliSense configuration blank, which caused a lot of errors in applications that were not built yet.

To provide a useful editing experience for C files ahead of the initial build, we have introduced a configuration that the IntelliSense engine can fall back to until the application is built for the first time. As the nRF Connect SDK's build system is completely dependent on the generated build output, some errors will still show up in the source files until the application is built, but most autocompletion and symbol location information should now be available.

Configuration files are tracked

The nRF Connect SDK build system does not automatically do a pristine build when new configuration files are added for an application. To help you determine when a manual pristine build invocation is needed for the build system to recognize your configuration files, we now track the configuration files that should be included in a build and display a warning if any required files are missing.

Tracking configuration files

Actions

Pristine Build and Erase and Flash are actions that were often used in cases when they were not really necessary. In most cases, incremental builds and flash operations are preferable. Instead of showing Pristine Build and Erase and Flash as equally relevant actions in the Actions panel, we have moved them to the right-hand side of the related actions.

  • When hovering over the Build action, you will now see a Pristine Build icon to the right.

    Pristine build icon

  • When hovering over the Flash action, you will now see an Erase and Flash icon to the right.

    Erase and flash icon

Notification improvements

Extension checks

The nRF Connect extension detects whether you have installed any conflicting extensions and issues a warning. Unless you uninstall or disable these extensions, the warning will continue to pop up every time you open a new VS Code window. We have added a button to permanently dismiss these warnings.

The extension now checks to make sure that the Cortex Debug extension is both installed and enabled. If it is not, a warning message displays with a button linking to the extension page.

If nRF Terminal or nRF Kconfig are not installed, the warning message will now send you to the extension page in VS Code and installs the extensions instead of redirecting to a web page.

SDK version change warning in unsaved workspace

When adding an existing freestanding application to the current workspace, a warning appears asking if you would like to change the SDK version. The previous warning was a bit vague, so we improved the wording.

Reset hidden notifications

If you have hidden a notification but want to see it display again, we added in a nRF Connect: Reset Notifications command for this purpose.

M1-based Mac machines must install the Universal version of SEGGER J-Link. We now check which version of J-Link you are using and display a warning message if the Universal version is not installed while using an M1 machine.

Other improvements

Performance improvements

We improved the startup performance in the SDK and toolchain selection dialogs. We also reduced the extension activation time by caching filesystem calls and cmake packages.

Provided more tooltip information

Without explicit tooltips, VS Code repeats the label of UI elements. We added in extra information to the tooltips to explain the icon functionality better.

Support west flash --dev-id

The west flash command recently changed the way device serial numbers are specified. The old argument was deprecated, causing west to print a deprecation notice in the console on every flashing operation. To prevent this warning, the extension now detects which version of the flash command is running, and provides the appropriate argument format.

Bug fixes

  • We fixed an issue were the source and output files trees were broken due to a missing size tool on Windows.
  • We fixed an issue where the extension was reporting errors for folders that did not exist in uncloned repositories.
  • We now check if a workspace has been saved before attempting a ${workspaceFolder:folder} substitution. This helps to prevent issues when VS Code tries to resolve this variable in an unsaved workspace environment.