This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

BLE device wird nicht gefunden
#1
Hallo,

ich versuche gerade ein neues Experiment mit dem Editor zu erstellen und ein externes BLE-Gerät einzubinden, mein Skript im Anhang.

Leider wird das BLE-Gerät nicht gefunden. Ich habe es mit "Kallisto" angegeben. Die Geräte heißen "Kallisto_Sensing_XX_XX" (z.B. "Kallisto_Sensing_D4_16").

Wenn ich den Bluetooth Dialog öffne, zeigt es mir die Geräte im Scanner an. Die App sagt aber, das keine Experimente für dieses Gerät vorhanden sind.

Muss man das Experiment noch irgendwie registrieren?


Attached Files
.phyphox   Kallisto Acceleration.phyphox (Size: 3.16 KB / Downloads: 198)
Reply
#2
Hallo,

beim experimentieren habe ich herausgefunden, dass man sich im Experiment mit dem Gerät verbinden kann, wenn man die Service UUID weg lässt.

Der Datentransfer klappt aber noch nicht: Es muss ein bestimmtes Byte in ein Konfigurationsregister geschrieben werden, dann startet der Datentransfer.

Die Daten kommen in einem Datenpaket von jeweils 20 Byte: jeweils 2 Samples von X,Y,Z (uint16) und 2 dazugehörige Timestamps (uint32). Gibt es eine Möglichkeit, im Editor entsprechende Datenpakete zu parsen, oder müsste das nativ in die App programmiert werden.

