| Property | Value |
|---|---|
| Service UUID | f33c0001-8ebf-4c9c-83ec-bfff479a930b |
| Number of Characteristics | 6 |
| Name | UUID | Permissions | Format | Description |
|---|---|---|---|---|
| Num_Actuators | f33c0002-8ebf-4c9c-83ec-bfff479a930b |
Read | uint32 |
Number of available actuators (outputs). |
| Actuators_can_Amplitude | f33c0003-8ebf-4c9c-83ec-bfff479a930b |
Read | uint32(bitmask) |
Bitmask: 1 bit per actuator. Bit = 1 if amplitude is adjustable. |
| Actuators_can_Frequency | f33c0004-8ebf-4c9c-83ec-bfff479a930b |
Read | uint32 (bitmask) |
Bitmask: 1 bit per actuator. Bit = 1 if frequency is adjustable. |
| Actuators_Frequency_Min_Max_Res | f33c0005-8ebf-4c9c-83ec-bfff479a930b |
Read | struct { uint16 f_min; uint16 f_max; uint16 f_resonance; } |
Minimum, maximum, and resonance frequency values. |
| Amplitude | f33c0032-8ebf-4c9c-83ec-bfff479a930b |
Write / Write Without Response | uint8[num_actuators] |
Set amplitude (intensity) for each actuator. |
| Frequency | f33c0033-8ebf-4c9c-83ec-bfff479a930b |
Write / Write Without Response | uint16[num_actuators] |
Set frequency (Hz) for each actuator. |
graph TD
A[BLE Peripheral] -->|Advertises| B(f33c0001-8ebf-4c9c-83ec-bfff479a930b<br>Tactile Display Service)
B --> C1["f33c0002<br>Num_Actuators<br>(Read)<br>uint32"]
B --> C2["f33c0003<br>Actuators_can_Amplitude<br>(Read)<br>uint32 bitmask"]
B --> C3["f33c0004<br>Actuators_can_Frequency<br>(Read)<br>uint32 bitmask"]
B --> C4["f33c0005<br>Frequency_Min_Max_Res<br>(Read)<br>struct {f_min, f_max, f_resonance}"]
B --> C5["f33c0032<br>Amplitude<br>(Write / Write Without Response)<br>uint8[num_actuators]"]
B --> C6["f33c0033<br>Frequency<br>(Write / Write Without Response)<br>uint16[num_actuators]"]
- Format: Array of
uint8values. - Each byte represents amplitude for one actuator (0–254 range).
- Value 255 = "don't change this actuator."
- all actuators at max. amplitude:
0xFEFEFEFE - turn off all actuators:
0x00000000 - actuators 1 and 3 at max. amplitude and 2 and 4 turned off:
0xFE00FE00 - actuators 1 and 3 at max. amplitude and 2 and 4 unchanged:
0xFEFFFEFF