Skip to main content

We-Vibe

Introduction

We-Vibe devices use a shared BLE protocol across their product line. All models communicate via a single service with control and info characteristics, using 8-byte packets.

BLE Profile

ble_names: ["4 Plus", "bloom", "classic", "ditto", "gala", "jive", "nova", "pivot", "rave", "sync", "verge", "wish"]
services:
- uuid: "f000bb03-0451-4000-b000-000000000000"
characteristics:
- uuid: "f000c000-0451-4000-b000-000000000000"
properties: [write]
role: tx
description: "Control characteristic (8 bytes)"
- uuid: "f000b000-0451-4000-b000-000000000000"
properties: [read]
role: rx
description: "Info characteristic (8 bytes)"

Device Configuration

Commands

Motor Control

The control characteristic takes 8 bytes, as follows:

0f PP 00 XY 00 0Z 00 00
ByteDescriptionRange
0x0fHeaderFixed
PPVibration patternSee pattern table
0x00PaddingFixed
XInternal motor intensity0x0–0xF
YExternal motor intensity0x0–0xF
0x00PaddingFixed
ZMotor on/off bits0x00–0x03
0x00PaddingFixed

Motor on/off bits (byte 6, last two bits):

ValueMeaning
0x03Both motors on
0x02Internal motor on
0x01External motor on
0x00Both motors off

Vibration patterns:

CodeName
0x00Off
0x03Vibrate
0x04Peak
0x05Pulse
0x06Echo
0x07Wave
0x08Tide
0x0eSurf
0x0fBounce
0x10Massage
0x11Tease
0x12Crest
0x13Chachacha
0x14Step
0x15Ramp
0x16Tempo
0x17Heartbeat

Info Characteristic

Reading the info characteristic returns 8 bytes:

01 PP ZZ ZZ ?? WW XY MM
ByteDescriptionRange
0x01HeaderFixed
PPVibration patternCurrent pattern
ZZ ZZBattery level0x0000 (0%) – 0xFFFF (100%)
??Unknown
WWTemperatureDegrees Fahrenheit
XInternal motor intensityCurrent value
YExternal motor intensityCurrent value
MMDevice modelSee model table

Device models:

CodeNameMotorsBLE Name
0x00Default dual-motor2default
0x02Jive1jive
0x10Gala2gala
0x20Verge1verge
0x30Pivot1pivot
0x35Classic2classic
0x40Ditto1ditto
0x45We-Vibe2cougar / 4plus
0x50Sync2sync
0x60Bloom1bloom
0x70Nova2nova
0x80Wish1wish
0x90Rave1rave

Notes

  • A motor intensity of zero does not turn the motor off. Use pattern 0x00 or the motor on/off bits.
  • The Vector and Moxie devices use a different protocol.

Sources