nRF Connect Mobile

BLE-Geräte scannen, GATT-Services erkunden und Verbindungen testen

Lernziel

Nach dieser Seite weißt du, wie du nRF Connect Mobile einsetzt, um BLE-Geräte zu finden, ihre Advertisement-Daten auszulesen, GATT-Services zu erkunden und Charakteristiken manuell zu lesen oder zu schreiben — ohne eine einzige Zeile Code.


Was ist nRF Connect Mobile?

nRF Connect Mobile ist eine kostenlose App von Nordic Semiconductor, dem Hersteller des nRF52840-Dongles. Sie ist der Schweizer Taschenmesser der BLE-Analyse: ein vollständiger BLE-Scanner, GATT-Browser, Characteristic-Editor und Advertisement-Parser in einer einzigen App.

Die App läuft auf Android und iOS. Auf Android brauchst du kein Root — BLE-Scanning ist eine normale API. Auf iOS gibt es geringe Einschränkungen durch Apples CoreBluetooth-Framework (Background-Scanning ist limitiert, aber für manuelle Tests ausreichend).

PlattformBezugsquelleVoraussetzungen
AndroidGoogle Play StoreAndroid 6.0+, kein Root
iOSApp StoreiOS 14+, kein Jailbreak

Warum nicht einfach die Hersteller-App?

Die Hersteller-App zeigt dir nur, was der Hersteller dir zeigen möchte. nRF Connect zeigt dir alles: rohe Advertisement-Daten, alle GATT-Services inklusive versteckter, Signalstärken, Connection-Parameter und mehr. Für die Sicherheitsanalyse ist das der entscheidende Unterschied.


Installation

Android

  1. Google Play Store öffnen, nach "nRF Connect" suchen
  2. App von Nordic Semiconductor installieren (blau-weißes Logo)
  3. Beim ersten Start: Standortberechtigung erteilen — Android verknüpft BLE-Scanning mit dem Standort-API, auch wenn du den Standort gar nicht nutzt
  4. Auf Geräten mit Android 12+: zusätzlich Nearby Devices-Berechtigung erteilen

Android-BLE-Berechtigung: Standort ist Pflicht

Ohne die Standortberechtigung (und bei Android 6–11: aktiviertes Standort-Feature) findet nRF Connect gar keine Geräte. Das klingt kontraintuitiv — ist aber eine Android-Designentscheidung, weil BLE-Scanning zur Positionsbestimmung genutzt werden kann. Wenn der Scan komplett leer bleibt, prüfe zuerst die Berechtigungen.

iOS

  1. App Store öffnen, nach "nRF Connect" suchen
  2. App installieren
  3. Beim ersten Start Bluetooth-Berechtigung erteilen

Praxisbeispiel: Körperwaage (Lebenlang) scannen

Die Lebenlang-Körperwaage sendet ihre Messdaten ausschließlich über BLE-Advertisements — es gibt keine GATT-Verbindung und keine Charakteristiken zum Lesen. nRF Connect zeigt genau das.

Schritt 1: Scan starten

  1. nRF Connect öffnen, Tab Scanner auswählen
  2. Auf SCAN tippen — die Liste füllt sich mit allen BLE-Geräten in Reichweite
  3. Im Suchfeld nach "Lebenlang" oder "Scale" suchen, oder nach der MAC-Adresse filtern, falls bekannt

Geräteliste leer?

Falls keine Geräte erscheinen: Gerät einschalten und in Reichweite bringen (BLE hat ca. 10 m), Standortberechtigung prüfen, Bluetooth-Toggle aus- und einschalten.

Schritt 2: Advertisement-Daten lesen

Tippe auf das Gerät in der Liste (noch nicht auf CONNECT, sondern auf den Eintrag selbst). Im aufgeklappten Bereich siehst du:

Device Name:    (leer oder "Lebenlang Scale")
RSSI:           -62 dBm
Address:        XX:XX:XX:XX:XX:XX (Public)

Advertisement Data:
  Flags:                 0x06 (LE General Discoverable, BR/EDR Not Supported)
  Manufacturer Specific: Company ID 0x05C0
                         Data: 00 00 00 50 00 00 00 ...

Die Company ID 0x05C0 identifiziert den Hersteller im Manufacturer Specific Data-Feld. Dieser Wert ist in der Bluetooth SIG-Datenbank registriert. Im Feld dahinter stecken die eigentlichen Messdaten — Gewicht, Impedanzwert und Zeitstempel — im herstellerspezifischen Format.

Schritt 3: Raw-Daten analysieren

Tippe auf RAW neben dem Advertisement, um den vollständigen Byte-String zu sehen:

02 01 06 11 FF C0 05 00 00 00 50 ...
        ↑           ↑↑
        Flags       Manufacturer ID (little-endian: C0 05 = 0x05C0)

Das ist derselbe Byte-Stream, den du später in Wireshark siehst. nRF Connect macht ihn auf dem Smartphone lesbar, ohne dass du Hardware-Sniffer oder Laptop brauchst.


Praxisbeispiel: LED-Strip GATT-Services erkunden

Der LED-Strip (wl.smartled) nutzt GATT-Kommunikation. Hier verbindest du dich und schaust dir die Services live an.

GATT-Service Browser

  1. Gerät in der Scan-Liste finden (Gerät einschalten, App öffnen, dann scannen)
  2. Auf CONNECT tippen — nRF Connect baut eine BLE-Verbindung auf
  3. Im Tab Client siehst du den GATT-Service-Baum:
Primary Services
└─ Generic Access (0x1800)
   ├─ Device Name (0x2A00)          [READ]
   └─ Appearance (0x2A01)           [READ]
