Open Source Sex Machine (OSSM)
Service & Device Info
Service UUID:
522b443a-4f53-534d-0001-420badbabe69
Device Name: "OSSM"
Manufacturer: "Research And Desire"
Active Characteristics
1. Command Characteristic (Write)
UUID:
522b443a-4f53-534d-0002-420badbabe69
Purpose: Send control commands
Commands:
set:speed:<0-100> # Stroke speed percentage
set:stroke:<0-100> # Stroke length percentage
set:depth:<0-100> # Penetration depth percentage
set:sensation:<0-100> # Sensation intensity percentage
set:pattern:<0-6> # Stroke pattern (0-6)
go:simplePenetration # Switch to simple penetration mode
go:strokeEngine # Switch to stroke engine mode
go:menu # Return to main menu
Responses:
Success:
ok:<original_command>
Failure:
fail:<original_command>
2. State Characteristic (Read/Notify)
UUID:
522b443a-4f53-534d-1000-420badbabe69
Purpose: Monitor device state and settings
State JSON Format:
{
"state": "<state_name>",
"speed": <0-100>,
"stroke": <0-100>,
"sensation": <0-100>,
"depth": <0-100>,
"pattern": <0-6>
}
Key States:
idle
- Initializingmenu
- Main menusimplePenetration
- Simple penetration modestrokeEngine
- Stroke engine modeerror
- Error state
3. Speed Knob Config Characteristic (Write)
UUID:
522b443a-4f53-534d-0010-420badbabe69
Purpose: Configure speed knob behavior
Values:
true
- Speed knob acts as upper limit for BLE commands (default)false
- Speed knob and BLE speed are independent
4. Pattern List Characteristic (Read)
UUID:
522b443a-4f53-534d-2000-420badbabe69
Purpose: Get available stroke patterns
Pattern JSON Format:
[
{ "name": "Simple Stroke", "idx": 0 },
{ "name": "Teasing Pounding", "idx": 1 },
{ "name": "Robo Stroke", "idx": 2 },
{ "name": "Half'n'Half", "idx": 3 },
{ "name": "Deeper", "idx": 4 },
{ "name": "Stop'n'Go", "idx": 5 },
{ "name": "Insist", "idx": 6 }
]
Connection Flow
Scan for "OSSM" device
Connect and discover service
Subscribe to state notifications
Read initial state and patterns
Send commands as needed
Last updated