🛠 Diffuser une fréquence cardiaque BLE vers nRF Toolbox
L'objectif
Flasher l'exemple « heart rate » de Nordic (service GATT standard Heart Rate) sur le nRF52840-MDK, puis observer la courbe de fréquence cardiaque simulée dans l'app mobile nRF Toolbox. C'est la démo phare du wiki MakerDiary : elle valide toute la chaîne — SDK, SoftDevice S140, mergehex, flash en glisser-déposer, radio BLE.
Prérequis
- nRF5 SDK 17.x et la toolchain Arm GCC (
gcc-arm-none-eabi) attendue par le SDK. - L'outil
mergehexde Nordic (nRF Command Line Tools). - Le dépôt d'exemples MakerDiary, qui porte les exemples sur la carte :
git clone https://github.com/makerdiary/nrf52840-mdk.git
cd nrf52840-mdk
Étape 1 — Compiler ble_app_hrs
make BOARD=nrf52840_mdk -C examples/nrf5-sdk/ble_app_hrs/s140/nrf52840
L'hex applicatif sort dans le dossier _build/ de l'exemple. Attention : le dépôt MakerDiary n'a plus de push depuis 2021 ; si la compilation casse, vérifiez que vous êtes bien sur le SDK 17.0.x avec le SoftDevice S140 6.1.1 attendu par les Makefiles.
Étape 2 — Merger et flasher
La pile BLE a besoin du SoftDevice S140. Fusionnez les deux hex, puis déposez l'image sur le lecteur DAPLINK :
mergehex -m s140_nrf52_6.1.1_softdevice.hex \
_build/ble_app_hrs_nrf52840_mdk.hex \
-o firmware.hex
Déposez firmware.hex sur le lecteur DAPLINK, puis appuyez sur Boot/Reset.
Étape 3 — Se connecter avec nRF Toolbox
- Installez nRF Toolbox (Android/iOS) et ouvrez le module Heart Rate.
- Lancez un scan : le périphérique apparaît (nom publicitaire
Nordic_HRM). - Connectez-vous : la courbe de fréquence cardiaque simulée se met à jour par notifications BLE.
Ce que cette démo vous apprend
- Publicité → connexion → GATT : le service Heart Rate (0x180D) expose la caractéristique Heart Rate Measurement en notify — le cœur du BLE peripheral.
- Le SoftDevice est un contrôleur + pile BLE qui s'exécute sous votre application ; sans merge, rien ne publicité (la fameuse issue #31).
- Le port COM virtuel du DAPLink (CDC, 115200 bauds) affiche les logs de l'exemple : idéal pour dépanner.
Alternative Zephyr
Le sample peripheral_hr de Zephyr amont fonctionne aussi sur la carte, mais le portage MakerDiary date : il ne compile plus avec Zephyr 3.5+ (issue #55). Prenez la version courante de l'arbre Zephyr (west build -b nrf52840_mdk samples/bluetooth/peripheral_hr) plutôt que celle du dépôt.