Skip to content

Latest commit

 

History

History
45 lines (35 loc) · 2.36 KB

File metadata and controls

45 lines (35 loc) · 2.36 KB

BLE Peripheral

BLE Service Summary

Property Value
Service UUID f33c0001-8ebf-4c9c-83ec-bfff479a930b
Number of Characteristics 6

Characteristics

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]"]
Loading

Write Data Formats

Amplitude Characteristic (f33c0032...)

  • Format: Array of uint8 values.
  • Each byte represents amplitude for one actuator (0–254 range).
  • Value 255 = "don't change this actuator."

Examples

  • 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