Forum: Mikrocontroller und Digitale Elektronik wie kann "MTU Exchange Request" von ESP32 Gatt Server senden?


von Lidong W. (workhard10)


Angehängte Dateien:

Lesenswert?

Ich mache gerade ein Projekt, das Ziel ist mit ESP32S3, ein Nuki Lock zu 
simulieren. Das simulierte NukiLock(ESP32S3) wird mit Nuki Fob 
verbinden.

Ich habe mit nrf52840 dongle und wireshark die Verbindung zwischen Nuki 
Lock und Nuki Fob beobachtet, bitte sehen Sie NukiLock-Fob.JPG, hier 
Nuki Lock ist Server/Slave und Nuki Fob ist Client/Master. es gibt MTU 
Exchange nach dem "LL_SLAVE_FEATURE_REQ", Es ist sehr interessant, dass 
"MTU Exchange Request" ist von Nuki Lock (Server/Slave) zu Nuki Fob 
(Client/Master). Weil "MTU Exchange Request" normalweise von Cilent zu 
Sever gesand ist.

Im zweite Bild ESP32-Fob.JPG, simulierte Nuki Lock(ESP32S3) ist 
Server/Slave, und Nuki Fob ist Client/Master. ich habe probiert mein 
simulierte Nuki Lock(ESP32S3) mit Nuki Fob zu verbinden, es fehlt "MTU 
Exchange" nachdem "LL_SLAVE_FEATURE_REQ".

meine Frage: wie kann ich im ESP32 Gatt Server das "MTU Exchange 
Request" senden?

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Hi,
ich kann Dir leider nicht beantworten, wie Du den MTU Size Exchange 
initiierst. Aber: bist Du Dir sicher, dass Du den brauchst? Ohne MTU 
Size Exchange wäre der default 23 Byte. Reicht das ggf. schon für Deine 
Anwendung?

mfg Torsten

von Lidong W. (workhard10)


Lesenswert?

ich habe Nuki Mitarbeiter gefragt, und Nuki Fob MTU ist 247. Ich habe 
auch mit 247 bei meiner NukiLock(simulierte von ESP32S3) probiert. aber 
leider funktioniert nicht, und es passiert kein MTU Exchange zwischen 
NukiLock(simulierte von ESP32S3) und Nuki Fob...

: Bearbeitet durch User
von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Ich habe gerade mal die GATT-Server Dokumentation überflogen 
(https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/bluetooth/esp_gatts.html). 
Da scheint es keine Möglichkeit zu geben, den MTU Size Exchange 
anzustoßen.

Ist ja aber Open Source, damit könntest Du die fehlende Funktion 
einbauen. Vielleicht gibt es aber auch einen Automatismus, der den 
Exchange auslöst, wenn klar wird, dass es Characteristic values gibt, 
die größer 20 Byte sind.

Für LE Secure Connections wäre ein MTU > 23 auf jeden Fall nötig.

von Lidong W. (workhard10)


Lesenswert?

Dank für die schnelle Rückmeldung!

ich habe eine Frage nach Ihre Rückmeldung.

was meinen Sie :

"vielleicht gibt es aber auch einen Automatismus, der den
Exchange auslöst, wenn klar wird, dass es Characteristic values gibt,
die größer 20 Byte sind."

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

> was meinen Sie :
>
> "vielleicht gibt es aber auch einen Automatismus, der den
> Exchange auslöst, wenn klar wird, dass es Characteristic values gibt,
> die größer 20 Byte sind."

Ich kenne die API nicht. Aber vielleicht kann man irgendwo bei der 
Beschreibung der GATT Tabelle angeben, dass bestimmte characteristics 
länger sein werden als 20 Byte. Wenn der BLE Stack auf der Server-Seite 
davon ausgeht, dass alle Characteristic values <= 20 Byte sein werden, 
dann bräuchte er keinen MTU Size Exchange initiieren.

Was würde den passieren, wenn Du LE secure connections einschaltest 
(falls das geht)?

von Lidong W. (workhard10)


Angehängte Dateien:

Lesenswert?

es wird ein Pairing passieren, und NukiLock(simulierte von ESP32S3) und 
Nuki Fob sollen zusammengekoppelt wwerden.

im Anhang gibt es ein API Dokuiment von Firma Nuki. auf der Seite 74 
gibt es ein Beispiel über Authorize App, also ein Schlüssel Koppollung 
zwischen Nuki Lock und Nuki APP. Ich habe schon mit NukiLock(simulierte 
von ESP32S3) und Nuki APP erfolgreich probiert.

Jetzt bin ich stoppt hier von "MTU Exchange request von Server zu 
Client" zwischen  NukiLock(simulierte von ESP32S3) und Nuki Fob.

ich freue mich auf Ihre weitere Rückmeldung.

: Bearbeitet durch User
von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Lidong W. schrieb:
> es wird ein Pairing passieren, und NukiLock(simulierte von ESP32S3) und
> Nuki Fob sollen zusammengekoppelt wwerden.

LE Secure connections setzt aber eine MTU von 65 voraus. Deswegen fände 
ich das mal interessant. Ich tippe aber mal, dass Du da an der Stelle 
nichts machen kannst, wenn Du den Client nicht ändern kannst und die API 
des Servers das Auslösen des MTU Size Exchange nicht implementiert hat.

Du könntest das natürlich als feature request einstellen und hoffen, 
dass sich das jemand anguckt. Bei 1200 offenen issues würde ich mir da 
allerdings wenig Hoffnung machen.

Wenn Du nicht auf ESP32 festgelegt bist, und z.B. auf nRF52 wechseln 
möchtest, würde ich das Feature in Bluetoe 
(https://github.com/TorstenRobitzki/bluetoe) einbauen ;-)

von Lidong W. (workhard10)


Lesenswert?

vielen Dank für Ihre Hilfe und Vorschlag!!!

Ich muss bei ESP32S3 bleiben, und das ist Ziel. ich probiere es weiter.

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
Noch kein Account? Hier anmelden.