🛠 Piloter une LED par Bluetooth LE avec le SDK nRF5
L'objectif
ble_app_blinky est l'exemple didactique de Nordic : un service GATT personnalisé avec une caractéristique LED (écriture) et une caractéristique Button (notification). Vous écrivez depuis le téléphone, la LED RGB de la carte s'allume ; vous appuyez sur le bouton utilisateur, le téléphone reçoit la notification. C'est le meilleur exercice pour comprendre write/notify avant d'écrire son propre service.
Étape 1 — Compiler pour la carte
Le dépôt MakerDiary porte les exemples du SDK nRF5 (17.0.x, SoftDevice S140 6.1.1) vers la carte :
git clone https://github.com/makerdiary/nrf52840-mdk.git
cd nrf52840-mdk
make BOARD=nrf52840_mdk -C examples/nrf5-sdk/ble_app_blinky/s140/nrf52840
L'hex applicatif apparaît dans _build/ble_app_blinky_nrf52840_mdk.hex. Si la compilation échoue, vérifiez la version du SDK et de gcc-arm-none-eabi attendue par le Makefile — le dépôt n'est plus mis à jour depuis 2021.
Étape 2 — Merger SoftDevice + application
Le glisser-déposer exige une image unique ; oublier cette étape donne une carte qui flashe sans rien diffuser (issue #31) :
mergehex -m s140_nrf52_6.1.1_softdevice.hex \
_build/ble_app_blinky_nrf52840_mdk.hex \
-o firmware.hex
Déposez firmware.hex sur le lecteur DAPLINK, appuyez sur Boot/Reset.
Étape 3 — Piloter depuis nRF Connect
- Installez nRF Connect for Mobile (pas Toolbox : ici on veut l'accès GATT brut).
- Scannez et connectez-vous au périphérique
DK. - Dépliez le service personnalisé : la caractéristique LED accepte l'écriture — envoyez
01et la LED s'allume,00l'éteint. - Activez les notifications sur la caractéristique Button, appuyez sur le bouton utilisateur de la carte : la valeur change dans l'app.
Ce que vous maîtrisez après
- Services et caractéristiques personnalisés : UUID 128 bits, propriétés read/write/notify, callbacks
ble_evt_tcôté carte. - Le port CDC du DAPLink (115200 bauds) affiche les logs de la pile BLE pour dépanner.
- La LED RGB et le bouton sont des broches P0 classiques : voyez le pinout diagram PDF officiel, ne codez pas de broche en dur.
SDK nRF5 ou nRF Connect SDK ?
Le SDK nRF5 est en héritage ; pour un projet neuf, Nordic pousse NCS (base Zephyr). nrf52840_mdk est une carte Zephyr amont — les builds compatibles NCS se font via les guides MakerDiary, mais la carte n'est pas listée nommément dans la doc Nordic. L'équivalent moderne du sample : samples/bluetooth/peripheral_blinky dans l'arbre Zephyr.