Youou Wand Vibrator Protocol
Introduction
The Youou Wand Vibrator uses a 17-byte command packet with a monotonically increasing packet ID and an XOR checksum over the first 8 bytes.
BLE Profile
ble_names:
- "???"
services:
- uuid: "???"
characteristics:
- uuid: "???"
properties: [write]
role: tx
description: "Command endpoint"
Commands
Vibration
Packet structure (17 bytes):
aa 55 ID 02 03 01 VV ST CRC ff 00 00 00 00 00 00 00
Where:
ID= packet ID, monotonically increasing0x00–0xff, wraps to0x00VV= speed value0x00–0xf7(247decimal). Values above0xf7select patterns instead of speed.ST= state:0x01if speed > 0,0x00if stoppedCRC= XOR of bytes 0–7 (bytesaa 55 ID 02 03 01 VV ST)
Maximum effective speed value: 0xf7 (247). Values 0xf8–0xff trigger built-in patterns.
Example — speed at 50%
Assuming ID = 0x01 and speed = 124 (0x7c):
aa 55 01 02 03 01 7c 01 [XOR] ff 00 00 00 00 00 00 00
Notes
- BLE advertisement name and service/characteristic UUIDs are not documented in the source issue. The implementation was derived from TypeScript source code in buttplug-js.
- The packet ID must be tracked in software and wraps at 255.