🛠 Premier blinky Zephyr sur le nRF52833-DK

nRF52833-DK (boards.json id: nrf52833-dk) · debutant · Deux commandes west et la LED1 de votre kit Nordic s'anime : le débogueur J-Link est déjà embarqué sur la carte.

The board in one minute

The Nordic Semiconductor nRF52833-DK (board code PCA10100, ~49 US$ at DigiKey) is the official kit around the nRF52833 SoC: Arm Cortex-M4 with FPU @ 64 MHz, 512 KB of flash, 128 KB of RAM, multiprotocol 2.4 GHz radio (BLE 5, Bluetooth mesh, Thread, Zigbee), USB, NFC, and 12-bit ADC. It uses the Arduino Uno Rev3 format (3.3 V only), has 42 I/Os accessible on connectors, and most importantly features an embedded SEGGER J-Link OB interface MCU: debugging, programmer, and virtual COM port, without any external hardware. The board is maintained in upstream Zephyr under the name nrf52833dk.

Step 1 — Install the Zephyr toolchain

Follow the official Zephyr Getting Started Guide for your OS (CMake, Ninja, Python 3, Cortex-M toolchain, then west):

python3 -m venv .venv && source .venv/bin/activate   # Windows : .venv\Scripts\activate
pip install west
west init zephyrproject
cd zephyrproject && west update

On the hardware side, the User Guide requires only a simple micro-USB cable and J-Link software v6.52 or newer installed on the host.

Step 2 — Connect the kit

The kit has two micro-USB connectors: J2 for the J-Link OB interface MCU, and J3 for the nRF52833's native USB. To flash, connect the cable to J2. The embedded programmer recognizes the board without configuration.

Step 3 — Compile and flash

west build -b nrf52833dk/nrf52833 samples/basic/blinky
west flash

LED1 should blink. The 4 user LEDs are on P0.13 to P0.16, active low (they light up when the pin goes to 0); solder bridges SB5-SB8 allow disconnecting them. The same PCB exists for the nRF52820 target (256 KB flash / 32 KB RAM): west build -b nrf52833dk/nrf52820 ....

Step 4 — Understand the code

The board's devicetree defines the alias led0 (LED1 = P0.13), hence the standard example:

#include <zephyr/kernel.h>
#include <zephyr/drivers/gpio.h>

static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(DT_ALIAS(led0), gpios);

int main(void)
{
        gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
        while (1) {
                gpio_pin_toggle_dt(&led);   /* LED active-low sur le DK */
                k_msleep(500);
        }
}

Known pitfalls

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials