Communication Bluetooth

Détails du protocole BLE et communication des appareils pour RADR

Ce document couvre les protocoles de communication Bluetooth Low Energy (BLE) utilisés par RADR pour communiquer avec les appareils pris en charge.

Présentation du BLE

RADR utilise Bluetooth Low Energy (BLE) pour toutes les communications avec les appareils. En tant que périphérique central BLE, RADR recherche et se connecte à des périphériques tels que l'OSSM et des jouets Lovense.

ParamètreValeur
Rôle BLECentral
Nom de l'appareilOSSM-REMOTE
Puissance de transmission9 dBm
StackNimBLE

Paramètres de scan

ParamètreValeur
Intervalle de scan100ms
Fenêtre de scan100ms
Type de scanActif
Durée du scan5000ms (5 secondes)

Pendant le scan actif, RADR envoie des paquets de requête de scan aux appareils pour récupérer toutes leurs données d'annonce, y compris leurs noms.

Paramètres de connexion

RADR utilise des paramètres de connexion optimisés pour un contrôle réactif :

ParamètreValeurDescription
Intervalle minimum12Intervalle de connexion minimum de 15ms
Intervalle maximum12Intervalle de connexion maximum de 15ms
Latence0Pas de latence esclave (réponses immédiates)
Expiration du délai de supervision150Délai d'attente de 1500ms pour les connexions perdues
Délai de connexion5000msTemps maximum pour établir la connexion

L'intervalle de connexion de 15ms offre un contrôle réactif avec une latence minimale entre les tours de l'encodeur et la réponse de l'appareil.

Découverte des appareils

RADR identifie les appareils pris en charge par leurs UUID de service annoncés :

Appareils Research And Desire

AppareilUUID du service
OSSM522B443A-4F53-534D-0001-420BADBABE69
LKBXEn attente de mise en œuvre
DTTEn attente de mise en œuvre

Appareils Lovense

AppareilUUID du service
Domi 257300001-0023-4BD4-BBD5-A6920E4C5653
AutreVia le registre Buttplug.io

Appareils Buttplug.io

Les appareils pris en charge via le protocole Buttplug.io sont identifiés à l'aide des UUID du registre dynamique (registry.json). Ce registre peut être mis à jour via des mises à jour du micrologiciel sans modification du code.

Protocole OSSM

RADR communique avec OSSM à l'aide d'un protocole BLE personnalisé :

Structure des services

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

Format de commande

Les commandes sont envoyées sous forme de tableaux d'octets à la caractéristique appropriée :

ParamètreType de donnéesPlage
Speeduint8_t0-100
Depthuint8_t0-100
Sensationuint8_t0-100
Strokeuint8_t0-100
Patternuint8_tIndice du motif

Sélection de motif

Les motifs sont sélectionnés par index :

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

Protocole Lovense

Pour les appareils Lovense à intégration directe (Domi), RADR utilise le protocole Lovense BLE :

Contrôle des vibrations

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

Requête de batterie

Command: Battery;
Response: {percentage}

Contrôle de l'alimentation

Command: PowerOff;

Appareils Buttplug.io

Pour les appareils pris en charge via Buttplug.io, RADR implémente un sous-ensemble du protocole Buttplug :

  • Vibrate – Définir le niveau de vibration (float 0-1, mappé sur la plage de l'appareil)
  • Linear — Pour les appareils à poussée
  • Rotate — Pour les appareils rotatifs

Tous les appareils ne prennent pas en charge toutes les commandes. RADR interroge les capacités de l'appareil pendant la connexion.

Rétablissement de la connexion

Si RADR perd la connexion à un appareil :

  1. Détection — Perte de connexion détectée dans le délai d'expiration de la supervision (1500ms)
  2. Reconnexion — Tentative de reconnexion automatique dans un délai de 2-5 secondes
  3. Sécurité — Pour OSSM, décélération progressive lors de la déconnexion
  4. Échec — Après l'échec de la reconnexion, RADR revient au menu principal

Sécurité

RADR utilise des connexions BLE ouvertes sans appairage ni liaison :

  • Aucun code PIN requis
  • Pas de cryptage (les commandes sont en clair)
  • Une seule connexion à la fois

Les communications BLE ne sont pas cryptées. Utilisez RADR dans des environnements privés où l'interception radio n'est pas un problème.

Débogage

Pour le débogage BLE pendant le développement :

  1. Utilisez un renifleur BLE (nRF Connect, Wireshark avec adaptateur BLE)
  2. Activez la journalisation série dans le micrologiciel (LOG_LEVEL_DEBUG)
  3. Surveillez les événements de connexion et les écritures de caractéristiques

Lectures complémentaires

Sur cette page