🛠 Premier blinky Zephyr sur le nRF52833-DK
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
- Wrong target: A sample compiled for
pca10056(nRF52840-DK) does not map the LEDs or buttons on the PCA10100 — the DevZone thread "nRF52833-DK blinky problem" stems from this. Always usenrf52833dk/nrf52833. - Buttons without external pull-up: The 4 buttons are on P0.11, P0.12, P0.24, P0.25, active low, with no pull-up resistor on the PCB — enable internal pull-ups (GPIO_PULL_UP) in your code.
- Do not confuse J2 (interface) and J3 (SoC USB): connecting to J3 does nothing until your firmware has initialized USB.
Other tutorials for this board
- Flasher un .hex sans rien installer : MSD et nRF Connect Programmer
- CircuitPython sur le kit Nordic : le prototypage sans C
- Premier périphérique BLE avec le nRF Connect SDK
- Projet firmware complet avec PlatformIO et la sonde J-Link embarquée
- Utiliser le DK comme sonde J-Link pour une cible externe
- Réseau Thread / 802.15.4 avec OpenThread sur le nRF52833