Magic motion toys (maybe) universal specifications


#1

Yep bros!

I have been RE the Magic Motion BLE protocol, but I have only Magic Kegel Master device and want someone to test multi-argument functions and sensors with other magic-motion toys.

Services:

Vtoy Sensor Service

In Magic Kegel Master there is one pressuring sensor, that indicates strength of pressure.

UUID: 6f468792-f91f-11e3-a847-b2227cce2b54
Characteristics:
Sensor value: 6f468bfc-f91f-11e3-a847-b2227cce2b54
Packet format:
With one sensor:
byte[2] data where sensor value = (data[0] & 0xFF) * 256 + (data[1] & 0xFF)
With two or more sensors: need addational research

Sensor value change notiffication subscription: 00002902-0000-1000-8000-00805f9b34fb
Packet format:
[0x01,0x00] - for subscribe
[0x00,0x00] - for unsubscribe

VT Command Service

UUID: 78667579-7b48-43db-b8c5-7928a6b0a335
Characteristics:
Vibration strength property: 78667579-a914-49a4-8333-aa3c0cd8fedc
Packet format:
WARNING: it is not recommended to use values geather than 100 due to vibration engine degradation
With one argument:
[0x04, 0x08, v1, 0x64, 0] where v1 is in 0 … 255 and reproduce vibration strength

With two arguments:
[0x0b, 0xff, 0x04, v2, v2, 0x0a, 0x00, 0x04, 0x08, v1, 0x64, 0x00] where v1 is same as one-argument packet and v2 is unknown (maybe it acceptable for two-engine vibrators)

With three arguments:
[0x10, 0xff, 0x04, v2, v2, 0x0a, 0x00, 0x04, 0x08, v1, 0x64, 0x00, 0x04, 0x08, v3, 0x64, 0x01] where v1 is same as one-argument packet and both v2 and v3 is unknown (maybe it acceptable for three-engine vibrators)

Anybody here?

P.S. Sorry for my poor english. From Russia with love :wink:


#2

Awesome, thanks! We’ve got support for the Magic Motion Smart Mini Vibe in our C# stuff, I’ll look at getting this added too. Looks like this is somewhat different from what we’ve got already.

I’ve filed a bug at https://github.com/metafetish/buttplug/issues/59 to work on this.