Seite 1 von 4

CFW: Bluetooth

Verfasst: 05 Feb 2017, 18:11
von MasterOfGizmo
Es ist schon eine Weile her, daher erinnere ich mich kaum noch an die Details. Also, wie war denn eigentlich der genaue Zustand von Bluetooth in der Community-Firmware? Für das "Blue Smart Beginner Set" würde ich gerne eine Anbindung bauen.

Auf der FT-Seite dazu steht:
"Für Windows 7 ausgewählte Bluetooth 4.0 Sticks erforderlich."
Kann die Hardwrae des TXT BT 4.0?

Re: CFW: Bluetooth

Verfasst: 05 Feb 2017, 19:32
von ski7777
Guck mal im patch Bereich vom TXT in den Commitcomments. Ich arbeite aktuell an einer vereinfachen Umsetzung in meinem fork im branch Bluetooth.

Raphael

Re: CFW: Bluetooth

Verfasst: 05 Feb 2017, 19:56
von ski7777
Sorry, ich meinte den Treiberteil. Geneauer gesagt hier: http://bit.ly/2kaHcNA (Wie immer, phpbb kann leider keine artifacts)

Raphael

Re: CFW: Bluetooth

Verfasst: 05 Feb 2017, 21:12
von MasterOfGizmo
Ah, cool, danlke. Genau das hatte ich vergessen.

Aber leider klappt

# gatttool -b A0:E6:F8:1B:E1:B9 --primary
connect: Connection refused (111)

nicht.

Code: Alles auswählen

hciconfig -a hci0 features
zeigt aber LE-Fähigkeit an:

Code: Alles auswählen

# hciconfig -a hci0 features
hci0:   Type: BR/EDR  Bus: UART
        BD Address: 78:A5:04:23:DC:FC  ACL MTU: 1021:6  SCO MTU: 180:4
        Features page 0: 0xff 0xfe 0x2d 0xfe 0xdb 0xff 0x7b 0x87
...
                <AFH cap. slave> <AFH class. slave> <LE support> 
...
                <extended inquiry> <LE and BR/EDR> <simple pairing> 
Und ein lescan geht auch:

Code: Alles auswählen

# hcitool lescan
LE Scan ...
A0:E6:F8:1B:E1:B9 (unknown)
A0:E6:F8:1B:E1:B9 LPF2 Smart Hub 2 I/O
Hmmm ... knapp. Das ist in diesem Fall ein Lego 2.0 WeDo-Hub. Aber für das BT Smart Beginner Set werden wir das wohl brauchen, wenn wir auf das USB-Kabel verzichten wollen. Was ja schon schick wäre ...

Re: CFW: Bluetooth

Verfasst: 05 Feb 2017, 21:24
von MasterOfGizmo
Ah, auf dem TXT fehlt nur das btmgmt-Tool. Kurz manuell installiert und

Code: Alles auswählen

btmgmt le on
und der TXT kann per

Code: Alles auswählen

gatttool -b A0:E6:F8:1B:E1:B9 --char-write-req -a 0x003d -n 050204B801F401
Den WeDo-Hub einen Ton spielen lassen.

Das giesse ich dann mal ein eine kleine Test-App. Und dann kann das "BT Smart Beginner Set" wohl kommen ...

Re: CFW: Bluetooth

Verfasst: 05 Feb 2017, 21:26
von raspberrypi
Dann sind auch die Schritte für eine Kommunikation zwischen TXT und TX geebnet?

Liebe Grüse,

raspberrypi

Re: CFW: Bluetooth

Verfasst: 05 Feb 2017, 21:27
von MasterOfGizmo
Spricht irgendwas dagegen, dass die LE-Tools und ggf. eine gatt-Library fest in die Firmware integriert wird und uim beim Booten gestartet wird?

Dann wären wir auf das Erscheinen des BT smart Controllers vorbereitet.

Re: CFW: Bluetooth

