Skip to main content

MOSADI / CSP Protocol

Introduction

MOSADI and related brands (HACKBUTEER, RIGEE, BALA, VENUZI, VIROLL, DITO, LAVA) are products of CSP. They share a common BLE protocol. Commands consist of a command code byte followed by command-specific data. Commands must be sent periodically (approximately every 100 ms).

Device Table

ModelBT NameMotor CountDevice IDModel Number
HACKBUTEERhqs31CST0201
RIGEErigee23CST0205
MOSADIihole24CST0501
BALAbala35CST0202
VENUZIvenuzi27CST0208
VIROLLviroll29CST0208
DITOvernuz_ivy210CST0207
DITOvernuz_amy111CST0203
DITOvernuz_aima112CST0203
DITOvernuz_ann113CST0203
LAVAlava214CST0301

BLE Profile

ble_names:
- "ihole"
- "hqs"
- "rigee"
- "bala"
- "venuzi"
- "viroll"
- "vernuz_ivy"
- "vernuz_amy"
- "vernuz_aima"
- "vernuz_ann"
- "lava"
services:
- uuid: "0000ffe0-0000-1000-8000-00805f9b34fb"
characteristics:
- uuid: "0000ffe1-0000-1000-8000-00805f9b34fb"
properties: [write, notify]
role: both
description: "Command write / response notify"
- uuid: "0000fff0-0000-1000-8000-00805f9b34fb"
characteristics:
- uuid: "??? (under fff0)"
description: "Additional characteristics — purpose unknown"
- uuid: "0000180f-0000-1000-8000-00805f9b34fb"
description: "Battery Service"

Commands

Commands are sent to the 0xffe1 characteristic. They must be sent periodically (~100 ms interval).

Suspend / Mode Select

B3 XX

XX = mode byte. Observed: 0x06, 0x0C. Valid range appears to be 0x000x0C.

Vibrate / Pattern

B7 XX YY ...
  • XX: Unknown; observed as 0x06 or 0x0C (may relate to motor count or device ID)
  • YY: Pattern line number, 0x000xFE

Full vibration packet format includes additional bytes not yet fully decoded.

Notes

  • Commands must be sent periodically (not just once); interval ~100 ms.
  • The Suspend command 0xB3 may function as both a mode selector and a keep-alive.
  • Multiple brands share identical protocol — the device is identified by BT name and device ID.
  • The App used for reverse engineering is "4fun-cst" (com.fun4.hackbuteer).

Sources