Magic Motion Kegel Master Protocol
Introduction
The Magic Motion Kegel Master is a BLE-connected pelvic floor biofeedback vibrator with a pressure sensor. It uses the same VT Command Service (write characteristic) as other Magic Motion devices. This page documents the sensor service and the single/multi-argument vibration commands from community reverse engineering.
BLE Profile
ble_names:
- "???"
services:
- uuid: "6f468792-f91f-11e3-a847-b2227cce2b54"
description: "Vtoy Sensor Service"
characteristics:
- uuid: "6f468bfc-f91f-11e3-a847-b2227cce2b54"
properties: [notify]
role: rx
description: "Pressure sensor value"
- uuid: "00002902-0000-1000-8000-00805f9b34fb"
description: "CCCD for sensor notification subscription"
- uuid: "78667579-7b48-43db-b8c5-7928a6b0a335"
description: "VT Command Service"
characteristics:
- uuid: "78667579-a914-49a4-8333-aa3c0cd8fedc"
properties: [write]
role: tx
description: "Vibration command"
Sensor Data
Notification Subscription
Write to CCCD (0x2902):
01 00— subscribe00 00— unsubscribe
Pressure Value (1 sensor)
Returns 2 bytes:
sensor_value = (data[0] & 0xFF) * 256 + (data[1] & 0xFF)
Devices with 2 or more sensors have not been fully documented.
Commands
Vibration — Single Argument
04 08 v1 64 00
v1 = intensity, 0x00–0xFF. Values above 100 (0x64) are not recommended (may degrade motor).
Vibration — Two Arguments
0b ff 04 v2 v2 0a 00 04 08 v1 64 00
Both v2 fields appear to share the same value. Meaning of the second argument is unknown.
Vibration — Three Arguments
... 04 08 v3 64 01
v3 format is the same as the one-argument packet; relationship between v2 and v3 is unknown.
Notes
- Values above 100 (
0x64) are explicitly warned against by the original reverse engineer. - Multi-argument commands may apply to multi-motor devices; the Kegel Master has only one motor.
- BLE advertisement name is not documented.