Install the Mentra Live glasses software that matches your Bluetooth SDK release.
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.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 3.3.0-beta.1098, but SDK features may fail or behave incorrectly. Install the matching 3.3.0-beta.1098 glasses software before testing SDK features.
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. Build an example app with SDK 3.3.0-beta.1098 to install the matching glasses software.Each prebuilt Starter Kit app uses the SDK version identified by its release.
Choose the installation for your device:
Install the React Native example from TestFlight.
For external TestFlight channels, a newly uploaded build appears after Beta App
Review. Until then, the link continues to serve the latest approved build.
The same TestFlight build runs on Mac computers with Apple silicon. Install
TestFlight from the Mac App Store,
then open the React Native example in TestFlight and
select Install.This TestFlight build has been verified on Mac with Mentra Live for Bluetooth
connection, OTA updates, and photo capture. Intel-based Macs cannot run the
iPhone and iPad app.
The full-screen update flow checks the glasses automatically.
If an update is available, tap Update Now. Factory-stock glasses require
glasses Wi-Fi for their first update; after they run Mentra Live software 3.1
or newer, supported phones can use the Mentra Live hotspot instead.
Keep the app connected and avoid using other glasses features while the update is running.
Wait while the flow installs every required component and rechecks the glasses. They may restart during installation.
Continue when the flow reports that the glasses are up to date.
The example app uses the release-specific OTA manifest selected by its SDK, so it installs the glasses software components matching that exact SDK release.
Use this path when the software currently installed on Mentra Live cannot run the SDK OTA flow.Open the release artifacts for 3.3.0-beta.1098 and download mentra-live-asg-selection-3.3.0-beta.1098.json. That record contains the exact ASG client APK URL, filename, and checksum selected for this coordinated release. Download that APK rather than choosing an ASG build by date or version code.Install ADB, connect Mentra Live to the computer with a data-capable USB cable, and verify that the glasses appear:
adb devices
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 ASG client selected for 3.3.0-beta.1098. It does not necessarily install the matching MTK system software or BES firmware. After installing the APK, use an app built with SDK 3.3.0-beta.1098 to install any remaining components and complete the matching glasses software release.
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.
wifi_required is only a legacy bootstrap state. Mentra Live software earlier
than 3.1 does not support hotspot OTA. Factory-stock glasses are delivered in
this state, so their first update must use a Wi-Fi network configured on the
glasses. After that update installs Mentra Live software 3.1 or newer,
subsequent updates use hotspot OTA whenever the glasses advertise the supported
hotspot OTA capability, even when glasses Wi-Fi is connected. Glasses without
that capability keep the Wi-Fi update path.
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:
bun add @mentra/engine@VERSION @mentra/bluetooth-sdk@VERSION
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 Bluetooth background execution and does not add a second keep-alive
mechanism, so updates continue while the phone is locked. That requires the
bluetooth-central background mode: the SDK’s Expo config plugin adds it to
React Native apps, and native iOS apps declare it as described in
Background Operation.
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.The finishing screen means the approved session is checking for additional
required passes. Do not render terminal success or release notes until the
controller reaches up_to_date.Use state.completedUpdate to distinguish a terminal update session from a
standalone check that was already up to date. Release metadata is optional, so
do not infer completion from state.releaseTransition.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.
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.