🛠 Premier périphérique BLE avec le nRF Connect SDK
Le SDK à utiliser
Le nRF Connect SDK (NCS) est le SDK officiel pour le nRF52833 : le Product Brief du kit dit textuellement que le NCS est le SDK de développement de ce SoC, avec support de la carte. Il intègre Zephyr RTOS, la pile Bluetooth LE/mesh et le port OpenThread. La cible se nomme nrf52833dk/nrf52833. Le vieux nRF5 SDK (v16.0.0 cité par le User Guide de 2019) est en héritage — pour un projet BLE neuf, partez sur le NCS.
Étape 1 — Installer le NCS
Le plus simple : l'installateur graphique « nRF Connect for Desktop » avec son gestionnaire de toolchain, puis west init -m 0 --mr main ncs et west update. La voie Zephyr amont fonctionne aussi sur cette carte (elle est « Maintained » en amont) ; les exemples ci-dessous marchent dans les deux arbres.
Étape 2 — Le firmware publicitaire
Un minimal connectable advertiser, tel que documenté pour la carte :
/* beacon.c — NCS 2.x ; sur Zephyr récent BT_LE_ADV_CONN
* est devenu BT_LE_ADV_CONN_FAST_1 */
#include <zephyr/kernel.h>
#include <zephyr/sys/util.h>
#include <zephyr/bluetooth/bluetooth.h>
static const struct bt_data ad[] = {
BT_DATA_BYTES(BT_DATA_FLAGS, BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR),
BT_DATA(BT_DATA_NAME_COMPLETE, CONFIG_BT_DEVICE_NAME,
sizeof(CONFIG_BT_DEVICE_NAME) - 1),
};
int main(void)
{
bt_enable(NULL);
if (bt_le_adv_start(BT_LE_ADV_CONN, ad, ARRAY_SIZE(ad), NULL, 0)) {
return 0;
}
while (1) {
k_sleep(K_SECONDS(1)); /* la radio tourne en ISR/threads */
}
}
Dans prj.conf : CONFIG_BT=y et CONFIG_BT_DEVICE_NAME="mon-dk". Build et flash par le J-Link OB (câble sur J2) :
west build -b nrf52833dk/nrf52833 mon-projet && west flash
Étape 3 — Voir le signal côté téléphone
Installez nRF Connect for Mobile (Nordic, Android/iOS) : scan → mon-dk apparaît → connectez-vous. Pour un scénario complet service GATT + notifications, le sample peripheral_uart (Nordic UART Service) est l'étape d'après ; les samples Bluetooth de Zephyr amont se compilent tels quels sur nrf52833dk.
Les options radio qui vous ouvrent des portes
Le nRF52833 n'est pas un BLE générique — le Product Spec v1.7 documente :
- 4 débits LE : 2 Mbps, 1 Mbps, 500 kbps et 125 kbps (Long Range, sensibilité −103 dBm) ;
- Direction Finding AoA/AoD (radiogoniométrie BLE 5.1+) ;
- multiprotocole : le même radio fait aussi Bluetooth mesh, IEEE 802.15.4 (Thread/Zigbee) et 2,4 GHz propriétaire ;
- puissance d'émission −20 à +8 dBm par pas de 4 dB — côté pile, l'antenne PCB du kit est là ; pour les mesures conduites, voyez le tuto connecteur RF.
Pièges
- Le port COM virtuel du J-Link OB (broches P0.05-P0.08 du SoC) sert aux logs : votre terminal doit assertir DTR, sinon pas de sortie.
- Ne pas confondre avec les vieux samples SDK nRF5 + SoftDevice S140 : en NCS/Zephyr, le contrôleur BLE est intégré au build, il n'y a pas de SoftDevice à merger.
- Un sample buildé pour
pca10056ne mappe pas les boutons/LED du PCA10100 : restez sur la bonne cible.
Autres tutoriels pour cette carte
- Premier blinky Zephyr sur le nRF52833-DK
- Flasher un .hex sans rien installer : MSD et nRF Connect Programmer
- CircuitPython sur le kit Nordic : le prototypage sans C
- 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