User Guide of nRF5340 DK
Introduction to the nRF5340 DK
The nRF5340 DK (PCA10095) is a single-board development kit intended for evaluation and application development on Nordic’s nRF5340 System-on-Chip (SoC).
The nRF5340 is a dual-core SoC based on the Arm® Cortex®-M33 architecture, comprising:
-
a full-featured Arm Cortex-M33F core with DSP instructions, FPU, and the Armv8-M Security Extension, operating at up to 128 MHz, hereafter the application core; and
-
a secondary Arm Cortex-M33 core with a reduced feature set, operating at a fixed 64 MHz, hereafter the network core.
For this board, the appropriate CMake/Zephyr board target in the project is nrf5340dk_nrf5340_cpuapp, i.e., the application core of the DK.
General Preparation
-
An nRF5340 DK (PCA10095) connected via USB to the DEBUG port (on-board J-Link OB).
-
SEGGER J-Link drivers / nRF Command Line Tools.
-
If using a command-line workflow: install Python 3, Git, CMake, Ninja, and an appropriate cross-compiler (Zephyr SDK or GNU Arm Embedded). The Zephyr Getting Started Guide provides detailed system requirements and installation steps.
Development in VS Code
-
Install Visual Studio Code, then add the nRF Connect for VS Code extension pack.
-
In VS Code, open the left-hand nRF Connect view → Toolchains / SDK management and, following the guided prompts, install the desired NCS version together with a matching toolchain.
-
Via nRF Connect → Browse Sample, open
zephyr/samples/basic/blinky. Choose Add Build Configuration, then in Board target selectnrf5340dk/nrf5340/cpuapp/ns. For the first build configuration, pick a compatible board target from the drop-down list. -
Connect the DK over USB (DEBUG port). In the extension panel, select the detected device and Flash. Then LED1 should begin blinking.
For a comprehensive walkthrough, consult the official documentation.
Verification
-
The
blinkysample relies on Zephyr’s devicetree plus GPIO/LED drivers. Once the board target is selected, the LED mapping to LED1 is resolved automatically—no manual pin configuration is required. After flashing, LED1 blinks with a fixed period. -
To adjust the blink period, edit
SLEEP_TIME_MSinsamples/basic/blinky/src/main.c.
Frequently Asked Questions (FAQ)
-
Flashing fails / board not detected: Verify the USB cable is connected to the DEBUG port and that J-Link drivers are installed. On Linux, check udev permissions; on Windows, confirm the device appears as a J-Link adapter in Device Manager.
-
Toolchain or dependency missing: Use Toolchains / SDK management in the extension to install or bind the correct versions.
-
Accidentally built for the network core or LED does not blink: Confirm the Board is set to
nrf5340dk_nrf5340_cpuapp(application core). -
To identify the serial device associated with a connected development board, open a terminal and execute
ls /dev/tty.*. For Nordic boards, the CDC-ACM interfaces are typically enumerated as device nodes with basenames beginning/dev/tty.usbmodem*. In this enumeration, the numeric suffix distinguishes the cores: a suffix of1denotes the network core, whereas3denotes the application core.
Useful References
-
NCS: Installing the nRF Connect SDK. (nRF Connect SDK)
-
Zephyr: Getting Started. Zephyr Getting Started Guide
-
nRF Command Line Tools (
nrfjprog): installation guide and macOS Homebrew. (nRF Command Line Tools) -
System source code, September 2025 edition [latest]: GitHub