Skip to main content

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 — subscribe
  • 00 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, 0x000xFF. 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.

Sources