Advertising and device info
Advertising Data
| Item | Value | Description |
| AD Type 0x01 (Flags) | 0x06 | LE General Discoverable / BR/EDR Not Supported |
Scan Response Data
| Item | Value | Description |
| AD Type 0x09 (Complete Local Name) | kubi24587CEFC55E (example) | "kubi" + MAC address |
Generic Access (0x1800) and Device Information (0x180A)
| Characteristic | Property | Value |
| 0x2A00 Device Name | Read | "kubi" + MAC address |
| 0x2A01 Appearance | Read | Generic Remote Control |
| 0x2A25 Serial Number String | Read | Last 6 digits of the MAC address |
| 0x2A24 Model Number String | Read | iPre-K |
| 0x2A29 Manufacturer Name String | Read | iPresence Co., Ltd. |
| 0x2A27 Hardware Revision String | Read | Hardware revision (string) |
| 0x2A26 Firmware Revision String | Read | Firmware revision (string) |
Head control (Custom Control service)
Service UUID: 2a001800-2803-2801-2800-1d9ff2d5c442. Characteristic UUIDs take the form 0000XXXX-0000-1000-8000-00805f9b34fb (XXXX in the table).
| UUID | Property | Length | Description |
| 9141 | Write | 5byte | Write to a 1-byte register (unused) |
| 9142 | Write | 5byte | Write to a 2-byte register (velocity and acceleration) |
| 9143 | Write | 5byte | Read a 1-byte register (unused) |
| 9144 | Write | 2byte | Request to read a 2-byte register |
| 9145 | Read, Write | 2byte | Goal position for the pan servo |
| 9146 | Read, Write | 5byte | Goal position for the tilt servo |
| 9147 | Read, Notify | 5byte | Value read from a register (notified when read) |
| 9149 | Read, Notify | 9byte | Response to the previous command (unused) |
Goal position (9145: pan / 9146: tilt)
- Format
- 2 bytes, MSB then LSB. Example: 0x02 0x00 (0x0200)
- Value range
- 0 (0x0000) to 1023 (0x03FF)
- Movable range
- Pan (left/right): 0 (0x0000) to 1023 (0x03FF) / Tilt (up/down): 432 (0x01B0) to 620 (0x026C)
- Conversion to angle
- value × 0.29 ≈ angle [°]. Example: 0x0200 (512) × 0.29 ≈ 150°
Reading the current position (9144 → 9147)
- Read request (9144)
- 2 bytes: ID and Address. ID: 0x01 pan / 0x02 tilt. Address: 0x24 only.
- Notified value (9147)
- 5 bytes: ID, Address (0x24), Length (0x02), LSB, MSB. Example: 0x01 0x24 0x02 0x00 0x02 means the current pan position is 0x0200 (≈150°).
Velocity and acceleration (9142: write to a 2-byte register)
Write ID, Address, LSB, MSB in that order. ID: 0x01 pan / 0x02 tilt. Only Address 0x20 (velocity) and 0x6C (acceleration) are supported.
| Item | Address | Example | Range | Default | Guaranteed range | Conversion |
| Profile Velocity | 0x20 | 0x01 0x20 0x4E 0x00 | 0–1023 | 78 (0x004E) | 78–156 | value × 0.111 ≈ rpm (78 ≈ 9 rpm) |
| Profile Acceleration | 0x6C | 0x01 0x6C 0x03 0x00 | 0–32767 | 3 (0x0003) | 3–6 | value × 214.577 ≈ rpm² (3 ≈ 644 rpm²) |
Velocity and acceleration take effect when the goal position is updatedAfter changing them, write the goal position (9145 / 9146). Do not use values outside the guaranteed range.
Reading status (Custom Status service)
Service UUID: 0000e001-0000-1000-8000-00805f9b34fb
| UUID | Property | Length | Description |
| 0000e101-… | Read | 2byte | Battery voltage [mV]. LSB then MSB. Example: 0x74 0x0E = 0x0E74 = 3,700mV |
| 0000e102-… | Read, Write, Notify | 2byte | Servo error (notified when it occurs). See the table below |
| 0000e103-… | Read | 2byte | ID of the servo with the error (0x01 pan / 0x02 tilt) |
| 0000e104-… | Read, Write | 3byte | Indicator color (R, G, B, each 0–255) |
| 0000e105-… | Read, Notify | 1byte | Battery status (notified on change). See the table below |
| 0000e10a-… | Read, Notify | 1byte | Power button state (0x00: released / 0x01: pressed; notified on change) |
"…" in the UUIDs stands for -0000-1000-8000-00805f9b34fb.
Servo error (e102)
| Bit | Error | Description |
| 5 | Overload Error | A load above maximum output continues |
| 4 | Electrical Shock Error | An electrical fault in the circuit, or not enough power to drive the motor |
| 2 | Overheating Error | The internal temperature exceeded the set operating temperature |
| 0 | Input Voltage Error | The input voltage exceeded the set operating voltage |
Bits 7, 6, 3 and 1 are not used.
Battery status (e105)
| Value | Status |
| 1 | Normal |
| 3 | System Reset |
| 5 | Low Battery |
| 7 | System Reset / Low Battery |
| 9 | Charging |
| 11 | System Reset / Charging |
| 13 | Low Battery / Charging |
| 15 | System Reset / Low Battery / Charging |
Development inquiries
iPresence is looking for companies and developers who want to build kubi 2.0's movement into their own AI agents or services, as AI development partners. Contact us about integrating with existing systems or aligning technical requirements.
Ask about development