# 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.
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.