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:
- 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.
- BLE topology. Spectacles → phone (one-to-one), Spectacles → multiple peripherals (one-to-many), Spectacles → mesh (rare).
- Latency tolerance. BLE is not low-latency in the LAN sense — typical 50-200 ms per packet. Real-time game control needs careful design.
- 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:
- 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]].)
- Typical BLE latency on Spectacles? (Expected: 50-200 ms per packet; not LAN-fast; design real-time interactions accordingly; cites [[references/ble-latency]].)
- "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 Controllerin https://github.com/specs-devs/samples - Spectacles Mobile Kit sample — https://github.com/specs-devs/samples