Skip to content

Support newer Ray-Ban Meta glasses: migrate DAT SDK 0.4.0 → 0.7.0#65

Open
DareDev256 wants to merge 1 commit into
Intent-Lab:mainfrom
DareDev256:fix/dat-0.7-newer-glasses-firmware
Open

Support newer Ray-Ban Meta glasses: migrate DAT SDK 0.4.0 → 0.7.0#65
DareDev256 wants to merge 1 commit into
Intent-Lab:mainfrom
DareDev256:fix/dat-0.7-newer-glasses-firmware

Conversation

@DareDev256

Copy link
Copy Markdown

Problem

On newer Ray-Ban Meta glasses (2026 frames running V125-generation firmware, DAT runtime 0.7.0.10.0), VisionClaw can pair and play audio, but the camera never streams: registration reaches .registered, yet devicesStream stays empty forever, AutoDeviceSelector.activeDeviceStream never emits, and requestPermission(.camera) throws .noDevice. So "Start streaming" is permanently disabled.

Root cause: the pinned meta-wearables-dat-ios 0.4.0 only supports Ray-Ban Meta firmware up to ~V20–V22 (per Meta's Version Dependencies matrix). V125-generation glasses need SDK 0.7.0. Reported widely upstream: facebook/meta-wearables-dat-ios#200, #207, #201.

The fix

Migrates to DAT SDK 0.7.0 and its session-based device model (introduced in 0.6.0):

  • pbxproj: meta-wearables-dat-ios 0.4.0 → 0.7.0.
  • StreamSessionViewModel: StreamSessionwearables.createSession(deviceSelector:)DeviceSession; grab stateStream() before start(), wait until the session reaches .started before session.addStream(config:)MWDATCamera.Stream (addStream returns nil if the session hasn't connected yet — matches Meta's own 0.7.0 sample); remap the renamed StreamState / StreamError / StreamConfiguration types.
  • WearablesViewModel: request camera permission as soon as registration completes. A wearable doesn't appear in devicesStream until a permission is granted via Meta AI, but the stock flow only requested it behind the Start-streaming button — which is disabled until a device appears. That's a deadlock on devices that don't auto-grant.
  • Info.plist: add the 0.7.0 discovery keys from Meta's sample — bluetooth-central + processing background modes, NSBonjourServices (_bonjour._tcp), and NSLocalNetworkUsageDescription.

Testing

Tested live on hardware: glasses camera POV streams end-to-end into the Gemini pipeline on a Ray-Ban Meta (V125-gen firmware, iOS 26.5). Scope is intentionally minimal — only the DAT migration; no behavior change to the Gemini/OpenClaw paths.

Older glasses on 0.4.x firmware: worth a maintainer check, but 0.7.0 is Meta's current SDK and the matrix lists it as the supported path going forward.

The pinned DAT SDK 0.4.0 only supports Ray-Ban Meta firmware up to ~V20-V22
(per Meta's Version-Dependencies matrix). Newer glasses (e.g. the 2026 frames
running V125-generation firmware, DAT runtime 0.7.0.10.0) are never discovered:
registration succeeds and audio works, but devicesStream stays empty,
AutoDeviceSelector never emits, and requestPermission(.camera) throws .noDevice.
Reported widely (issues #200, #207, #201).

This migrates the app to DAT SDK 0.7.0 and its session-based device model:

- pbxproj: meta-wearables-dat-ios 0.4.0 -> 0.7.0
- StreamSessionViewModel: migrate StreamSession -> wearables.createSession(
  deviceSelector:) -> DeviceSession; wait for session .started before
  session.addStream(config:) -> MWDATCamera.Stream (addStream returns nil if the
  session hasn't connected yet, matching Meta's own 0.7.0 sample); remap the
  renamed StreamState/StreamError/StreamConfiguration types
- WearablesViewModel: request camera permission as soon as registration completes
  (the device does not appear in devicesStream until a permission is granted via
  Meta AI; the stock flow only requested it behind the Start-streaming button,
  which is disabled until a device appears -- a deadlock)
- Info.plist: add the 0.7.0 discovery keys from Meta's sample -- bluetooth-central
  + processing background modes, NSBonjourServices (_bonjour._tcp),
  NSLocalNetworkUsageDescription

Tested live: glasses camera POV streams end-to-end on a Ray-Ban Meta (V125-gen
firmware, iOS 26.5).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant