Skip to main content

Magic Motion Protocol

Introduction

Magic Motion produces a range of Bluetooth LE vibrating devices. At least four protocol variants exist across their product line. This page documents the shared BLE profile and command formats gathered from community reverse engineering. The Solstice X (dual-motor) and Zenith ("funwand") devices are confirmed to use this same service and characteristic layout.

BLE Profile

ble_names:
- "Solstice X"
- "funwand"
- "???*"
services:
- uuid: "78667579-7b48-43db-b8c5-7928a6b0a335"
characteristics:
- uuid: "78667579-a914-49a4-8333-aa3c0cd8fedc"
properties: [write]
role: tx
description: "Command endpoint"

Commands

Single Motor Vibration

Short-form command (used by Zenith / "funwand"):

04 08 VV 64 00

Where VV is speed 0x000x64. Minimum effective value is approximately 0x06.

Dual Motor Vibration (Solstice X)

10 ff 04 0a 32 32 00 04 08 AA 64 00 04 08 BB 64 01

Where:

  • AA = vibe motor 1 speed 0x000x64
  • BB = vibe motor 2 speed 0x000x64

Notes

  • The Zenith ("funwand") was not tested against the official app but responds correctly to the single-motor command format above.
  • The minimum value that produces noticeable vibration on the Zenith is 0x06.
  • Multiple protocol variants (v1–v4) exist in the Buttplug device config for different Magic Motion products; this page covers the Solstice X and Zenith additions documented in issue #10.

Sources