Documentation and example apps for connecting to smart glasses directly from mobile apps over Bluetooth, powered by MentraOS. This is the supported Mentra Bluetooth SDK for mobile apps and works with MentraOS compatible glasses, including Mentra Live, Even Realities, Vuzix Z100, NIMO, and more.
The SDK is available in three first-class forms:
| Platform | Package | Example |
|---|---|---|
| Android | com.mentra:bluetooth-sdk |
examples/android |
| iOS | MentraBluetoothSDK CocoaPod |
examples/ios |
| React Native / Expo | @mentra/bluetooth-sdk |
examples/react-native |
Use the latest SDK version published by Mentra for your app. This repo can be cloned and used without any local path to the MentraOS source tree.
- Read Getting Started for install, permissions, and minimal connection flows.
- Run the example that matches your app stack:
- Keep API Reference, Display Guide, Audio Guide, and Hardware Integration Notes nearby while building.
- Use Troubleshooting and the Production Checklist before shipping.
- Scanning for supported Mentra glasses, connecting, disconnecting, and reconnecting to a saved/default device.
- Reading typed glasses and Bluetooth status snapshots.
- Displaying text, clearing the display, and opening the dashboard on display-equipped models such as G2.
- Handling button, touch, swipe, head-up, battery, Wi-Fi, hotspot, stream, photo, audio, and diagnostic events.
- Controlling model-supported features such as brightness, dashboard position, head-up angle, gallery-button behavior, button photo/video settings, speaker playback, RGB LED patterns, Wi-Fi, hotspot, microphone, camera, and streaming.
- Running local photo upload and RTMP/SRT/WebRTC streaming demos from a fresh clone.
docs/getting-started.md: package install and first connection for Android, iOS, and React Native.docs/api-reference.md: public API shape, command/event lifecycle, and cross-platform model names.docs/display-guide.md: text, dashboard, and display-related settings.docs/audio-guide.md: microphone events, LC3/PCM, local transcription, playback route, and glasses media volume.docs/hardware-integration.md: model differences and capability gating.docs/production-checklist.md: release-readiness checklist.docs/troubleshooting.md: build, permission, scan, stream, and React Native issues.examples/local-demo-cloud: recommended local helper for photo upload and stream preview.examples/photo-webhook-server: focused photo webhook server.examples/local-webrtc-server: lower-level MediaMTX helper.
Published package installs are the normal SDK path. Local overrides are only for SDK development before a release is published:
- Android: publish
com.mentra:bluetooth-sdkand its companion artifacts to Maven local, then build the example withmavenLocal()enabled. - iOS: set
MENTRA_BLUETOOTH_SDK_LOCAL_PATHto a local SDK checkout beforepod install. - React Native: install a local
@mentra/bluetooth-sdkpackage path and setMENTRA_BLUETOOTH_SDK_PACKAGE_PATHso Metro and native builds resolve the same package.
The example READMEs document each override explicitly. Do not bake machine-specific paths into committed app config.