Skip to main content

Kiiroo Onyx/Pearl 1

The Kiiroo Onyx 1 and Pearl 1 were a set of toys made to control each other via Kiiroo's remote servers. The Onyx 1 was a tube with constricting elements and a touch sensor slider, while the Pearl 1 was a vibrator with 4 capacitive touch elements used to track insertion depth.

Bluetooth Details

Bluetooth 2.0 Connections

When pairing using Bluetooth 2.0, serial ports on OS X and linux machines will register for the Pearl toy as:


and for the Onyx toy as:


Bluetooth LE Connections

When using Bluetooth LE to talk to Kiiroo toys, the following UUIDs are used.

Service UUID:


RX Characteristic UUID:


TX Characteristic UUID:


Kiiroo Protocol

The Kiiroo communications protocol consists of strings send to either the Pearl or Onyx. These strings are formatted like so:


Where x is an integer from 0-4. When sent to the Onyx, this command sets the pressure ring position. When sent to the Pearl, this command sets vibration levels.

These commands are sent from the Pearl whenever a corresponding touch sensor is hit. There is no way to send commands from the Oynx.

That is it. That is the whole protocol. The end.

Stupid Kiiroo Tricks

The simplicity of the protocol means that two toys can interact locally on POSIX-compliant platforms (linux, OSX/macOS, etc) using nothing but a 'cat' command. If both toys are paired using Bluetooth 2.0, so that the Pearl is at


and the Onyx is at


Then the following command can be run

cat /dev/tty.PEARL-DevB > /dev/tty.ONYX-DevB

This will cause the output from the Pearl's touch sensors to be read directly into the Onyx, controlling its pressure rings.