# Snap Spectacles Mobile Kit

> Load when the user is bridging a phone or external BLE device to a Spectacles lens — sending phone sensor data into a lens, building a companion app, integrating Arduino / game controllers, or asks "how do I pair my own peripheral with Spectacles." Don't load for general Lens Studio basics — use snap-spectacles-build.

- Skill: `hktitan/snap-spectacles-mobile-kit` (Agent Skill, multi-file: 11 files)
- Install (CLI): `npx skillmds@latest add hktitan/snap-spectacles-mobile-kit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hktitan/snap-spectacles-mobile-kit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: HKTITAN (https://skillmd.com/u/hktitan)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hktitan/snap-spectacles-mobile-kit

---


# Spectacles Mobile Kit and BLE

Spectacles Mobile Kit is the bridge between a Spectacles lens and the outside world over Bluetooth Low Energy. Phone companion apps, Arduino IMUs, game controllers, custom IoT — anything BLE — pairs through this surface. The kit is small; the design patterns around it are where the real work is.

## When to load

Triggers:
- "Spectacles BLE"
- "Arduino glasses"
- "Game controller Spectacles"
- "Companion phone app Spectacles"
- "Phone sensor into a lens"
- "Pair external device with Spectacles"

Don't load for:
- Multiplayer / shared lens experiences — [[../snap-spectacles-sync/SKILL]].
- Phone-as-controller for interaction only — [[../snap-spectacles-sik/references/mobile-interactor]].
- General Lens Studio basics — [[../snap-spectacles-build/SKILL]].

## Decide first

The architecture decisions before code:

1. **Where's compute?** Lens (constrained), companion phone (flexible), external device (specialised). Most setups split: lens does AR + display, phone does heavy compute / network, external device contributes raw sensor data.
2. **BLE topology.** Spectacles → phone (one-to-one), Spectacles → multiple peripherals (one-to-many), Spectacles → mesh (rare).
3. **Latency tolerance.** BLE is not low-latency in the LAN sense — typical 50-200 ms per packet. Real-time game control needs careful design.
4. **Companion app footprint.** Native iOS / Android, or web? Each has trade-offs.

## Map of content

### Foundations

- [[references/ble-overview]] — Bluetooth Low Energy on Spectacles, the realities.
- [[references/mobile-kit-setup]] — installing and configuring Spectacles Mobile Kit.

### Phone bridges

- [[references/mobile-to-lens-bridge]] — phone ↔ lens data flow patterns.
- [[references/companion-app-pattern]] — when and how to build a phone companion.
- [[references/sensor-passthrough]] — pulling phone sensors (GPS, mic, IMU) into a lens.

### External devices

- [[references/arduino-integration]] — Arduino / ESP32 / IoT via BLE.
- [[references/game-controller-bridge]] — game controllers as lens input.

### Operating

- [[references/ble-permissions]] — Spectacles' BLE permission flow.
- [[references/ble-latency]] — what to expect.
- [[references/ble-debugging]] — when pairing or data flow fails.

## Verify

Before claiming a Mobile Kit / BLE integration is shippable:

- [ ] BLE permission is requested with clear UX.
- [ ] Pairing flow tested end-to-end on a clean device.
- [ ] Disconnect / reconnect handled gracefully.
- [ ] Latency measured for the critical interactions; UX adapts.
- [ ] Companion app (if any) tested on both iOS and Android.
- [ ] Multiple peripherals (if relevant) tested for collision / ordering.

## Smoke test

If this skill loaded correctly, the agent should answer:

1. The user wants their lens to read GPS from the phone. What's the cleanest path? (Expected: phone companion app + Mobile Kit bridge; pass GPS over BLE; cites [[references/sensor-passthrough]] and [[references/companion-app-pattern]].)
2. Typical BLE latency on Spectacles? (Expected: 50-200 ms per packet; not LAN-fast; design real-time interactions accordingly; cites [[references/ble-latency]].)
3. "My BLE device pairs in iOS Bluetooth settings but not in my lens." (Expected: BLE permission on Spectacles is separate; the lens needs its own permission grant; cites [[references/ble-permissions]] and [[references/ble-debugging]].)

## Sibling skills

- [[../snap-spectacles-build/SKILL]] — Lens Studio basics.
- [[../snap-spectacles-sik/SKILL]] — interactions, including MobileInteractor for phone-as-controller.
- [[../snap-spectacles-ai/SKILL]] — for cloud-side compute that often pairs with phone bridging.

## Sources

- Mobile Kit getting started — <https://developers.snap.com/spectacles/spectacles-frameworks/spectacles-mobile-kit/getting-started>
- BLE samples — `BLE Playground`, `BLE Arduino`, `BLE Game Controller` in <https://github.com/specs-devs/samples>
- Spectacles Mobile Kit sample — <https://github.com/specs-devs/samples>