Verfasst: 05 Feb 2017, 21:28
von MasterOfGizmo
raspberrypi hat geschrieben:Dann sind auch die Schritte für eine Kommunikation zwischen TXT und TX geebnet?
Das sowieso. Der TX nutzt ja kein BT 4.0 bzw. Low-Power-Profile sondern Feld-Wald-und-Wiesen-Bluetooth. Das sollte einfach gehen.

Re: CFW: Bluetooth

Verfasst: 05 Feb 2017, 21:28
von ski7777
Wenn du mir genauere Instruktionen zur Installationen diieses Tools und den Kommandos für BLE gibst, kann ich das in meinen Branch einbauen. Dann kann ich Bald auch einen PR öffnen.
raspberrypi hat geschrieben:Dann sind auch die Schritte für eine Kommunikation zwischen TXT und TX geebnet?
Naja, Theoretisch ist eine Bluetoothverbindung möglich, jedoch sind mir die Kommandos nicht bekannt, die man an den TX senden muss, dass er was tut. Vielleicht könntest du da was zu raussuchen, eventuell lässt sich das dan umsetzen.

Raphael

Re: CFW: Bluetooth

Verfasst: 05 Feb 2017, 21:40
von MasterOfGizmo
Wenn ich das selbst raussuche, dann baue ich das auch direkt ein. Aber da kommen ja auch noch ein paar andere Dinge dazu und der ftc-User braucht entsprechende Rechte etc. Ich denke ich mache das alles in Form einer kleinen WeDo-2.0-Demo.

Das Zauberwort für den TX dürfte "rfcomm" heissen, da ich annehme, dass er das serielle Profil verwendet. Den Rest findet man auf Seiten wie http://askubuntu.com/questions/248817/h ... connection

Edit: Die nötigen Tools wie rfcomm und sdptool sind inder CFW bereits vorhanden

Re: CFW: Bluetooth

Verfasst: 05 Feb 2017, 21:57
von ski7777
Mit dem rfcomm für den TX hast du recht.

Meine Änderungen belaufen sich im Moment darauf, dass man als ftc Nutzer das Bluetooth an und ausschalten kann und der TXT sichtbar ist. Ich werde das jetzt mal zu einem PR machen, und falls da noch features hinzuzufügen sind, kannst du das ja machen.

Raphael

Re: CFW: Bluetooth

Verfasst: 05 Feb 2017, 22:05
von MasterOfGizmo
Mach Dir keine Arbeit. Ich habe das ja auch alles gerade eben gemacht. Das checke ich alles zusammen ein, wenn es alles läuft. Das häppchenweise zu machen führt nur zu unnötigen Kollisionen.

Edit: Alternative: Du übernimmst den Part komplett und ich wende mich irgendeiner anderen Aufgabe zu.

Re: CFW: Bluetooth

Verfasst: 05 Feb 2017, 22:29
von ski7777
Ich würde das übernehmen. Kannst du mir deine bisherige Arbeit zur Verfügung stellen?

Re: CFW: Bluetooth

Verfasst: 05 Feb 2017, 23:27
von richard.kunze
MasterOfGizmo hat geschrieben:Spricht irgendwas dagegen, dass die LE-Tools und ggf. eine gatt-Library fest in die Firmware integriert wird und uim beim Booten gestartet wird?
Nicht dass ich wüsste. Mach für den UIM am besten ein eigenes Startscript, dann kann man den auch von Hand auf der Kommandozeile an- und abstellen.

Eventuell sollte man auch noch mal eine passende Settings-App schreiben um den ganzen "optionalen" Hintergrundkram (Bluetooth, WLAN, USB-Netzwerk, Webinterface, ...) auch per GUI gezielt an- und abschalten zu können. Je nach Anwendung kann man die dafür verbrauchten Ressourcen (Speicher, CPU) ja eventuell besser nutzen.
MasterOfGizmo hat geschrieben:Dann wären wir auf das Erscheinen des BT smart Controllers vorbereitet.
Und das noch bevor der wirklich auf dem Markt ist :-)

