buttplugio / stpihkal

Repo deprecated, STPIHKAL moved to docs.buttplug.io repo
https://docs.buttplug.io/
93 stars 21 forks source link

Lovense: add more information and make formatting consistent #145

Open teledildonics69 opened 2 years ago

teledildonics69 commented 2 years ago

I intend to do more research and work on these docs. However, last time I told myself that I got distracted and never submitted my changes, so here's a start, with hopefully more to follow.

teledildonics69 commented 2 years ago

Irritatingly, Lovense appears to have renamed "Quake" to "Dolce" as of today (for trademark reasons): https://www.xbiz.com/news/261947/lovense-renames-new-dual-motor-stimulator-quake-to-dolce. But as all of the products that people currently have say "Quake" on them, I think it's okay to leave this as-is for now. It can be addressed in a follow-up PR.

teledildonics69 commented 2 years ago

Unvetted observations:

edit: I see that some of this was already discussed in https://github.com/buttplugio/stpihkal/issues/70#issuecomment-894040491

teledildonics69 commented 2 years ago

The fully-detailed g-sensor data appears to be gone (or at least, I can't figure out where it is), replaced with a stream of simple values from 0 to 4 indicating amount of motion, formatted as M:S0 to M:S4 for Max, and the same but with ,O1 appended for non-0 values from Nora. (These after after BM is sent, until EM is sent.)

qdot commented 2 years ago

The fully-detailed g-sensor data appears to be gone (or at least, I can't figure out where it is), replaced with a stream of simple values from 0 to 4 indicating amount of motion, formatted as M:S0 to M:S4. (These after after BM is sent, until EM is sent.)

Yeah from what I heard, this happened quite a while ago? Not exactly sure when, might be nice to at least bound it by firmware versions, but we'd have to find the switch point. Worse comes to worse, can just ask Lovense heh.

teledildonics69 commented 2 years ago

Aha! It looks like BT:On and BT:Off give us the raw accelerometer data on Nora (prefixed with BT: instead of G:), but on Max it seems to just return one bit of motion information, BT0 or BT1.

There appears to be some Max-specific command for integration with the game https://www.mirrorlife.com/. Mirr:1 and Mirr:0 are valid commands. I'm not sure exactly what we do, but the game seems to use the toy's buttons as controls for the game itself, so... let's see...

while enabled, the buttons on the Max send MirLife:1 and MirLife:2 instead of controlling the toy.

qdot commented 2 years ago

So just checking: Should I hold off on bringing this branch PR in until you finish doing research? :)

teledildonics69 commented 2 years ago

@qdot Doesn't really matter, but I suggest going ahead and merging at your convenience.

I think it would be nice to have the formatting/consistency merged so that the next PR's substance changes are easier to see on their own.

I'm just shoving notes in this thread so they're findable by others.

teledildonics69 commented 2 years ago

...hah, there are official docs for the web API whose command names give us more bluetooth command names: https://www.lovense.com/sextoys/developer/doc

AVibrate:1:2 will vibrate at level 1 for duration 2 seconds There are similar device-specific ARotate, AAirLevel, AVibRotate, AVibAir, AVibrate1, AVibrate2

teledildonics69 commented 2 years ago

The Flash command flashes the light on the toy three times. This occurs even if the light has been disabled with Light:off.

Here are some example sessions testing commands for compatibility across devices: https://gist.github.com/teledildonics-dev/03a861302270c8eaaa1a2a76c95a4ffd