Skip to main content

Lovenuts

Introduction

Lovenuts manufactures BLE-controlled vibrators. The device uses a pattern-based control scheme where a sequence of 20 speed values is cycled at a configurable interval.

BLE Profile

ble_names: ["Love_Nuts"]
services:
- uuid: "0000fff0-0000-1000-8000-00805f9b34fb"
characteristics:
- uuid: "0000fff1-0000-1000-8000-00805f9b34fb"
properties: [write, notify]
role: tx/rx
description: "Command endpoint and button notifications"

Commands

Set Pattern

The device uses a unique pattern-based speed control. A single command contains 20 speed values (packed as 4-bit nibbles) and a 16-bit interval timer.

Format:

0x45 0x56 0x04 0xF4C X1X2 X3X4 X5X6 X7X8 X9XA XBXC XDXE XFXG XHXI XJXK II II
ByteDescriptionRange
0x45 0x56 0x04 0xF4CHeaderFixed
Bytes 5-1420 speed values as 4-bit nibbles0x0-0xF each (15 levels)
Last 2 bytesInterval (16-bit)Duration per step; 0x0000 = off

Each 4-bit speed value is applied for the duration specified by the interval. Changes take effect immediately, though the device may stutter briefly when new values are applied.

Button Notifications

The device sends button press notifications on the same characteristic. The notification value depends on both the current highest speed and which button was pressed:

Highest Speed"-" Pressed"+" Pressed
F0C0F
E0B0F
D0A0F
C090F
B080E
A070D
9060C
8050B
7040A
60309
50308
40307
30306
20305
10304

Notes

  • Setting the interval to 0x0000 turns off the device (this may actually be causing a divide-by-zero crash).
  • If all speed values are 0, no button updates are sent.
  • The device supports 15 discrete speed levels (0-F nibble values).

Sources