Ich hoffe ja, dass es da dann irgendwann auch mal den Empfänger einzeln gibt - das wäre nämlich dann eine echt nette IO-Extension für den TXT (sogar mit Servo-Ausgang).

Re: CFW: Bluetooth

Verfasst: 06 Feb 2017, 08:14
von MasterOfGizmo
ski7777 hat geschrieben:Ich würde das übernehmen. Kannst du mir deine bisherige Arbeit zur Verfügung stellen?
Cool. Steht alles schon in diesem Thread. Den Rest findest Du, wenn Du nach Gatttool googelst.

Edit: Ggf. testest Du, ob der hcid auch den LE-Modus aktivieren kann, bevor Du btmgr in die Firmware aufnimmst. Irgendwas in der Art musst Du zum Setzen des BT-Namens ja eh schon haben.

Re: CFW: Bluetooth

Verfasst: 06 Feb 2017, 16:48
von ski7777
Das hinzufügen von ein paar Packages sollt kein Problem darstellen, genauso wenig, wie das erstellen von ein paar Skripten, um Bluetooth einzuschalten, und auf sichtbar zu stellen. Nun stellt sich mir die Frgae, ob ich Bluetooth nur von root kontrollieren lassen soll und die essentiellen Skripte über sudoers.d freischalte oder auch der Nutzer ftc Bluetooth komplett steuern darf.?
  • Welche vorgefertigten Skripte soll ich liefern?
  • Welche Rechte für welches Skript?
  • Soll Bluetooth gleich komplett frei für den Nutzer ftc sein?
Raphael

Re: CFW: Bluetooth

Verfasst: 06 Feb 2017, 17:12
von MasterOfGizmo
Es birgt m.E: keinerlei Risko, wenn der ftc-User weitreichende Rechte auf dem Bluetooth-Device hat. Unter einem normalen Ubunti kann ich auch gatttool direkt als normaler User nutzen. Vpn daher würde ich sagen, dass der ftc-User entsprechende Rechte bekommen kann.

Es wird eine App benötigt, mit der man Bluetooth generell konfigurieren kann (also an/aus, Device-Namen setzen, Erkennbarkeit ein/ausschalten). Dann Init-Scripte, um die passenden Module und Daemonen zu starten. Dann hätte ich noch ein Plugin geschrieben, dass den Bluetooth-Zustand anzeigt Und dann braucht man noch ein Framework zum Pairing. GATT geht anscheinend auch ohne, zumindest kann ich einfach auf den WeDo-Hub zugreifen, aber für den TX wirst Du sowas brauxhen, nehme ich an.

Aber prima, dass Du das übernommen hast. Ich nutze das, um die NetInfo-App zu einer Netzwerk-App auszubauen, mit der man dann generell Netzwerk konfiguriren kann. Das nützt Deinem Bluetooth auch, sobald Du bnep aktivierst.

Re: CFW: Bluetooth

Verfasst: 06 Feb 2017, 17:20
von MasterOfGizmo
Hab' gerade gemerkt, dass der normale bluetooth daemon LE auch einschalten kann. Also braucht man den btmgr gar nicht, sondern es ist schon ailes auf dem TXT vorhanden.

Re: CFW: Bluetooth

Verfasst: 06 Feb 2017, 19:49
von ski7777
Für den TXT müsste ich an der rfcomm Config natürlich noch arbeiten. Die Idee mit der vereinten Netzwerk-App ist gut, aber warum nur das Netzwerk vereinen? Wir könnten auch gleich alles in eine App setzen.

Re: CFW: Bluetooth

Verfasst: 07 Feb 2017, 17:12
von ski7777
Hat jemand schon die serielle Kommunikation zum TX analysiert? Auf der Seite von ft kann ich nur precompilierte libs finden, die so eigentlich ungern einbinden möchte. Am liebsten wäre mir ein System, wie ftrobopy, bei dem Python die komplette Kommunikation übernimmt.

Raphael