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 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.
RX Characteristic UUID:
TX Characteristic UUID:
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.