🛠 Premier blinky Zephyr sur le nRF52833-DK
La carte en une minute
Le nRF52833-DK de Nordic Semiconductor (code carte PCA10100, ~49 US$ chez DigiKey) est le kit officiel autour du SoC nRF52833 : Arm Cortex-M4 avec FPU @ 64 MHz, 512 Ko de flash, 128 Ko de RAM, radio multiprotocole 2,4 GHz (BLE 5, Bluetooth mesh, Thread, Zigbee), USB, NFC et ADC 12 bits. Format Arduino Uno Rev3 (3,3 V uniquement), 42 E/S accessibles sur connecteurs, et surtout un MCU d'interface SEGGER J-Link OB embarqué : débogage, programmateur et port COM virtuel, sans aucun matériel externe. La carte est maintenue dans Zephyr amont sous le nom nrf52833dk.
Étape 1 — Installer la chaîne Zephyr
Suivez le Getting Started Guide officiel de Zephyr pour votre OS (CMake, Ninja, Python 3, toolchain Cortex-M, puis west) :
python3 -m venv .venv && source .venv/bin/activate # Windows : .venv\Scripts\activate
pip install west
west init zephyrproject
cd zephyrproject && west update
Côté matériel, le User Guide demande un simple câble micro-USB et un J-Link logiciel v6.52 ou plus récent installé sur l'hôte.
Étape 2 — Brancher le kit
Le kit dispose de deux connecteurs micro-USB : J2 pour le MCU d'interface J-Link OB, J3 pour l'USB natif du nRF52833. Pour flasher, branchez le câble sur J2. Le programmeur embarqué reconnaît la carte sans configuration.
Étape 3 — Compiler et flasher
west build -b nrf52833dk/nrf52833 samples/basic/blinky
west flash
La LED1 doit clignoter. Les 4 LED utilisateur sont sur P0.13 à P0.16, actives au niveau bas (elles s'allument quand la broche passe à 0) ; des ponts de soudure SB5-SB8 permettent de les déconnecter. Le même PCB existe en cible nRF52820 (256 Ko flash / 32 Ko RAM) : west build -b nrf52833dk/nrf52820 ....
Étape 4 — Comprendre le code
Le devicetree de la carte définit l'alias led0 (LED1 = P0.13), d'où l'exemple standard :
#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);
}
}
Pièges connus
- Mauvaise cible : un sample compilé pour
pca10056(nRF52840-DK) ne mappe ni les LED ni les boutons sur la PCA10100 — le fil DevZone « nRF52833-DK blinky problem » vient de là. Utilisez toujoursnrf52833dk/nrf52833. - Boutons sans pull-up externe : les 4 boutons sont sur P0.11, P0.12, P0.24, P0.25, actifs au niveau bas, sans résistance de pull-up sur le PCB — activez les pull-up internes (GPIO_PULL_UP) dans votre code.
- Ne confondez pas J2 (interface) et J3 (USB du SoC) : brancher sur J3 ne fait rien tant que votre firmware n'a pas initialisé l'USB.
Autres tutoriels pour cette carte
- 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