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).
| Plattform | Bezugsquelle | Voraussetzungen |
|---|---|---|
| Android | Google Play Store | Android 6.0+, kein Root |
| iOS | App Store | iOS 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
- Google Play Store öffnen, nach "nRF Connect" suchen
- App von Nordic Semiconductor installieren (blau-weißes Logo)
- Beim ersten Start: Standortberechtigung erteilen — Android verknüpft BLE-Scanning mit dem Standort-API, auch wenn du den Standort gar nicht nutzt
- 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
- App Store öffnen, nach "nRF Connect" suchen
- App installieren
- 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
- nRF Connect öffnen, Tab Scanner auswählen
- Auf SCAN tippen — die Liste füllt sich mit allen BLE-Geräten in Reichweite
- 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
- Gerät in der Scan-Liste finden (Gerät einschalten, App öffnen, dann scannen)
- Auf CONNECT tippen — nRF Connect baut eine BLE-Verbindung auf
- 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:
- Format auf HEX stellen
- Beispielwert für "LEDs rot setzen" eingeben:
56 FF 00 00 00 F0 AA - 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
| Problem | Ursache | Lösung |
|---|---|---|
| Scan-Liste leer | Standortberechtigung fehlt | Einstellungen → App-Berechtigungen → Standort: Immer erlauben |
| Gerät erscheint nicht | Advertising-Intervall lang oder Gerät schläft | Gerät aktivieren (z. B. Waage betreten), nochmals scannen |
| Verbindung bricht sofort ab | Gerät verlangt Pairing | Auto-bond aktivieren oder manuell pairen |
| Verbindung bricht nach 30 s ab | Connection Timeout / Supervision Timeout des Geräts | Sofort nach Verbindung eine Read-Operation ausführen, um die Verbindung aktiv zu halten |
| Schreiben schlägt fehl | Characteristic hat kein WRITE-Permission | UUID-Permissions prüfen; Write Without Response und Write sind unterschiedliche Opcodes |
| Android 12+: keine Geräte | Nearby Devices-Berechtigung fehlt | Systemeinstellungen → 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)