TAP

How Tap works

Same idea as “how apps run on Frame”: Tap is a BLE peripheral. Your host app owns the logic. Tap streams input events after you put it in the right mode.

  1. Host app is the brain
  2. Text vs Controller
  3. Tap combination bitmask
  4. Mouse
  5. Air gestures
  6. Raw sensors
  7. Pairing (no scan)

Host app is the brain

Tap does not run your application. The phone, tablet, PC, or Python process is the host. It connects over BLE, configures input mode, and reacts to callbacks (tap, mouse, air gesture, raw sensors). That is why the SDKs live on the host platforms — iOS, Android, Python, and Web — not as installable “apps” on the wearable.

Text vs Controller

When you turn Tap on, it boots into Text mode: a Bluetooth HID keyboard (and mouse behavior for pointing). Recognized taps become characters via the OS keyboard stack. In Text mode the SDK receives nothing.

To get finger combinations in your app, switch to Controller mode after connect. When your app backgrounds, switch back to Text so the user keeps a working keyboard. Android and several other SDKs automate this if you hook the app lifecycle (pause / resume, etc.).

NOTEIf taps “don’t work” in your app, check mode first. Text mode looks healthy in Bluetooth settings but yields zero SDK events.

Additional modes (platform naming varies slightly):

  • Controller + Mouse HID — controller events plus system cursor
  • Raw Sensor — finger accelerometers + thumb IMU stream

Tap combination bitmask

A tap arrives as an unsigned 8-bit value in the range 1–31. Binary bits map to fingers:

BitFinger
0 (LSB)Thumb
1Index
2Middle
3Ring
4Pinky

Example: combination 5 = 0b00101 = thumb + middle. Helpers decode to five booleans:

swift
let fingers = TAPCombination.toFingers(combination)
// fingers[0]=thumb … fingers[4]=pinky

Full 1–31 table: API reference.

Mouse

In controller-related modes, mouse motion arrives as velocity on X/Y (scaling = sensitivity) plus a boolean that marks real vs false detection — see each SDK’s moused / OnMoused / onMouseInputReceived.

Air gestures

Tap v2 / TapXR expose air gestures (one/two finger up, down, left, right, thumb-to-index / thumb-to-middle touches). Enum integer values are shared across SDKs — listed in the API reference. Extended Spatial Control states (100–102) are qualified developers only.

Raw sensors

Raw mode streams five 3-axis finger accelerometers, plus thumb IMU (accelerometer + gyro) on Tap Strap 2. Typical stream rate on iOS is described as ~200 callbacks per minute. Payload types split Device (fingers) vs IMU (thumb unit).

Pairing (no scan)

Official SDKs attach to devices the OS already paired. They do not perform a general Tap scan. Pair in system Bluetooth settings beforestart() / connect().