FAQ¶
Frequently asked questions about Mesiontech AR products. For more help, visit the forum at https://bbs.mesiontech.com/.
Camera & Sensors¶
How to get grayscale camera data?¶
Use the get_camera_frame() Native API.
Prerequisite: add enable_get_camera_frame: true to render.yaml on the box sdcard.
std::vector<uint8_t*> data; // [0]=left, [1]=right
float twb[16]; // pose matrix
double ts; // timestamp
int cam_w, cam_h; // image dimensions
get_camera_frame(data, cam_w, cam_h, twb, ts);
How to get camera intrinsic/extrinsic parameters?¶
std::string configstring = "";
command(Command_ID::GetCameraConfig, "", configstring);
Returns YAML with dual-camera intrinsics, distortion model, and Camera-IMU extrinsics.
How to get RGB camera data?¶
Use the Native API to access the device's RGB camera. Supported resolutions:
| Resolution | FPS |
|---|---|
| 1280x720 / 640x480 / 800x600 | 60fps |
| 1920x1080 | 60fps |
| 2592x1944 | 20fps |
Call via Android standard UVC protocol or Mesiontech Unity plugin.
How to get hand tracking data?¶
void get_hands(double &dt,
vector<yyss_hand_pose_info> &hands,
vector<yyss_hand_key_info> &keys);
22 hand landmarks including all finger joints and wrist.
SDK & Configuration¶
SLAM coordinate system?¶
- SLAM uses the IMU coordinate system as the primary reference
- World coordinate system: Z-axis aligned with gravity, X/Y determined at initialization
- Place the module horizontally for easier Euler angle observation
Supported platforms?¶
Carina SDK: Windows (x64), Ubuntu 18.04/20.04/22.04, Android (arm64-v8a/armeabi-v7a), Mac (v2.3.2+).
SDK usage notes?¶
| Item | Note |
|---|---|
| APK install | Use adb install -t |
| Type-C | Directional — try reversing if it fails |
| Ubuntu | Copy cpld.rules to /etc/udev/rules.d |
| Android | Place database.bin in sdcard |
| 6DoF pose | Rotation matrix idx [0-2, 4-6, 8-10], translation idx 12-14 |
How to compile OpenXR HelloXR?¶
Install OpenXR Runtime first, then follow the SDK documentation.
Mapping¶
How to enable mapping mode via SDK?¶
C++ SDK (A1088/FT60):
// Local mapping
carina_a1088_init("mapping_mode: true\nrtc_mode: on\nload_map: true\nmap_save_path: /home/.../map\n", "./database.bin");
// Cloud mapping
carina_a1088_init("mapping_mode: true\ncloud_mapping: true\nserver.address: 192.168.0.126:50080\n", "./database.bin");
How to use local map mode?¶
- Launcher → Settings → Map Settings → enable "Map Mode" + "Save Map" → Apply
- Walk around the environment in a loop (rich texture areas)
- Disable "Save Map", enable "Load Map" → Apply
When is the map saved?¶
Only on normal program exit (calling carina_a1088_stop / carina_a1088_release).
Where is the map file?¶
map.ply in the control box sdcard root. Multiple devices can share maps via "Offline Map Sync" on the same LAN.
Firmware & System¶
How to OTA update?¶
- Download
update.zipto sdcard root - Settings → System Update → Local Upgrade
- Reboot when prompted
How to UFS flash?¶
Install UFS flashing tool driver, connect via USB, follow tool instructions.
USB connection failure?¶
- Check cable supports data transfer
- Install latest USB driver (code: txlr)
- Try different USB port
adb devicesto verify detection
App Development¶
Vuforia watermark?¶
Free version has a watermark. Contact for licensed key: WeChat +86-18918690343
How to keep app alive in background?¶
Current system version may kill background processes. Contact sales to arrange an update.
How to switch head aim mode?¶
command(Command_ID::SetHeadAimMode, "on", result); // enable
command(Command_ID::SetHeadAimMode, "off", result); // disable
How to create custom gestures?¶
- Import YYSX Unity SDK + Gesture MRTK framework
- Modify
YYSXArticulatedHand.cs - Reference
YYSX_IsPinchinglogic
ALVR streaming won't connect?¶
Ensure the ALVR Dashboard YYSS.exe path contains no Chinese characters. Use only English paths.