CFW: Bluetooth

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

CFW: Bluetooth

Beitrag von MasterOfGizmo » 05 Feb 2017, 18:11

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?
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: CFW: Bluetooth

Beitrag von ski7777 » 05 Feb 2017, 19:32

Guck mal im patch Bereich vom TXT in den Commitcomments. Ich arbeite aktuell an einer vereinfachen Umsetzung in meinem fork im branch Bluetooth.

Raphael

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: CFW: Bluetooth

Beitrag von ski7777 » 05 Feb 2017, 19:56

Sorry, ich meinte den Treiberteil. Geneauer gesagt hier: http://bit.ly/2kaHcNA (Wie immer, phpbb kann leider keine artifacts)

Raphael

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Bluetooth

Beitrag von MasterOfGizmo » 05 Feb 2017, 21:12

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 ...
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Bluetooth

Beitrag von MasterOfGizmo » 05 Feb 2017, 21:24

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 ...
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

raspberrypi
Beiträge: 16
Registriert: 05 Dez 2016, 17:11

Re: CFW: Bluetooth

Beitrag von raspberrypi » 05 Feb 2017, 21:26

Dann sind auch die Schritte für eine Kommunikation zwischen TXT und TX geebnet?

Liebe Grüse,

raspberrypi

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Bluetooth

Beitrag von MasterOfGizmo » 05 Feb 2017, 21:27

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.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Bluetooth

Beitrag von MasterOfGizmo » 05 Feb 2017, 21:28

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.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: CFW: Bluetooth

Beitrag von ski7777 » 05 Feb 2017, 21:28

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

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Bluetooth

Beitrag von MasterOfGizmo » 05 Feb 2017, 21:40

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
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: CFW: Bluetooth

Beitrag von ski7777 » 05 Feb 2017, 21:57

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

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Bluetooth

Beitrag von MasterOfGizmo » 05 Feb 2017, 22:05

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.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: CFW: Bluetooth

Beitrag von ski7777 » 05 Feb 2017, 22:29

Ich würde das übernehmen. Kannst du mir deine bisherige Arbeit zur Verfügung stellen?

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: CFW: Bluetooth

Beitrag von richard.kunze » 05 Feb 2017, 23:27

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).

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Bluetooth

Beitrag von MasterOfGizmo » 06 Feb 2017, 08:14

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.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: CFW: Bluetooth

Beitrag von ski7777 » 06 Feb 2017, 16:48

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

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Bluetooth

Beitrag von MasterOfGizmo » 06 Feb 2017, 17:12

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.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Bluetooth

Beitrag von MasterOfGizmo » 06 Feb 2017, 17:20

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.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: CFW: Bluetooth

Beitrag von ski7777 » 06 Feb 2017, 19:49

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.

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: CFW: Bluetooth

Beitrag von ski7777 » 07 Feb 2017, 17:12

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

Antworten