Bluetooth ohne App?

Wie kann ich ein normales Bluetooth-Pairing machen? Jedes Mal wenn ich ein Pairing probiere, bekomme ich diesen Punktecode, der wohl für die App gedacht ist. Und wenn ich in Makecode den Bluetooth-Modus auf PIN einstelle, kriege ich einen Compilerfehler.
Ich wollte Calliope mit meinem Raspberry Pi 3 pairen und dann selber ein Programm schreiben, dass Daten zwischen den beiden Geräten austauscht. Ich habe bluetoothctl ausprobiert, dass behauptet eine Verbindung herzustellen. Aber Calliope registriert das nicht und zeigt weiter den Punktcode an. Das Drücken von allen Tasten hat auch nichts gebracht.

Hallo Banbury,
du hast eine App auf deinem Smartphone installiert?
Ohne ist es recht kompliziert eine wirkliche Verbindung herzustellen, die dann auch Daten zwischen mini und Gerät übertragen kann. Schau dir doch aber mal die Doku dazu an: https://lancaster-university.github.io/microbit-docs/ble/profile/
Grüße
Jörn

Ich weiß, dass das kompliziert ist, aber ich bin Programmierer und traue mir das zu. :slight_smile:

Mein Problem ist, dass ich noch nicht einmal das Pairing hinkriege. Die Anleitung vom micro:bit nützt mir da auch nichts. Calliope verhält sich anders. Beim micro:bit würde nach einem Pairing-Versuch ein Pfeil auftauchen, der auf Button A zeigt. Wenn man auf A drückt, wird das Pairing durchgeführt. Beim Calliope passiert aber nichts, obwohl bluetoothctl ein erfolgreiches Pairing anzeigt. Für mich heißt das, dass Calliope alle Pairings ohne Sicherheitsabfrage erlaubt. Eine Connection kriege ich aber nicht.

Ich benutze Linux und kein Smartphone.

Bei einem Smartphone könntest du zumindest nrfConnect von Nordic nutzen, um alle Werte sehen zu können – ich weiß nicht, wie das bei bluetoothctl aussieht.
Hast du einen Microbit? Das Pairing ist eigentlich sehr ähnlich (je nach Firmwarerevision sogar exakt identisch). Die Infos zum Microbit sind deshalb trotzdem wichtig. Du musst beim mini die Tasten A+B, sowie Reset gleichzeitig drücken (nach kurzer Zeit Reset loslassen), damit du in den Pairing Modus kommst. Das steht dann da auch und du siehst das Pairing-Muster des minis.
Beste Grüße
Jörn

Das Pairingmuster kriege ich. Aber wenn ich von Linux aus ein Pairing auslöse, verhält sich Calliope eben nicht wie der micro:bit (ich habe leider keinen, aber es gibt eine Anleitung dafür).

Hier ist ein Video, wie das funktionieren sollte: https://www.youtube.com/watch?v=bIMv63Ue1C0
Das ist für Mac. Es sollte aber für Windows und Linux genauso gehen.

Schau oder frage mal hier!

Ah, ich wusste gar nicht, dass es die App auch als Desktop Version gibt… Bei mir (unter OSX) funktioniert die Verbindung so wie im Video – allerdings wird bei der von mir genutzten Firmware ebenfalls nicht der Passcode abgefragt.

Das ist alles wirklich eigenartig. Ich habe jetzt das Pairing mit meinem Android Tablet geschafft. Dazu musste ich aber den Raspberry Pi ausschalten, sonst hat das Tablet Calliope überhaupt nicht angezeigt. Ich musste auch einen Passcode eingeben, aber der war 000000. Das ist wohl kaum im Sinne des Erfinders.
Ich habe verschiedene andere Bluetooth-fähige Geräte ausprobiert. Jedes verhält sich anders.

Ich werde noch ein bißchen damit rumprobieren. Aber Spass macht das bisher keinen.

Hallo Banbury,

die 000000 ist per Default angegeben. Leider sind Bluetooth und BLE an unterschiedlichsten Geräten recht individuelle Dinge. Beim mini ist das leider auch nicht anders. Wir werden in der kommenden Firmware darum auch einiges an Palast abwerfen und ein paar Dinge vereinfachen. Trotzdem ist es (leider) nicht wie bei einem Kopfhörer o.ä. der einfach funktioniert und immer schön gepaired bleibt…
Halt uns hier gern auf dem Laufenden, mich interessiert das sehr!
Beste Grüße
Jörn

Ich habe zum Testen eine Bluetooth-Tastatur mit dem Raspberry Pi verbunden. Und da hat alles einwandfrei geklappt - einschließlich Passcode.
Irgendwo hält sich Calliope nicht an den Standard. Der Raspberry Pi bekommt ein erfolgreiches Pairing (ohne Codeeingabe) und eine Connection angezeigt, obwohl Calliope keine Connection registriert. Ich halte das ziemlich sicher für einen Softwarefehler auf eurer Seite. Bei einem Fehlschlag der Verbindung sollte zumindestens die richtige Antwort gesendet werden.

Du darfst nicht vergessen, dass der Raspberry Pi Bluetooth 4.x unterstützt und am mini/microbit BLE zur Verfügung steht… In der Doku solltest du aber auch alle zur Verfügung stehenden Dienste finden: https://lancaster-university.github.io/microbit-docs/ble/profile/

Macht das einen Unterschied im Protokoll? BLE ist doch auch Bluetooth?

Ich versuche gerade eine neue Version von Bluez auf den Raspberry Pi zu installieren. Vielleicht hilft das ja.

Mit der neuen Version von Bluez bekommen ich mehr Informationen. Aber die Passcode-Abfrage geht immer noch nicht. bluetoothctl wartet auf eine Antwort von Calliope, die aber nie kommt.
Wenn ich das Pairing komplett ausschalte, dann bekomme ich auch eine Verbindung. Also ist das kein Hardware-Problem.
Hier ist eine Anleitung, wie das beim micro:bit funktioniert: http://bluetooth-mdw.blogspot.com/2017/02/pairing-bbc-microbit-with-raspberry-pi.html
Eigentlich sollte da eine Passcode-Abfrage kommen. Aber beim Calliope kommt sie eben nie.

Hi Banbury,
ich schaffe es gerade nicht mir das anzuschauen. Probier doch aber folgendes:
https://makecode.calliope.cc öffnen, das Bluetooth Paket laden und danach in den Einstellungen (das Rädchen) “Passkey pairing: Pairing requires 6 digit key to pair.” wählen. Dann hast du jedenfalls schon mal die gewünschte Einstellung.
Grüße
Jörn

Ja, die Einstellung kenne ich schon. Hat aber nicht funktioniert.

Ohne Security geht eigentlich alles. Für den Moment werde ich eben so arbeiten. Aber ich hoffe, dass Ihr Euch das in Zukunft mal anschaut.