Developer Resources
O6 provides an open-API platform to send and receive data and commands to its sensors and actuators. O6 contains a 3-axis accelerometer, advanced haptic motor, an ultra-low power ARM processor, over-the-air software update and will also include an SDK for developing 3rd-party apps and devices such as VR Headsets, Home automation controls, iOS/Android apps, vehicle controls, among others. O6’s open-APIs are only visible (exposed) to those devices that first pair with O6. O6’s APIs are not visible during standard advertising.
The base UUID for the following is 0x0000____-0008-218C-E411-2426C08EE0B8.
O6 Service (0x1556)
All of the O6’s custom hardware actions are encapsulated into the custom O6 service.
Haptic Motor Characteristic (0x1557)
The haptic motor can play a series of up to 8 distinct waveforms or time delays accessible through APIs to play complex and rich haptic effects in real time. To execute a waveform series, create an 8-byte array loaded with waveform or time delay values. The effect ID in array index 0 will be played first, followed by that in index 1 and so on until a value of 0 is reached, or until all 8 index values have been performed. The O6 supports a library of 123 haptic effects, and complex haptic effects can be easily generated by combining waveforms that can be triggered in real-time by 3rd Party apps and devices. The available waveforms are listed on the following page.
Permissions: read, write, write w/o response
Format: 8-byte array, each byte a haptic event, stops at zero if less than eight events
Examples:
01-00-00-00-00-00-00-00 → performs strong click 100% waveform
01-80-0A-00-00-00-00-00 → performs strong click 100% followed by delay (MSBit set corresponds to delay with remaining bits corresponding to time of delay) followed by double click 100%
Waveform Library Effects List
Tactile State Characteristic (0x1551)
Permissions: read, notify
Format: byte 0 = Action, byte 1 = Button ID
Examples:
01-02 → bezel button pressed
04-00 → top center held 1 sec
00-00 → top center released after holding for 1 sec 01-10 → rotary counterclockwise rotation, one click
Accelerometer Characteristic (0x1555)
This characteristic reports accelerometer readings every second with a notification. Future development includes adding another characteristic to configure accelerometer settings, and report accelerometer recognized gestures and interrupts of certain thresholds.
Permissions: read, notify
Format: Signed big-endian 16-bit number for each axis in units of 4 mg/bit. Six bytes total.
Mode Characteristic (0x1562)
This sets the input mode, more specifically which map of button IDs to HID commands are sent to the central. This characteristic value is also non-volatile, so it persists across resets. A notification is sent if the user changes the mode with a button press.
Permissions: read, notify, write, write w/o response Format: Single byte
Mode
0 : Advanced
1 : Super
2: Basic
Shutdown Characteristic (0x1563)
Permissions: read, write, write w/o response
Format: Single byte, any non-zero write will shutdown, press top center button to then wake