Getting started with the nRF54H20 DK

Note

If you are migrating from an earlier version of the nRF Connect SDK, see Migration guides.

This guide gets you started with your new nRF54H20 Development Kit (DK) using the nRF Connect SDK for the first time. It guides you through the following:

  1. Installing the nRF Connect SDK and other required software and tools.

  2. Preparing the nRF54H20 DK for first use:

    1. Disabling the onboard debugger’s USB Mass Storage Device (MSD) feature and forcing UART hardware flow control (HWFC).

    2. Programming the nRF54H20 DK’s Board Information Configuration Registers (BICR) using the provided binary file.

    3. Programming the Secure Domain and System Controller of the nRF54H20 SoC using the provided IronSide SE binaries.

    4. Transitioning the SoC’s lifecycle state (LCS) to Root of Trust (RoT).

  3. Programming the Hello World for multiple board targets using Sysbuild sample on the DK.

  4. Testing the sample by capturing and reviewing the UART console output.

Hardware requirements

To follow this guide, make sure you have all the required hardware:

  • nRF54H20 DK version PCA10175 Engineering C - v0.9.0 and later DK revisions in lifecycle state (LCS) EMPTY (new DKs will always be in LCS EMPTY). Check the version number on your DK’s sticker to verify its compatibility with the nRF Connect SDK.

  • USB-C cable.

Installing the nRF Connect SDK

Install the nRF Connect SDK following the instructions for both nRF Connect for VS Code and the command line in the Installing the nRF Connect SDK documentation page.

Installing additional nRF Util commands

After installing the nRF Connect SDK and its toolchain, you get the 8.1.1 version of nRF Util core module (nrfutil). Using the nRF54H20 DK with the nRF Connect SDK version v3.3.0 also requires the following nRF Util components:

nRF Util component

Required version

nRF Util (nrfutil)

Latest

nRF Util device command

version 2.17.2

nRF Util trace command

version 4.4.0

To install the required versions of the nRF Util commands, complete the following steps:

  1. Update your existing nRF Util installation:

    1. Make sure you have removed the lock on the nRF Util installation to be able to install other nRF Util commands. See Locking nRF Util home directory in the tool documentation for more information.

    2. Run the following command to update the core module to the latest version:

      nrfutil self-upgrade
      

      For more information, consult the Upgrading nRF Util core module documentation.

  2. Install the required versions of the nRF Util commands:

    nrfutil install device=2.17.2 --force
    nrfutil install trace=4.4.0 --force

    For more information, see the Installing specific versions of nRF Util commands documentation.

  3. Verify the installation of the nRF Util commands:

    nrfutil device --version
    nrfutil trace --version
    

    The output will show the installed versions. Ensure they match the required versions.

Installing a terminal application

Install a terminal emulator, such as the Serial Terminal app (from the nRF Connect for Desktop application) or the nRF Terminal (part of the nRF Connect for Visual Studio Code extension). Both of these terminal emulators start the required toolchain environment.

Bring-up step: Programming the BICR

The Board Information Configuration Registers (BICR) are non-volatile memory (NVM) registers that contain information on how the nRF54H20 SoC must interact with other board elements, including information about power and clock delivery to the SoC. To prepare the nRF54H20 DK for its first use, you must manually program the required values into the BICR using a precompiled BICR binary file (bicr.hex).

  1. Download the nRF54H20 DK BICR binary file.

  2. Connect the nRF54H20 DK to your computer using the DEBUGGER port on the DK.

    Note

    On macOS, when connecting the DK, you might see a popup with the message Disk Not Ejected Properly appearing multiple times. See Bring-up step: Disable onboard J-Link Mass Storage Device (MSD) to disable MSD on the onboard debugger.

  3. List all the connected development kits to see their serial number (matching the one on the DK’s sticker):

    nrfutil device list
    
  4. Move the BICR HEX file to a folder of your choice, then program the BICR by running nRF Util from that folder using the following command:

    nrfutil device program --options chip_erase_mode=ERASE_NONE --firmware bicr.hex --core Application --serial-number <serial_number>
    

Note

After you program the BICR, the LFCLK calibrates on first boot. Do not expect accurate LFCLK timing for about 3.5 to 4 seconds. If calibration does not complete, the system controller (sysctrl) starts calibration on the next boot.

Bring-up step: Programming the nRF54H20 IronSide SE binaries

After programming the BICR, the nRF54H20 SoC requires the provisioning of the nRF54H20 IronSide SE binaries, a bundle containing the precompiled firmware for the Secure Domain and System Controller.

Note