Falls es die Möglichkeit gibt, Bluetooth Sensoren direkt in die Liste (https://phyphox.org/wiki/index.php/Bluet...e_database) aufzunehmen, wäre das super. Gibt es da einen Ansprechpartner? Die Geräte haben eine einfache aber effiziente GATT-API...
Reply
#3
Einige externe Sensoren werden von phyphox bereits automatisch erkannt und da funktioniert es ähnlich. Vielleicht hilft schon ein Blick in deren Quellen, https://github.com/phyphox/phyphox-exper.../bluetooth

Ein Aufnehmen in die Liste sollte grundsätzlich kein Problem sein, idealerweise mit Beispielexperimenten wie z.B. bei PocketLab. Sind die Sensoren ein B2B-Produkt oder allgemein erhältlich?
Reply
#4
Ich schaue mir die Quellen an, vielen Dank für den Link. Eine native Unterstützung wäre noch besser, da es ein Multisensormodul ist. Unsere Sensorplattform "Kallisto" ist als B2B angelegt, es spricht aber nichts dagegen ihn auch für universitärere/schulische Zwecke oder einfach zum Experimentieren zu verwenden. Hier findet man ein paar Infos zu einer Variante: https://docs.sensry.net/Datasheets/SY020-PCB/

Das interessante ist, das es eine fertige Bluetooth API (GATT Profil) gibt, mit welchem sich alle Sensoren und sonstigen Funktionen ansprechen lassen. Wir haben dazu eine Dokumentation des GATT-Profils. Können sie mir Kontakt zu einem der Entwickler herstellen? Dann könnte man sich dazu austauschen.
Reply
#5
Hallo,

noch ein paar Ergänzungen:

Quote:Wenn ich den Bluetooth Dialog öffne, zeigt es mir die Geräte im Scanner an. Die App sagt aber, das keine Experimente für dieses Gerät vorhanden sind.

Über den "Neues Experiment für Bluetooth" Button scannt phyphox nach einer fest definierten "phyphxo" Charactierstic die Advertised werden muss. Grund hierfür ist, dass das .phyphox file auch als Byte Array auf dem Mikrocontroller hinterlegt und über die genannte Characteristic an das Smartphone gesendet werden kann. Man spart sich also nen QR-Code und benötigt keine Internetverbindung.

Quote:Die Daten kommen in einem Datenpaket von jeweils 20 Byte: jeweils 2 Samples von X,Y,Z (uint16) und 2 dazugehörige Timestamps (uint32). Gibt es eine Möglichkeit, im Editor entsprechende Datenpakete zu parsen, oder müsste das nativ in die App programmiert werden.

Über "conversion function" kann angegeben werden, welcher Datentyp erwartet wird. Über den Tag "repeating" kann zusätzlich angegeben werden das sich alle 10 Byte widerholen. Siehe dazu auch https://phyphox.org/wiki/index.php/Bluetooth_Low_Energy unter "input conversion functions".
Reply
#6
Hallo Dominik,

ich habe das Device zum Laufen bekommen, indem ich die TI-Sensor-Tag Vorlage verwendet habe. Noch ein paar Fragen:

Zum "repeating", wo genau muss das Tag eingefügt werden? bei conversion type? "int16LittleEndian, repeat"?

In meinem Datenpaket kommt auch ein 4 Byte Timestamp (µs) zu jedem X,Y,Z Messwert mit. Kann ich diesen auch für die X-Achse des Graphs verwenden?

Gibt es die Möglichkeit für die X-Achse eine "durchlaufende" Anzeige zu erzeugen, also z.B. immer die letzten 1000 Messwerte oder die letzten "n" s? Welche Funktion muss ich da verwenden? Ich möchte gern eine Endlos-Grafik erzeugen.

Ich finde die App wirklich sehr gelungen und würde gern unser GATT-Profil einem Entwickler bei euch zur schicken, um unsere API nativ zu implementieren. Auch einen Sensorknoten könnte ich zur Verfügung stellen. An wen müsste ich mich wenden?
Reply
#7
(02-06-2023, 12:43 PM)MarioGrafe Wrote: Zum "repeating", wo genau muss das Tag eingefügt werden? bei conversion type? "int16LittleEndian, repeat"?

Nein, „repeating“ ist ein (XML-)Attribut und in diesem Sinne zu verwenden, also z.B.
Code:
<input […] repeating="[value]" […]>[…]</input>

Quote:In meinem Datenpaket kommt auch ein 4 Byte Timestamp (µs) zu jedem X,Y,Z Messwert mit. Kann ich diesen auch für die X-Achse des Graphs verwenden?

Klar. Bei den SensorTag-Beispielen im „analysis“-Block die dann überflüssigen Blöcke zur Erzeugung des „t“-Containers herausschmeißen und stattdessen den eigenen Timestamp in den „t“-Container schreiben.

Quote:Gibt es die Möglichkeit für die X-Achse eine "durchlaufende" Anzeige zu erzeugen, also z.B. immer die letzten 1000 Messwerte oder die letzten "n" s? Welche Funktion muss ich da verwenden? Ich möchte gern eine Endlos-Grafik erzeugen.

Jain. So einen Graphen haben wir bereits an verschiedenen Stellen in phyphox, z.B. für die Rohdaten bei den Pendel-Experimenten. Unser Weg ist, einen Container mit fester Größe zu verwenden, so dass neue Daten alte herausschieben.

Quote:Ich finde die App wirklich sehr gelungen und würde gern unser GATT-Profil einem Entwickler bei euch zur schicken, um unsere API nativ zu implementieren. Auch einen Sensorknoten könnte ich zur Verfügung stellen. An wen müsste ich mich wenden?

Um vielleicht ein Missverständnis aufzuklären: phyphox ist (vereinfacht) ein Interpreter des .phyphox-Dateiformats (https://phyphox.org/wiki/index.php/Phyphox_file_format), d.h. alles lässt sich im Idealfall bereits über die XML-Dateien abbilden. Die .phyphox-Dateien für externe Sensoren sind in der App hinterlegt und werden beim Verbinden gegebenenfalls aus einem internen Speicher geladen.

Sollten Funktionen im Datei-Format fehlen, müsste dieses angepasst und dann in der App implementiert werden. Die Zeitskala hierbei hängt vom Aufwand und unseren Prioritäten ab…
Reply
#8
Wo müsste ich das "repeat" genau im Editor angeben?

Meine Implementierung sieht so aus:

...
    <input>
        <bluetooth editor:uuid="553" editor:posx="55.88888931274414" editor:posy="520.6666717529297"  name="Kallisto"  mode="notification" rate="1" subscribeOnStart="false">
            <config char="00001022-702b-69b5-b243-d6094a2b0e24" conversion="hexadecimal">A1</config>
            <output char="00001021-702b-69b5-b243-d6094a2b0e24" conversion="int16LittleEndian" offset="4" length="2">accXRaw</output>
            <output char="00001021-702b-69b5-b243-d6094a2b0e24" conversion="int16LittleEndian" offset="6" length="2">accYRaw</output>
            <output char="00001021-702b-69b5-b243-d6094a2b0e24" conversion="int16LittleEndian" offset="8" length="2">accZRaw</output>
            <output char="00001021-702b-69b5-b243-d6094a2b0e24" conversion="uInt32LittleEndian" offset="0" length="4">Output 4</output>
        </bluetooth>
    </input>
...

(02-06-2023, 08:36 PM)Jens Noritzsch Wrote:
Quote:Ich finde die App wirklich sehr gelungen und würde gern unser GATT-Profil einem Entwickler bei euch zur schicken, um unsere API nativ zu implementieren. Auch einen Sensorknoten könnte ich zur Verfügung stellen. An wen müsste ich mich wenden?

Um vielleicht ein Missverständnis aufzuklären: phyphox ist (vereinfacht) ein Interpreter des .phyphox-Dateiformats (https://phyphox.org/wiki/index.php/Phyphox_file_format), d.h. alles lässt sich im Idealfall bereits über die XML-Dateien abbilden. Die .phyphox-Dateien für externe Sensoren sind in der App hinterlegt und werden beim Verbinden gegebenenfalls aus einem internen Speicher geladen.

Sollten Funktionen im Datei-Format fehlen, müsste dieses angepasst und dann in der App implementiert werden. Die Zeitskala hierbei hängt vom Aufwand und unseren Prioritäten ab…

d.h. alle Experimente und auch die standardmäßig eingebundenen Experimente sind .phyphox-XML-Files. Wie wird das bei der TI Sensor-Box gemacht das es nativ unterstützt wird wenn ich auf den Bluetooth Button drücke? Ich versuche erstmal die Sensorknotensemantik einzubinden. Ich hoffe ich bekomme das mit dem Repeat hin.
Reply
#9
Was genau…? Smile

Für die Zeit auf der x-Achse „Output 4“ durch „t“ ersetzen und den „analysis“-Block bereinigen. Vielleicht über den Umweg „tmilli“ einen Zeitstempel in Sekunden generieren.

Hinweis oder vielleicht Tipp: kleine Änderungen sind vermutlich mit einem einfachen Text-Editor schneller gemacht. Diese XML-Dateien lassen sich direkt über den Dateien-Manager auf einem Smart-Device öffnen (definitiv auf iGeräten, bei Android gab es da früher eher mal Probleme) oder man legt sie irgendwo über HTTP(S) zugänglich hin und erzeugt einen QR-Code für den Link.
Reply
#10
(02-06-2023, 09:00 PM)Jens Noritzsch Wrote: Was genau…? Smile

Für die Zeit auf der x-Achse „Output 4“ durch „t“ ersetzen und den „analysis“-Block bereinigen. Vielleicht über den Umweg „tmilli“ einen Zeitstempel in Sekunden generieren.

Hinweis oder vielleicht Tipp: kleine Änderungen sind vermutlich mit einem einfachen Text-Editor schneller gemacht. Diese XML-Dateien lassen sich direkt über den Dateien-Manager auf einem Smart-Device öffnen (definitiv auf iGeräten, bei Android gab es da früher eher mal Probleme) oder man legt sie irgendwo über HTTP(S) zugänglich hin und erzeugt einen QR-Code für den Link.

Vielen Dank für die schnelle Antwort!! Im Anhang das ganze File: 
.phyphox   Accelerometer (6).phyphox (Size: 8.4 KB / Downloads: 298)

Im Prinzip wiederholt sich für due Charakteristik " 00001021- ..." die Sequenz aus X,Y,Z und Timestamp-Daten. Das Paket ist insgesamt 20 Bytes groß. Im Editor ist es natürlich einfacher. Wo müsste ich die Wiederholung eintragen? Können sie mir das anhand meines Beispiels zeigen?

Eine weitere Frage:
Ich versuche den RMS-Wert auszurechen (später mal noch andere Kennwerte und FFT). Das Begrenzen der Buffer habe ich auch mittlerweile rausgefunden, aber meine Summierungsformel funktioniert nicht: "abs(sqrt([1]^2+[2]^2+[3]^2)-9.81)". Müssen alle Elemente mit Underscore "[1_]" angegeben werden?

Danke für ihre Hilfe!
Reply


Forum Jump: