Hallo liebe Community, seit langer Zeit befasse ich mich mal wieder mit etwas digitalem. Es geht um den micro:bit von BBC und eine Bluetooth-Verbindung. Die Programmierung geht ja realitv einfach über ein Webinterface oder per Smartphone. Hauptsächlich interessiert mich das Thema BLE. Auf dem micro:bit habe ich einen Bluetooth-Service erstellt, der die Werte des Beschleunigungssensors zur Verfügung stellt. Nun dachte ich, dass ich mich mit der App "nrf connect" von nordic einfach verbinde und die Daten in Echtzeit auslese. Leider hat das nicht geklappt. Nach einigem Rumprobieren im Webinterface habe ich die entsprechende Stelle gefunden wo mein Fehler liegt. Man kann im Vorfeld des Projektes festlegen, ob Pairing notwendig ist oder nicht. Wenn ich das Pairing ausstelle kann ich die Daten in Echtzeit über nrf connect auslesen. Wenn das Pairing angestellt ist dann nicht. Dann kann ich nur die Daten über die App von micro:bit auslesen. Nun meine Frage: wenn das Pairing eingstellt ist handelt es sich da immer noch um eine BLE-Verbindung oder ist es dann ein vollwertige BL-Verbindung, also kein low energy?
Das ist immer noch BLE; der vom Micro:Bit verwendete Mikrocontroller nRF51822 kann glaube ich eh nur BLE, kein klassisches Bluetooth.
Polizeirat Becker schrieb: > Wenn das Pairing angestellt ist dann nicht. Dann kann > ich nur die Daten über die App von micro:bit auslesen. Dann machst Du was falsch IMHO. NRF Connect kann auch mit Pairing/Bonding umgehen. Übrigens wäre es ein Fehler auf einem Gerät ohne Display/Tastatur wie dem micro:bit das MITM-Bit zu setzen.
Ah verstehe! Wer BL 4.0 kann muss nicht zwangsläufig BLE können. Die Chipdesigns sind grundsätzlich unterschiedlich, aber man kann beide in ein Gehäuse integrieren. Mit anderen Worten der mirco:bit kann nur BLE, da der nrf51822 nur BLE kann. Das heißt man kann auch beim BLE sich pairen. Ist ein gepairte Verbindung grundsätzlich verschlüsselt?
Polizeirat Becker schrieb: > Das heißt man kann auch beim BLE sich pairen. Ist ein gepairte > Verbindung grundsätzlich verschlüsselt? Nein ist es nicht. Pairen bedeutet nur, dass die beiden Seiten Schlüssel ausgetauscht haben. Das die Verschlüsselung auch genutzt wird, muss der GATT Client (micro:bit) prüfen und ggf. mit einer Fehlermeldung antworten.
Nochmal ein paar Rückfragen nach weiterer Recherche. Der micro:bit kann nur BLE. Ich habe jetzt einen Temperatur Service gestartet und die Verbidung so eingestellt, dass ein pairing nicht notwendig ist. Ich kann mich jetzt über nrf connect mit dem mirco:bit verbinden und die Daten auslesen. Das bedeutet mein mirco:bit ist mein Server und mein Smartphone ist der Client. Theoretisch könnte sich jedes Smartphone über nrf connect oder ähnliches mit dem micro:bit verbinden und die Daten auslesen. Wenn sich jetzt jemand mit dem micro:bit verbindet, ist derjenige dann gepairt? Ist diese Verbindung zwischen den beiden Verschlüsselt oder könnte ich mit meinem Smartphone die Verbindung sniffen? Wenn derjenige mit dem micro:bit verbunden ist kann ich mich nicht mehr verbinden, richtig? Könnte ich aber den micro:bit in meiner Liste von Bluetooth-Geräten in der Nähe noch sehen? Nächste Frage zum Thema Bonding. Wenn ich mit einem BT-Gerät gebondet bin habe ich über Pairing Schlüssel getauscht und gespeichert und ich kann man mich beim nächsten Mal einfach verbinden, wenn ich in der Nähe bin. Die Kommunikation ist verschlüsselt. Wenn ein Bluetooth-Gerät, bspw. ein Autoradio, mit einem Smartphone gebondet ist, könnte sich dennoch ein zweites Gerät bonden lassen? Also kann sich das Autoradio mit mehreren Smartphones bonden?
Ohne Gewähr, teilweise könnte ich mich durchaus irren: Polizeirat Becker schrieb: > Theoretisch könnte sich jedes Smartphone über nrf connect oder ähnliches > mit dem micro:bit verbinden und die Daten auslesen. Korrekt. > Wenn sich jetzt jemand mit dem micro:bit verbindet, ist derjenige dann > gepairt? Nein, nur weil er sich verbindet, ist er nicht automatisch gepairt. > Ist diese Verbindung zwischen den beiden Verschlüsselt oder > könnte ich mit meinem Smartphone die Verbindung sniffen? Mit einem Smartphone geht das vermutlich eher schwer, aber grundsätzlich ist das durchaus möglich, ja. Zumindest ist das üblicherweise so, die meisten Bluetooth LE-Geräte kommunizieren völlig unverschlüsselt. > Wenn derjenige > mit dem micro:bit verbunden ist kann ich mich nicht mehr verbinden, > richtig? Könnte ich aber den micro:bit in meiner Liste von > Bluetooth-Geräten in der Nähe noch sehen? Man kann Bluetooth LE grundsätzlich glaube ich schon so betreiben, dass sich mehrere Clients gleichzeitig mit einem Server verbinden können. Alle mir bislang unter die Nase gekommenen Geräte waren allerdings so programmiert, dass sich immer nur ein einziger Client verbinden konnte; während ein Client verbunden war, konnte sich kein anderer mehr verbinden, und dieses Gerät war dann auch nicht mehr über eine Bluetooth-Geräte-Suche zu sehen, sprich, er hat dann auch keine Advertisements mehr gesendet. Erst, wenn der gerade verbundene Client disconnected war, war das Gerät über eine Bluetooth-Suche wieder zu sehen.
Polizeirat Becker schrieb: > Wenn sich jetzt jemand mit dem micro:bit verbindet, ist derjenige dann > gepairt? Nein, er ist nur verbunden. > Ist diese Verbindung zwischen den beiden Verschlüsselt oder > könnte ich mit meinem Smartphone die Verbindung sniffen? Grundsätzlich ist eine Verbindung ohne pairing immer unverschlüsselt, weil keine Schlüssel ausgetauscht wurden. Wenn das peripheral allerdings überhaupt keine IO-Möglichkeiten (Tasten, Display etc.) hat, dann kann das pairing erfolgen, ohne das man das an einen smartphone merkt erfolgen. Und ja, eine unverschlüsselte Verbindung kann man sniffen. Wenn man das pairing mit-sniffen kann, kann man in den meisten (ausser wenn LE secure connections ab BLE 4.2 verwendet werden) Fällen dann auch den Schlüsselaustausch mitlauschen. > Wenn derjenige > mit dem micro:bit verbunden ist kann ich mich nicht mehr verbinden, > richtig? Könnte ich aber den micro:bit in meiner Liste von > Bluetooth-Geräten in der Nähe noch sehen? Die Implementierung wird wahrscheinlich so sein, dass der micro:bit entweder periodisch advertisments sendet (und so in der Liste von Bluetooth-Geräten in der Nähe zu sehen ist), oder aktiv in einer Verbindung steckt. > Nächste Frage zum Thema Bonding. > Wenn ich mit einem BT-Gerät gebondet bin habe ich über Pairing Schlüssel > getauscht und gespeichert und ich kann man mich beim nächsten Mal > einfach verbinden, wenn ich in der Nähe bin. Ja, bonding ist pairing (also der Austausch von Schlüsseln) und das persistente Speichern dieser Schlüssel. > Die Kommunikation ist > verschlüsselt. Das ist nicht zwangsläufig so. Ein GATT Server bildet eine Art Key-Value Datenbank. Die BLE Spezifikation verlangt explizit dass auf einen Teil dieser Datenbank auch unverschlüsselt zugegriffen werden können muss. Für andere Teile, kann die Verschlüsselung gefordert sein. > Wenn ein Bluetooth-Gerät, bspw. ein Autoradio, mit einem Smartphone > gebondet ist, könnte sich dennoch ein zweites Gerät bonden lassen? Also > kann sich das Autoradio mit mehreren Smartphones bonden? Dazu läßt sich die BLE Spezifikation nicht aus. Kann durchaus sein, dass das Radio in der Lage ist, verschiedene Bond-Informationen zu speichern. mfg Torsten
Eine Frage zum automatischen Disconnect: Bin gerade beim Testen einer BLE Verbindung zwischen zwei RN4871 Modulen und stelle fest, daß die Verbindung regelmäßig abreißt. Ist das irgendwo in der Spezifikation hinterlegt unter welchen Bedingungen ein Disconnect erfolgt?
Roger schrieb: > Ist das irgendwo in der Spezifikation > hinterlegt unter welchen Bedingungen ein Disconnect erfolgt? Supervision timeout ist ein Parameter den die Geräte untereinander aushandeln können. Eventuell ist bei einem der Module der Quarz aus dem 250PPM Limit gelaufen. Dann könnte es das Sende/Empfangsintervall verpassen.
Jim M. schrieb: > Supervision timeout ist... Danke der technischen Hintergrundinfo. Wie sich herausstellte war der Grund für die spontanen Disconnects ein ganz profaner: In unmittelbarer Nähe sendete ein zweiter BT-Stick. Ein wenig Anstand und die Verbindung bleibt stabil.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.