To program the nRF54H20 IronSide SE binaries on your nRF54H20 SoC-based device, your device must be in lifecycle state (LCS) EMPTY. This means that this is likely the first use of your nRF54H20 DK.

Devices already provisioned using SUIT-based binaries and in LCS RoT cannot be transitioned back to LCS EMPTY. For more information, see IronSide SE ABI compatibility.

To provision the nRF54H20 IronSide SE binaries to the nRF54H20 SoC, complete the following steps:

  1. Download the latest nRF54H20 IronSide SE binaries. You can find the version compatible with your nRF Connect SDK version listed on the IronSide SE ABI compatibility page.

    Note

    On MacOS, ensure that the ZIP file is not unpacked automatically upon download.

  2. Move the .zip bundle to a folder of your choice, then run nRF Util to program the binaries using the following command:

    nrfutil device x-provision-nrf54h --firmware <path-to_bundle_zip_file> --serial-number <serial_number>
    

Bring-up step: Transitioning the nRF54H20 SoC to RoT

The nRF54H20 SoC comes with its lifecycle state (LCS) set to EMPTY. To operate correctly, you must transition its lifecycle state to Root of Trust (RoT).

Caution

The forward transition to LCS RoT is permanent. After the transition, you cannot transition backward to LCS EMPTY.

To transition the LCS to RoT, do the following:

  1. Set the LCS of the nRF54H20 SoC to RoT using the following command:

    nrfutil device x-adac-lcs-change --life-cycle rot --serial-number <serial_number>
    

    If issues occur during bundle programming, the system returns an ADAC_FAILURE error.

  2. After the LCS transition, reset the device:

    nrfutil device reset --reset-kind RESET_PIN --serial-number <serial_number>
    

Building and programming your first sample to the nRF54H20 DK

The Hello World for multiple board targets using Sysbuild sample is a multicore sample running on both the application core (cpuapp) and the Peripheral Processor (PPR, cpuppr). It uses the nrf54h20dk/nrf54h20/cpuapp board target.

To build and program the sample to the nRF54H20 DK, complete the following steps:

  1. Connect the nRF54H20 DK to your computer using the DEBUGGER port on the DK.

  2. Start the toolchain environment for your operating system using the following command pattern, with --ncs-version corresponding to the nRF Connect SDK version you have installed:

    nrfutil sdk-manager toolchain launch --ncs-version version --terminal

    For example:

    nrfutil sdk-manager toolchain launch --ncs-version v3.3.0 --terminal

    This example command starts the toolchain environment for the nRF Connect SDK v3.3.0.

  3. In the terminal window, navigate to the zephyr/samples/sysbuild/hello_world folder containing the sample.

  4. Run the following command to build the sample for application and radio cores:

    west build -p -b nrf54h20dk/nrf54h20/cpuapp -T sample.sysbuild.hello_world.nrf54h20dk_cpuapp_cpurad .
    
  5. Program the sample to the DK. If you have multiple Nordic Semiconductor devices, ensure that only the nRF54H20 DK you want to program remains connected.

    west flash
    

    This command programs both the application core and the Peripheral Processor (PPR) of the nRF54H20 SoC.

Testing your first sample on the nRF54H20 DK

Now that the Hello World for multiple board targets using Sysbuild sample is programmed, verify its operation by capturing the UART logs from both the application core and the peripheral processor:

  1. Connect to the DK with a terminal emulator (for example, the Serial Terminal app) using the default serial port connection settings.

  2. Press the Reset button on the PCB to reset the DK.

  3. Observe the console output for the application core:

    *** Booting nRF Connect SDK zephyr-v3.5.0-3517-g9458a1aaf744 ***
    Hello world from nrf54h20dk/nrf54h20/cpuapp
    

Note

If no output appears when using nRF Serial Terminal, select a different serial port in the terminal application.

For more information on how logging works in the nRF Connect SDK, consult the Logging in nRF Connect SDK and Logging documentation pages.

Next steps

You are now all set to use the nRF54H20 DK. See the following links for where to go next:

  • nRF54H20 architecture for information about the multicore System on Chip. This includes descriptions of core responsibilities, their interprocessor interactions, memory mapping, and the boot sequence.

  • The introductory documentation for more information on the nRF Connect SDK and the development environment.

  • Configuring and building documentation to learn more about the nRF Connect SDK development environment.

  • Developing with nRF54H Series documentation for more advanced topics related to the nRF54H20.

  • Security documentation for information on security features available in the nRF Connect SDK.

If you want to go through an online training course to familiarize yourself with Bluetooth® Low Energy and the development of Bluetooth LE applications, enroll in the Bluetooth LE Fundamentals course in the Nordic Developer Academy.