Bluetooth-Kommunikation

BLE-Protokolldetails und Gerätekommunikation für RADR

Dieses Dokument behandelt die Bluetooth Low Energy (BLE)-Kommunikationsprotokolle, die RADR zur Kommunikation mit unterstützten Geräten verwendet.

BLE-Übersicht

RADR nutzt Bluetooth Low Energy (BLE) für die gesamte Gerätekommunikation. Als BLE-Zentralgerät scannt RADR nach Peripheriegeräten wie OSSM und Lovense-Spielzeugen und verbindet sich mit ihnen.

ParameterWert
BLE-RolleZentral
GerätenameOSSM-REMOTE
Sendeleistung9 dBm
StackNimBLE

Scan-Parameter

ParameterWert
Scanintervall100ms
Scanfenster100ms
ScantypAktiv
Scandauer5000ms (5 Sekunden)

Während des aktiven Scannens sendet RADR Scananforderungspakete an Geräte, um deren vollständige Advertising-Daten einschließlich der Gerätenamen abzurufen.

Verbindungsparameter

RADR verwendet optimierte Verbindungsparameter für eine reaktionsfähige Steuerung:

ParameterWertBeschreibung
Mindestintervall12Mindestverbindungsintervall 15ms
Maximales Intervall12Maximales Verbindungsintervall 15ms
Latenz0Keine Slave-Latenz (sofortige Antworten)
Überwachungszeitüberschreitung1501500ms Zeitüberschreitung für verlorene Verbindungen
Verbindungs-Timeout5000msMaximale Zeit zum Verbindungsaufbau

Das Verbindungsintervall von 15ms ermöglicht eine reaktionsfähige Steuerung mit minimaler Latenz zwischen Encoderumdrehungen und Gerätereaktion.

Geräteerkennung

RADR identifiziert unterstützte Geräte anhand ihrer angekündigten Service-UUIDs:

Research And Desire-Geräte

GerätDienst-UUID
OSSM522B443A-4F53-534D-0001-420BADBABE69
LKBXAusstehende Umsetzung
DTTAusstehende Umsetzung

Lovense-Geräte

GerätDienst-UUID
Domi 257300001-0023-4BD4-BBD5-A6920E4C5653
AndereÜber die Buttplug.io-Registrierung

Buttplug.io-Geräte

Über das Buttplug.io-Protokoll unterstützte Geräte werden mithilfe von UUIDs aus der dynamischen Registrierung (registry.json) identifiziert. Diese Registrierung kann über Firmware-Updates ohne Codeänderungen aktualisiert werden.

OSSM-Protokoll

RADR kommuniziert mit OSSM über ein benutzerdefiniertes BLE-Protokoll:

Servicestruktur

Service: 522B443A-4F53-534D-0001-420BADBABE69
├── Position Characteristic
├── Speed Characteristic
├── Depth Characteristic
├── Sensation Characteristic
├── Stroke Characteristic
└── Pattern Characteristic

Befehlsformat

Befehle werden als Byte-Arrays an das entsprechende Merkmal gesendet:

ParameterDatentypBereich
Speeduint8_t0-100
Depthuint8_t0-100
Sensationuint8_t0-100
Strokeuint8_t0-100
Patternuint8_tMusterindex

Musterauswahl

Muster werden nach Index ausgewählt:

IndexMustername
0Simple Stroke
1Teasing Pounding
2Robo Stroke
3Half'n'Half
4Deeper
5Stop'n'Go
6Insist

Lovense-Protokoll

Für Lovense-Geräte mit direkter Integration (Domi) verwendet RADR das Lovense-BLE-Protokoll:

Vibrationssteuerung

Command: Vibrate:{level};
Level: 0-16

Batterieabfrage

Command: Battery;
Response: {percentage}

Steuerung der Stromversorgung

Command: PowerOff;

Buttplug.io-Geräte

Für über Buttplug.io unterstützte Geräte implementiert RADR eine Teilmenge des Buttplug-Protokolls:

  • Vibrate – Vibrationsstufe einstellen (0-1-Gleitkommazahl, auf den Gerätebereich abgebildet)
  • Linear – Für Geräte mit Schubbewegung
  • Rotate – Für rotierende Geräte

Nicht alle Geräte unterstützen alle Befehle. RADR fragt während der Verbindung die Gerätefunktionen ab.

Verbindungswiederherstellung

Wenn RADR die Verbindung zu einem Gerät verliert:

  1. Erkennung – Verbindungsverlust innerhalb des Überwachungszeitlimits (1500ms) erkannt
  2. Wiederverbindung – Automatischer Wiederverbindungsversuch innerhalb von 2-5 Sekunden
  3. Sicherheit – Für OSSM sanftes Herunterregeln während der Trennung
  4. Fehler – Nach fehlgeschlagener Wiederverbindung kehrt RADR zum Hauptmenü zurück

Sicherheit

RADR nutzt offene BLE-Verbindungen ohne Pairing oder Bonding:

  • Keine PIN erforderlich
  • Keine Verschlüsselung (Befehle sind Klartext)
  • Einzelne Verbindung gleichzeitig

BLE-Kommunikation ist nicht verschlüsselt. Verwenden Sie RADR in privaten Umgebungen, in denen das Abfangen von Funksignalen kein Problem darstellt.

Debuggen

Zum BLE-Debugging während der Entwicklung:

  1. Verwenden Sie einen BLE-Sniffer (nRF Connect, Wireshark mit BLE-Adapter)
  2. Aktivieren Sie die serielle Protokollierung in der Firmware (LOG_LEVEL_DEBUG)
  3. Überwachen Sie Verbindungsereignisse und Schreibvorgänge an Merkmalen

Weiterführende Literatur

Auf dieser Seite