Each Bluetooth SDK release has a matching Mentra Live glasses software release. Your mobile app and glasses must use the same release version. For coordinated releases, the completed release record correlates the exact SDK packages, hosted OTA manifest, and portable OTA bundle selected for one release. See Air-Gapped Bluetooth SDK Deployment for release-record resolution, checksum verification, and internal hosting. The latest matching pair is:
Bluetooth connection alone does not confirm version compatibility. Glasses running an older software release may connect to an app using SDK 0.1.21-beta.5, but SDK features may fail or behave incorrectly. Install the matching 0.1.21-beta.5 glasses software before testing SDK features.

How Version Matching Works

When your app calls checkForOtaUpdate(), the SDK checks the OTA manifest matching its own version. The manifest describes the ASG client, MTK system software, and BES firmware required by that SDK release. Calling startOtaUpdate() installs the available components after the user accepts the update. When you upgrade your app to a new Bluetooth SDK release, run the OTA check again and require the matching glasses software before enabling SDK features. The Mentra Bluetooth SDK Starter Kit includes the complete OTA flow. You can build an example app from source or install the recommended prebuilt React Native Android app. For another SDK version, open the Starter Kit tags page, choose the matching sdk-<version> tag, and select Downloads to find its React Native example APK.

Install A Prebuilt App On Android

The simplest installation path is to open an APK link on the Android phone:
  1. Download the APK using the phone’s browser.
  2. Open the downloaded file.
  3. If Android asks for permission, allow the browser or Files app to install unknown apps.
  4. Tap Install, then open the example app.
You can alternatively install the APK from a computer. Install ADB, enable USB debugging on the phone, and connect it with a data-capable USB cable:
Use the serial shown by adb devices. If only one Android device is connected, you can omit -s <phone-serial>.

Install The Matching Glasses Software

  1. Pair and connect the example app to Mentra Live.
  2. The full-screen update flow checks the glasses automatically.
  3. If an update is available, tap Update Now. Configure glasses Wi-Fi only if the flow asks for it; supported releases can use the Mentra Live hotspot instead.
  4. Keep the app connected and avoid using other glasses features while the update is running.
  5. Wait while the flow installs every required component and rechecks the glasses. They may restart during installation.
  6. Continue when the flow reports that the glasses are up to date.
The example app uses the release-specific OTA manifest selected by SDK 0.1.21-beta.5, so it installs the glasses software components matching that SDK release.

Bootstrap The Update With ADB

Use this path when the software currently installed on Mentra Live cannot run the SDK OTA flow. All supported versions are available on the Bluetooth SDK OTA Artifacts release page. Choose the ASG client APK whose filename starts with asg-client-sdk-<sdk-version>-, using the same version as your app’s Bluetooth SDK dependency. For the latest 0.1.21-beta.5 release, open the Bluetooth SDK OTA Artifacts release page and download the APK whose filename starts with asg-client-sdk-0.1.21-beta.5-. Install ADB, connect Mentra Live to the computer with a data-capable USB cable, and verify that the glasses appear:
Install the ASG client using the glasses serial shown by that command:
If only the glasses are connected, you can omit -s <glasses-serial>.
This command installs only the 0.1.21-beta.5 ASG client application. It does not necessarily install the matching MTK system software or BES firmware. After installing the APK, use the 0.1.21-beta.5 example app’s OTA flow to install any remaining components and complete the matching glasses software release.

Add The OTA Requirement To Your App

Every app using the Bluetooth SDK must install the glasses software matching its SDK release before enabling version-dependent features. For React Native apps, Mentra Engine owns the complete Wi-Fi and hotspot OTA sequence, including artifact verification, APK/MTK/BES ordering, restarts, retries, and final version verification. Do not reproduce that sequencing with checkForOtaUpdate(), startOtaUpdate(), and ota_status listeners in React Native application code.

Use The Exact Mentra App OTA Pages

This is the simplest and safest integration. MentraLiveOtaFlow provides the same full-page OTA screens and behavior as the Mentra App. Install matching Mentra Engine and Bluetooth SDK releases:
Render the flow after Mentra Live connects. Your app owns only the surrounding navigation and its Wi-Fi setup page:
The component initializes only the Engine projections required by OTA. If your app already called engine.start(), pass initializeRuntime={false}. The flow checks again after every install pass. It does not finish until the ASG client, MTK system software, and BES firmware all match the release manifest. On Android, hotspot OTA requires Android 13 or newer. On iOS, it uses the app’s existing Bluetooth background execution while Mentra Live remains connected; it does not add a second keep-alive mechanism.

Customize The OTA Pages

Use useMentraLiveOta when your app needs different components, layout, colors, or navigation. The hook exposes semantic screens and idempotent actions while the same Engine coordinator retains all OTA sequencing:
state.releaseTransition is present when the checked OTA manifest belongs to a coordinated Mentra release. toVersion is that exact release identity. The current fromVersion is the ASG client version reported by the glasses and may be null on older installations, so custom pages should keep an honest unknown fallback. When glasses report their coordinated release identity directly, Engine can replace this one source-version lookup without changing customer UI code. Engine captures the pair before installation and retains it through restarts and final verification. Start from the Starter Kit’s custom OTA presentation folder and change its presentation components and styles. Call only the controller’s actions. Do not copy or modify update ordering, hotspot setup, watchdogs, or restart recovery, and do not import @mentra/bluetooth-sdk/internal, Engine stores, or Engine services.

Native Android And iOS Apps

Mentra Engine’s complete controller is currently a React Native integration. Native Android and iOS apps use the lower-level OTA commands and events in the API Reference and must preserve the documented OTA contract, including repeated checks across multi-component updates and restart recovery. Mentra Live rejects an OTA start when its known battery level is below 5% and reports battery_low. An unknown glasses battery remains fail-open. Keep an app-level battery check as the user-facing policy; the glasses check is defense in depth.