FAQ
Troubleshoot in order: build → Studio → LAN download → App validation → Bluetooth startup → business features.
Build and discovery#
| Symptom | Check order |
|---|---|
| Which Windows program should I open after downloading? | In the complete plugin-open-platform directory, open Studio/windows/gm-plugin-studio-desktop.exe. Extract downloaded ZIPs first. If the EXE is missing, obtain the complete toolkit. If WebView2 is missing, install Microsoft Edge WebView2 Runtime. |
| Where do I install Studio on macOS? | Open the .dmg in Studio/macos/, drag MemoMind Plugin Studio into Applications, and launch it. Then import the complete toolkit workspace retained after download. |
| The example list is empty after installing or reopening Studio on Mac | Click “Import workspace” at the top and select the complete root containing GlassSDK, PhoneSDK, and Studio. The current version requires re-import after quitting. Do not select the DMG, .app, or Applications directory. |
| SDK is missing after importing workspace | The folder level is wrong or the toolkit is incomplete. Select the common parent of both SDKs. If SDKs were moved/deleted or you downloaded only Studio, obtain and import the complete toolkit. |
| There are no executables in the Linux directory | Studio/linux/ currently contains only a placeholder. Obtain a Linux release first; do not run Windows EXE or macOS DMG files. |
| python3 / py / node not found | Install the corresponding tool, reopen the terminal, and check its version. On Windows, Python can use py. |
| I only want Breakout, but Node.js is reported missing | Complete prebuilt examples run directly in Studio without Node.js. Rebuild only for source-only or incomplete outputs. Build just the glasses side with ./build.py glass (Windows: py build.py glass). |
| The first build's download fails | Check network access to the toolchain. Do not substitute the computer's native x86/ARM compiler. |
| No module named nacl | Install GlassSDK/build-host/tools/requirements-review.txt using the same Python interpreter as the build. |
| Dependency outside SDK/toolchain/source root | Use --project and point --source-root to the common parent of the project and shared dependencies. Add --include-dir for missing header search paths. |
| A new example is missing from the dropdown | Check manifest validity and build success, then import the correct workspace and refresh. Copied Web examples must change manifest.id because scans deduplicate IDs. Import built outputs directly for deeply nested or external projects. |
| Missing review Attachments | With source available, run ./build.py glass --force at the toolkit root (Windows: py build.py glass --force), wait for success, and check three matching outputs. Normal incremental builds may skip an existing GMP. Without source, request the complete ZIP from the provider; do not combine attachments from other versions. |
| PowerShell cannot run npm.ps1 | Use npm.cmd instead of npm. Install Python dependencies with the same interpreter used for building. |
| ./build.py linux reports an invalid argument | The public SDK detects the OS automatically; use ./build.py. At the toolkit root, add glass or web for one side only. linux is an argument for Studio's own build script. |
| build.py, package.json or requirements-review.txt not found | Check the current directory with Get-Location/pwd and dir/ls. Run PhoneSDK npm commands in PhoneSDK. The toolkit root contains GlassSDK, PhoneSDK, Studio, and top-level build.py. |
QR scanning and downloads#
| Symptom | Check order |
|---|---|
| Studio opens, but no QR code appears | Import the complete toolkit workspace, refresh, and select an existing glasses example such as GM Breakout. Import first after Mac launch. Complete prebuilt GMP and matching attachments package automatically; build if outputs are missing or source changed. |
| QR packaging stays in progress or fails | Check Studio errors, the current selection, and complete attachments. Scan only after packaging finishes. |
| The mobile browser can't open QR code. | The QR code contains an mmapp+tcp:// installation address. Use “Scan to open application” in the App's Developer Workspace. |
| Scanning connection timed out | Check computer–phone LAN reachability. Disable routing-interfering VPNs, check guest Wi-Fi/AP isolation, and allow inbound Studio connections. Use the port shown in the UI. |
| The QR pattern has not changed | The installation service may keep the same IP/port; this is not an application-content hash. Scan again and check the downloaded name and content. |
| Always run old content | Save and build. Refresh workspace examples or reselect the latest imported GMP / MMPKG. Wait for the new Studio ZIP, scan again, and verify the actual change and active App entry. |
| Scanning from another location does not work | Computer LAN addresses usually cannot be reached across networks. The phone must share a reachable LAN with Studio and use the application's owning developer account before scanning the current code. |
| Can other developers in the same LAN scan my QR code? | LAN reachability alone does not allow opening an application. It only connects to Studio's download service. MemoMind App checks signed-in developer ownership; mismatched accounts cannot open, save, or start each other's applications. |
| Can I send someone a Studio ZIP for local import? | No. MemoMind App has no local ZIP picker/import entry. Scan Studio's QR code on the App scanning page, or enter/reuse an IP and port and tap “Connect”. Developer-account ownership validation still applies. |
| Scanning times out on a computer with multiple network adapters | Check that the QR code's IP is reachable by the phone. Connect to the correct LAN, resolve VPN/virtual-adapter routing issues, then restart Studio and use the newly generated address. |
| The camera is unavailable, permission is denied, or scanning is inconvenient | Enter Studio's IPv4 address and port below the scanner and tap “Connect”, or reuse the last address. No protocol prefix is needed. LAN and account checks still apply. |
QR scanning, startup and execution#
| Symptom | Check order |
|---|---|
| The App entry is missing | Use Settings → Memo Lab → Developer Workspace. Obtain the matching App if this entry is missing. |
| Download succeeds, but the glasses do not run or startup fails | Wear and power on the glasses, then confirm Bluetooth connection in MemoMind App; system pairing alone is insufficient. Removal, folding, or casing may trigger power policy. Downloads use LAN; GMP installation uses Bluetooth. Reconnect and start the saved entry. If it still fails, check matching firmware and the complete error. |
| Studio's virtual screen works, but the physical glasses are blank | Computer virtual screen only validates desktop simulator. Also connect the phone and glasses, scan the Studio QR code in the App, and wait for download and Bluetooth installation/startup to finish. |
| The Web plugin downloads but cannot start | The current App flow also requires connected glasses. Standard display needs GM Web Bridge; paired business logic needs a matching GMP. |
| GMP installation/starting failed | Record the full error. Check connection, matching firmware/ABI, GMP size, and validation. Cross-check with an unmodified example. |
| Web Method Call Failed | Await gm.ready() first. Check object-form manifest permissions, authorization, event types, message channels, and SDK method names. |
| Web messages receive no reply | Check both protocols, request/response channels, GMP on_event parsing, and host->bt_send replies. Not every GMP handles Web messages. |
| The plugin disappears after the glasses reboot | Reboot ends execution and loses RAM state, but complete Flash cache usually remains. Reconnect and start the saved App entry. Valid cache identity/content runs directly; missing, corrupt, or firmware-binding-changed entries are retransmitted by the phone. No new computer ZIP download is needed. |
| Opening HTML directly stays on Connecting | The page needs an App/Studio host handshake. Select the Web plugin in desktop Studio and call gm.ready() early; do not wait for a glasses reply before ready. |
| The page works on the computer but is blank after scanning | Build the framework, then package dist. Check manifest.entry, relative asset paths, bundled SDK, and dependencies on a computer localhost development server. |
| An update asks for authorization again or old data is missing | Applications, saved entries, and data follow the owning account. Check the original developer account and installation entry. Renaming and scanning may create a new installation. Switching accounts does not transfer applications; switch back to view/start them. |
| Breakout stays paused or exits unexpectedly | A primary-button click pauses/resumes. Sustained upward head movement or a long press exits. Test left/right movement first. After exit, stop and restart the App entry; Studio can refresh to reload. |
| Old saved data appears in a copied Web example | Studio storage is isolated by manifest.id; changing only directory/name does not clear it. Give a new application a distinct ID. For upgrades, retain ID and test data migration. The phone App isolates by account and installation instance. |
| The same plugin is still slow to start again. | Check startup logs for cache=hit, chunks=0, and wireBytes=0. Cache hits still validate glasses content/binding, load the plugin, and prepare Web sessions. No retransmission does not mean zero duration. Distinguish first QR download from starting a saved entry. |
| The first start retransmits after a firmware upgrade | Changed firmware bindings may require cache repair through phone retransmission. Confirm a hit on the second start with package and firmware unchanged. |
| Insufficient Flash / RAM | For Flash, check required space, reclaimable/protected entries, and fragmentation. For RAM, check static data, dynamic allocations, and system load. Reducing ROM does not necessarily reduce RAM pressure. |
What to provide if it still fails#
- Exact steps and full errors, identifying the failing stage.
- SDK, Studio, App, firmware, and phone OS versions; ZIP filename and application version.
- Relevant build/Studio error excerpts. Use test data and remove passwords, credentials, and personal file contents.