└─ Generic Attribute (0x1801)
└─ Unknown Service (0xFFF0)        ← herstellerspezifisch
   ├─ Unknown Characteristic (0xFFF1) [NOTIFY]
   └─ Unknown Characteristic (0xFFF3) [WRITE, WRITE WITHOUT RESPONSE]

Der Service 0xFFF0 ist herstellerspezifisch. Die Charakteristik 0xFFF3 hat WRITE-Permissions — das ist der Steuerkanal für die LEDs.

Charakteristik lesen

Tippe auf das Download-Symbol (↓) neben einer READ-Charakteristik. nRF Connect sendet einen ATT Read Request und zeigt den Wert als Hex und ASCII:

Device Name (0x2A00):
  Value: 4C 45 44 20 53 74 72 69 70
  ASCII: LED Strip

Charakteristik schreiben

Tippe auf das Upload-Symbol (↑) neben 0xFFF3. Es öffnet sich ein Eingabefeld:

  1. Format auf HEX stellen
  2. Beispielwert für "LEDs rot setzen" eingeben: 56 FF 00 00 00 F0 AA
  3. Auf WRITE tippen — der LED-Strip wechselt die Farbe

Schreiben verändert den Gerätezustand

Wenn du in eine WRITE-Charakteristik schreibst, sendest du tatsächlich einen Befehl an das Gerät. Bei der Körperwaage oder dem LED-Strip ist das harmlos. Bei anderen Geräten (z. B. Schlössern, medizinischen Geräten) kann das unerwünschte Folgen haben. Teste nur Geräte, die dir gehören.


Weitere Features

RSSI-Graph

Tippe auf ein Gerät in der Scan-Liste und dann auf das Graph-Symbol. nRF Connect zeigt den Signalstärkeverlauf (RSSI in dBm) über die Zeit. Nützlich, um:

  • Die ungefähre Entfernung zum Gerät einzuschätzen (–30 dBm ≈ sehr nah, –90 dBm ≈ Reichweitengrenze)
  • Intermittierendes Advertising zu erkennen (Gerät sendet nur alle N Sekunden)

Filter-Optionen

Im Scanner-Tab gibt es Filter-Icons:

  • Nach Name: Zeigt nur Geräte mit passendem Namen
  • Nach RSSI: Blendet schwache Signale aus (nützlich in Umgebungen mit vielen BLE-Geräten)
  • Nach Service UUID: Zeigt nur Geräte, die einen bestimmten GATT-Service in ihrem Advertisement ankündigen

Bonding-Test

Manche Geräte verlangen Pairing (Bonding), bevor sie GATT-Verbindungen akzeptieren. nRF Connect testet das automatisch: Wenn die Verbindung sofort nach dem Aufbau mit einem "Encryption Required"-Fehler getrennt wird, brauchst du Bonding.

Aktiviere dafür in nRF Connect: Einstellungen → Auto-bond — die App leitet dann den Pairing-Prozess ein.

Advertising-Daten-Parser

nRF Connect dekodiert die meisten Standard-Advertisement-Typen automatisch (Flags, Complete Local Name, TX Power Level, Service UUIDs, Manufacturer Specific Data). Das AD-Type-Byte (z. B. 0xFF für Manufacturer Specific) wird mit dem zugehörigen Feldnamen angezeigt.

Log-Datei exportieren

Unter Einstellungen gibt es Export Log. Das erzeugt eine .csv-Datei mit allen gescannten Geräten, Timestamps, RSSI-Werten und Advertisement-Rohdaten — nützlich für die Dokumentation in der Analysephase.


Häufige Probleme

ProblemUrsacheLösung
Scan-Liste leerStandortberechtigung fehltEinstellungen → App-Berechtigungen → Standort: Immer erlauben
Gerät erscheint nichtAdvertising-Intervall lang oder Gerät schläftGerät aktivieren (z. B. Waage betreten), nochmals scannen
Verbindung bricht sofort abGerät verlangt PairingAuto-bond aktivieren oder manuell pairen
Verbindung bricht nach 30 s abConnection Timeout / Supervision Timeout des GerätsSofort nach Verbindung eine Read-Operation ausführen, um die Verbindung aktiv zu halten
Schreiben schlägt fehlCharacteristic hat kein WRITE-PermissionUUID-Permissions prüfen; Write Without Response und Write sind unterschiedliche Opcodes
Android 12+: keine GeräteNearby Devices-Berechtigung fehltSystemeinstellungen → Apps → nRF Connect → Berechtigungen → In der Nähe befindliche Geräte

nRF Connect für Desktop vs. Mobile

Es gibt auch nRF Connect for Desktop — eine Electron-App mit Plugins (Programmer, Sniffer). Die Mobile-App und die Desktop-App teilen den Namen, sind aber unterschiedliche Produkte. Für schnelle GATT-Exploration unterwegs: Mobile-App. Für Firmware-Flashing auf den nRF52840-Dongle: Desktop-App.


Zusammenfassung

  • nRF Connect Mobile ist ein kostenloser BLE-Scanner und GATT-Browser für Android und iOS — kein Root oder Jailbreak nötig
  • Advertisement-Daten (Manufacturer ID, Rohdaten) sind direkt im Scanner-Tab lesbar ohne Verbindung
  • GATT-Services, Charakteristiken und deren Permissions werden im Client-Tab nach dem Verbinden angezeigt
  • Lesen und Schreiben von Charakteristiken ist über die UI möglich — nützlich für schnelle manuelle Tests
  • RSSI-Graph, Filter und Log-Export ergänzen die Analyse
  • Auf Android: Standortberechtigung ist für BLE-Scanning zwingend erforderlich (Android-API-Constraint, kein Fehler der App)