Problem connecting Viture Pro XR glasses

Hi,
i bought Viture Pro XR glasses which are basically just a USB-C display.
They work on every other device but on my Fairphone 5 i need to plug them in and restart the phone for them to display an image. If i unplug and reconnect them they do not activate.

Everything is on the latest update.
The weird thing is the glasses work with every other device i plugged them into.
The phone works on multiple USB-C displays.
It’s just the pairing of the glasses with the phone that causes a problem. I’m starting to think this might be a power supply issue as the glasses get all their power via the USB-C connection. I already ordered a dongle that allows me to inject power from a charger to test this but it hasn’t arrived yet.
Also i tried enabling and disabling desktop mode but nothing seemed to change the behaviour.

Any suggestions or ideas how to debug this?

I have the same issue. On all my devices, Samsung Galaxy Tab S10+, Huawei and other older Android phones, Steam Deck, … the Virture Xr Pro glasses work everytime I plug them out/in, but with the Fairphone 5g only while connected during a reboot, but not when I plug them out and in during a running Android session.

I have a Fairphone 5g, with Android 14, Build number FP5.UT2B.B.072.20240920.

I connected to it via Wireless Debugging to grab some insights what is happening:

START (logcat | grep usb)

Logs

connecting random USB item

12-08 15:40:45.204 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received change@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0
12-08 15:40:45.217 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:40:45.218 1091 2661 I android.hardware.usb@1.2-service-qti: connected:1 canChangeMode:1 canChagedata:0 canChangePower:0
12-08 15:40:45.219 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received change@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0
12-08 15:40:45.220 1515 1970 I UsbPortManager: USB port changed: port=UsbPort{id=port0, supportedModes=dual, audio_acc, supportedContaminantProtectionModes=5, supportsEnableContaminantPresenceProtection=false, supportsEnableContaminantPresenceDetection=false, supportsComplianceWarnings=false, status=UsbPortStatus{connected=true, currentMode=dfp, currentPowerRole=source, currentDataRole=host, supportedRoleCombinations=[source:host, sink:device], contaminantDetectionStatus=2, contaminantProtectionStatus=1, usbDataStatus=unknown, isPowerTransferLimited=false, powerBrickConnectionStatus=unknown, complianceWarnings=, plugState=0, displayPortAltModeInfo=null}, canChangeMode=true, canChangePowerRole=false, canChangeDataRole=false, connectedAtMillis=3977667, lastConnectDurationMillis=0
12-08 15:40:45.219 1091 2661 I android.hardware.usb@1.2-service-qti: uevent recieved for same device 1.5A
12-08 15:40:45.223 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:40:45.223 1091 2661 I android.hardware.usb@1.2-service-qti: connected:1 canChangeMode:1 canChagedata:0 canChangePower:0
12-08 15:40:45.224 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received add@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0/port0-partner
12-08 15:40:45.224 1091 2661 I android.hardware.usb@1.2-service-qti: partner added
12-08 15:40:45.224 1091 2661 I android.hardware.usb@1.2-service-qti: uevent recieved for same device 1.5A
12-08 15:40:45.225 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:40:45.225 1091 2661 I android.hardware.usb@1.2-service-qti: connected:1 canChangeMode:1 canChagedata:0 canChangePower:0
12-08 15:40:45.390 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received change@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0
12-08 15:40:45.393 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:40:45.393 1091 2661 I android.hardware.usb@1.2-service-qti: connected:1 canChangeMode:1 canChagedata:1 canChangePower:1
12-08 15:40:45.394 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received change@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0/port0-partner
12-08 15:40:45.394 1091 2661 I android.hardware.usb@1.2-service-qti: uevent recieved for same device usb_power_delivery
12-08 15:40:45.395 1515 1970 I UsbPortManager: USB port changed: port=UsbPort{id=port0, supportedModes=dual, audio_acc, supportedContaminantProtectionModes=5, supportsEnableContaminantPresenceProtection=false, supportsEnableContaminantPresenceDetection=false, supportsComplianceWarnings=false, status=UsbPortStatus{connected=true, currentMode=dfp, currentPowerRole=source, currentDataRole=host, supportedRoleCombinations=[source:host, source:device, sink:host, sink:device], contaminantDetectionStatus=2, contaminantProtectionStatus=1, usbDataStatus=unknown, isPowerTransferLimited=false, powerBrickConnectionStatus=unknown, complianceWarnings=, plugState=0, displayPortAltModeInfo=null}, canChangeMode=true, canChangePowerRole=true, canChangeDataRole=true, connectedAtMillis=3977667, lastConnectDurationMillis=0
12-08 15:40:45.395 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:40:45.395 1091 2661 I android.hardware.usb@1.2-service-qti: connected:1 canChangeMode:1 canChagedata:1 canChangePower:1

disconnecting random USB item

12-08 15:40:59.007 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received change@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0
12-08 15:40:59.009 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:40:59.009 1091 2661 I android.hardware.usb@1.2-service-qti: connected:0 canChangeMode:1 canChagedata:0 canChangePower:0
12-08 15:40:59.011 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received change@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0
12-08 15:40:59.011 1091 2661 I android.hardware.usb@1.2-service-qti: uevent recieved for same device default
12-08 15:40:59.011 1515 1970 I UsbPortManager: USB port changed: port=UsbPort{id=port0, supportedModes=dual, audio_acc, supportedContaminantProtectionModes=5, supportsEnableContaminantPresenceProtection=false, supportsEnableContaminantPresenceDetection=false, supportsComplianceWarnings=false, status=UsbPortStatus{connected=false, currentMode=none, currentPowerRole=no-power, currentDataRole=no-data, supportedRoleCombinations=[no-power:no-data], contaminantDetectionStatus=2, contaminantProtectionStatus=1, usbDataStatus=unknown, isPowerTransferLimited=false, powerBrickConnectionStatus=unknown, complianceWarnings=, plugState=0, displayPortAltModeInfo=null}, canChangeMode=true, canChangePowerRole=false, canChangeDataRole=false, connectedAtMillis=0, lastConnectDurationMillis=13792
12-08 15:40:59.012 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:40:59.012 1091 2661 I android.hardware.usb@1.2-service-qti: connected:0 canChangeMode:1 canChagedata:0 canChangePower:0
12-08 15:40:59.012 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received remove@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0/port0-partner
12-08 15:40:59.012 1091 2661 I android.hardware.usb@1.2-service-qti: uevent recieved for same device default
12-08 15:40:59.013 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:40:59.013 1091 2661 I android.hardware.usb@1.2-service-qti: connected:0 canChangeMode:1 canChagedata:0 canChangePower:0
12-08 15:40:59.140 1515 2731 D UsbHostManager: Removed device at /dev/bus/usb/003/001 was already gone
12-08 15:40:59.140 1515 2731 D UsbHostManager: Removed device at /dev/bus/usb/002/001 was already gone

connecting Viture XR Pro glasses on USB (DP Alt Mode)

12-08 15:41:13.295 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received change@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0
12-08 15:41:13.306 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:41:13.307 1091 2661 I android.hardware.usb@1.2-service-qti: connected:1 canChangeMode:1 canChagedata:0 canChangePower:0
12-08 15:41:13.310 1515 1970 I UsbPortManager: USB port changed: port=UsbPort{id=port0, supportedModes=dual, audio_acc, supportedContaminantProtectionModes=5, supportsEnableContaminantPresenceProtection=false, supportsEnableContaminantPresenceDetection=false, supportsComplianceWarnings=false, status=UsbPortStatus{connected=true, currentMode=dfp, currentPowerRole=source, currentDataRole=host, supportedRoleCombinations=[source:host, sink:device], contaminantDetectionStatus=2, contaminantProtectionStatus=1, usbDataStatus=unknown, isPowerTransferLimited=false, powerBrickConnectionStatus=unknown, complianceWarnings=, plugState=0, displayPortAltModeInfo=null}, canChangeMode=true, canChangePowerRole=false, canChangeDataRole=false, connectedAtMillis=4005757, lastConnectDurationMillis=0
12-08 15:41:13.313 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received change@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0
12-08 15:41:13.313 1091 2661 I android.hardware.usb@1.2-service-qti: uevent recieved for same device 1.5A
12-08 15:41:13.315 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:41:13.315 1091 2661 I android.hardware.usb@1.2-service-qti: connected:1 canChangeMode:1 canChagedata:0 canChangePower:0
12-08 15:41:13.316 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received add@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0/port0-partner
12-08 15:41:13.316 1091 2661 I android.hardware.usb@1.2-service-qti: partner added
12-08 15:41:13.316 1091 2661 I android.hardware.usb@1.2-service-qti: uevent recieved for same device 1.5A
12-08 15:41:13.317 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:41:13.317 1091 2661 I android.hardware.usb@1.2-service-qti: connected:1 canChangeMode:1 canChagedata:0 canChangePower:0
12-08 15:41:14.007 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received change@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0
12-08 15:41:14.011 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:41:14.012 1091 2661 I android.hardware.usb@1.2-service-qti: connected:1 canChangeMode:1 canChagedata:1 canChangePower:1
12-08 15:41:14.013 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received change@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0/port0-partner
12-08 15:41:14.013 1091 2661 I android.hardware.usb@1.2-service-qti: uevent recieved for same device usb_power_delivery
12-08 15:41:14.014 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:41:14.014 1515 1970 I UsbPortManager: USB port changed: port=UsbPort{id=port0, supportedModes=dual, audio_acc, supportedContaminantProtectionModes=5, supportsEnableContaminantPresenceProtection=false, supportsEnableContaminantPresenceDetection=false, supportsComplianceWarnings=false, status=UsbPortStatus{connected=true, currentMode=dfp, currentPowerRole=source, currentDataRole=host, supportedRoleCombinations=[source:host, source:device, sink:host, sink:device], contaminantDetectionStatus=2, contaminantProtectionStatus=1, usbDataStatus=unknown, isPowerTransferLimited=false, powerBrickConnectionStatus=unknown, complianceWarnings=, plugState=0, displayPortAltModeInfo=null}, canChangeMode=true, canChangePowerRole=true, canChangeDataRole=true, connectedAtMillis=4005757, lastConnectDurationMillis=0
12-08 15:41:14.014 1091 2661 I android.hardware.usb@1.2-service-qti: connected:1 canChangeMode:1 canChagedata:1 canChangePower:1
12-08 15:41:14.139 1515 2731 D UsbHostManager: Removed device at /dev/bus/usb/003/001 was already gone
12-08 15:41:14.262 1515 2731 D UsbHostManager: Removed device at /dev/bus/usb/002/001 was already gone
12-08 15:41:14.899 2732 2732 W SysUiState: at com.android.systemui.statusbar.CommandQueue$H.handleMessage(go/retraceme d9c8d40f71c30d35cdc42ec92fc00f354f82f77cc7422db0c1d85130467f1b7b:197)
12-08 15:41:15.331 2732 2732 W SysUiState: at com.android.systemui.statusbar.CommandQueue$H.handleMessage(go/retraceme d9c8d40f71c30d35cdc42ec92fc00f354f82f77cc7422db0c1d85130467f1b7b:181)
12-08 15:41:15.343 2732 2732 W SysUiState: at com.android.systemui.statusbar.CommandQueue$H.handleMessage(go/retraceme d9c8d40f71c30d35cdc42ec92fc00f354f82f77cc7422db0c1d85130467f1b7b:200)
12-08 15:41:16.394 1091 2661 I android.hardware.usb@1.2-service-qti: usb interface does not support autosuspend /sys/devices/platform/soc/a600000.ssusb/a600000.dwc3/xhci-hcd.1.auto/usb2/2-1
12-08 15:41:16.401 1091 2661 I android.hardware.usb@1.2-service-qti: usb interface does not support autosuspend /sys/devices/platform/soc/a600000.ssusb/a600000.dwc3/xhci-hcd.1.auto/usb2/2-1
12-08 15:41:16.427 1515 2731 D UsbHostManager: Added device UsbDevice[mName=/dev/bus/usb/002/002,mVendorId=13770,mProductId=4125,mClass=239,mSubclass=2,mProtocol=1,mManufacturerName=VITURE Pro,mProductName=VITURE Pro XR Glasses,mVersion=2.00,mSerialNumberReader=com.android.server.usb.UsbSerialReader@560cf53, mHasAudioPlayback=false, mHasAudioCapture=false, mHasMidi=false, mHasVideoCapture=false, mHasVideoPlayback=false, mConfigurations=[
12-08 15:41:16.541 1515 2731 E UsbAlsaManager: usbDeviceAdded(): cannot find sound card for /dev/bus/usb/002/002
12-08 15:41:16.835 26064 26064 I UsbDeviceAttachedReceiv: handling intent: Intent { act=android.hardware.usb.action.USB_DEVICE_ATTACHED flg=0x11000010 cmp=org.fdroid.fdroid/.nearby.UsbDeviceAttachedReceiver (has extras) }
12-08 15:41:16.946 26035 26035 D a : handleUsbDeviceAttached: usbdev old/new,null,/dev/bus/usb/002/002
12-08 15:41:16.946 26035 26035 D e : findUsbDevice: /dev/bus/usb/002/002

disconnecting Viture XR Pro glasses

12-08 15:41:38.777 1515 2731 D UsbHostManager: Removed device at /dev/bus/usb/002/002: VITURE Pro XR Glasses
12-08 15:41:38.793 1515 1985 I ActivityManager: Start proc 27310:com.hp.android.printservice/u0a384 for broadcast {com.hp.android.printservice/com.hp.android.printservice.usb.ReceiverUSBDeviceDetached}
12-08 15:41:38.807 26035 26035 D a : handleUsbDeviceDetached: usbdev,/dev/bus/usb/002/002
12-08 15:41:38.837 26064 26064 I UsbDeviceDetachedReceiv: handling intent: Intent { act=android.hardware.usb.action.USB_DEVICE_DETACHED flg=0x1000010 cmp=org.fdroid.fdroid/.nearby.UsbDeviceDetachedReceiver (has extras) }
12-08 15:41:38.942 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received change@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0
12-08 15:41:38.945 1515 2731 D UsbHostManager: Removed device at /dev/bus/usb/003/001 was already gone
12-08 15:41:38.945 1515 2731 D UsbHostManager: Removed device at /dev/bus/usb/002/001 was already gone
12-08 15:41:38.945 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:41:38.945 1091 2661 I android.hardware.usb@1.2-service-qti: connected:0 canChangeMode:1 canChagedata:0 canChangePower:0
12-08 15:41:38.945 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received change@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0
12-08 15:41:38.945 1091 2661 I android.hardware.usb@1.2-service-qti: uevent recieved for same device default
12-08 15:41:38.946 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:41:38.946 1091 2661 I android.hardware.usb@1.2-service-qti: connected:0 canChangeMode:1 canChagedata:0 canChangePower:0
12-08 15:41:38.947 1515 1970 I UsbPortManager: USB port changed: port=UsbPort{id=port0, supportedModes=dual, audio_acc, supportedContaminantProtectionModes=5, supportsEnableContaminantPresenceProtection=false, supportsEnableContaminantPresenceDetection=false, supportsComplianceWarnings=false, status=UsbPortStatus{connected=false, currentMode=none, currentPowerRole=no-power, currentDataRole=no-data, supportedRoleCombinations=[no-power:no-data], contaminantDetectionStatus=2, contaminantProtectionStatus=1, usbDataStatus=unknown, isPowerTransferLimited=false, powerBrickConnectionStatus=unknown, complianceWarnings=, plugState=0, displayPortAltModeInfo=null}, canChangeMode=true, canChangePowerRole=false, canChangeDataRole=false, connectedAtMillis=0, lastConnectDurationMillis=25636
12-08 15:41:38.948 1091 2661 I android.hardware.usb@1.2-service-qti: uevent received remove@/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,ucsi/typec/port0/port0-partner
12-08 15:41:38.948 1091 2661 I android.hardware.usb@1.2-service-qti: uevent recieved for same device default
12-08 15:41:38.949 1091 2661 I android.hardware.usb@1.2-service-qti: port0
12-08 15:41:38.949 1091 2661 I android.hardware.usb@1.2-service-qti: connected:0 canChangeMode:1 canChagedata:0 canChangePower:0

END (logcat | grep usb)

Other logs where I used
logcat | grep -i “viture”

disconnecting Viture XR Pro glasses

12-08 15:45:59.187 1515 2731 D UsbHostManager: Removed device at /dev/bus/usb/002/002: VITURE Pro XR Glasses
12-08 15:45:59.231 1515 1973 I DisplayDeviceRepository: Display device removed: DisplayDeviceInfo{“HDMI Screen”: uniqueId=“local:4615860159156968452”, 1920 x 1080, modeId 24, renderFrameRate 60.000004, defaultModeId 24, supportedModes [{id=24, width=1920, height=1080, fps=60.000004, alternativeRefreshRates=[90.0, 120.00001], supportedHdrTypes=[2, 3]}, {id=25, width=1920, height=1080, fps=120.00001, alternativeRefreshRates=[60.000004, 90.0], supportedHdrTypes=[2, 3]}, {id=26, width=1920, height=1080, fps=90.0, alternativeRefreshRates=[60.000004, 120.00001], supportedHdrTypes=[2, 3]}], colorMode 0, supportedColorModes [0], hdrCapabilities HdrCapabilities{mSupportedHdrTypes=[2, 3], mMaxLuminance=500.0, mMaxAverageLuminance=250.0, mMinLuminance=0.0}, allmSupported false, gameContentTypeSupported false, density 213, 304.8 x 274.32 dpi, appVsyncOff 1000000, presDeadline 16666666, cutout DisplayCutout{insets=Rect(0, 110 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(930, 0 - 990, 110), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1920 displayHeight=1080 physicalDisplayWidth=1920 physicalDisplayHeight=1080 density={3.0} cutoutSpec={M -30,0 L -30,110 L 30,110 L 30,0 Z} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, touch EXTERNAL, rotation 0, type EXTERNAL, address {port=4, model=0x400ed45bdf6ddc}, deviceProductInfo DeviceProductInfo{name=VITURE, manufacturerPnpId=CVT, productId=12594, modelYear=null, manufactureDate=ManufactureDate{week=32, year=2023}, connectionToSinkType=1}, state ON, committedState ON, frameRateOverride , brightnessMinimum 0.0, brightnessMaximum 1.0, brightnessDefault 0.5, hdrSdrRatio NaN, roundedCorners RoundedCorners{[RoundedCorner{position=TopLeft, radius=60, center=Point(60, 60)}, RoundedCorner{position=TopRight, radius=60, center=Point(1860, 60)}, RoundedCorner{position=BottomRight, radius=60, center=Point(1860, 1020)}, RoundedCorner{position=BottomLeft, radius=60, center=Point(60, 1020)}]}, FLAG_ALLOWED_TO_BE_DEFAULT_DISPLAY, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_PRESENTATION, FLAG_TRUSTED, installOrientation 0, displayShape DisplayShape{ spec=729782573 displayWidth=1920 displayHeight=1080 physicalPixelDisplaySizeRatio=1.0 rotation=0 offsetX=0 offsetY=0 scale=1.0}}

connecting Viture XR Pro glasses

12-08 15:46:10.852 1515 1973 I DisplayDeviceRepository: Display device added: DisplayDeviceInfo{“HDMI Screen”: uniqueId=“local:4615860159156968452”, 1920 x 1080, modeId 27, renderFrameRate 60.000004, defaultModeId 27, supportedModes [{id=27, width=1920, height=1080, fps=60.000004, alternativeRefreshRates=[90.0, 120.00001], supportedHdrTypes=[2, 3]}, {id=28, width=1920, height=1080, fps=120.00001, alternativeRefreshRates=[60.000004, 90.0], supportedHdrTypes=[2, 3]}, {id=29, width=1920, height=1080, fps=90.0, alternativeRefreshRates=[60.000004, 120.00001], supportedHdrTypes=[2, 3]}], colorMode 0, supportedColorModes [0], hdrCapabilities HdrCapabilities{mSupportedHdrTypes=[2, 3], mMaxLuminance=500.0, mMaxAverageLuminance=250.0, mMinLuminance=0.0}, allmSupported false, gameContentTypeSupported false, density 213, 304.8 x 274.32 dpi, appVsyncOff 1000000, presDeadline 16666666, cutout DisplayCutout{insets=Rect(0, 110 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(930, 0 - 990, 110), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1920 displayHeight=1080 physicalDisplayWidth=1920 physicalDisplayHeight=1080 density={3.0} cutoutSpec={M -30,0 L -30,110 L 30,110 L 30,0 Z} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, touch EXTERNAL, rotation 0, type EXTERNAL, address {port=4, model=0x400ed45bdf6ddc}, deviceProductInfo DeviceProductInfo{name=VITURE, manufacturerPnpId=CVT, productId=12594, modelYear=null, manufactureDate=ManufactureDate{week=32, year=2023}, connectionToSinkType=1}, state UNKNOWN, committedState UNKNOWN, frameRateOverride , brightnessMinimum 0.0, brightnessMaximum 1.0, brightnessDefault 0.5, hdrSdrRatio NaN, roundedCorners RoundedCorners{[RoundedCorner{position=TopLeft, radius=60, center=Point(60, 60)}, RoundedCorner{position=TopRight, radius=60, center=Point(1860, 60)}, RoundedCorner{position=BottomRight, radius=60, center=Point(1860, 1020)}, RoundedCorner{position=BottomLeft, radius=60, center=Point(60, 1020)}]}, FLAG_ALLOWED_TO_BE_DEFAULT_DISPLAY, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_PRESENTATION, FLAG_TRUSTED, installOrientation 0, displayShape DisplayShape{ spec=729782573 displayWidth=1920 displayHeight=1080 physicalPixelDisplaySizeRatio=1.0 rotation=0 offsetX=0 offsetY=0 scale=1.0}}
12-08 15:46:10.858 1515 1973 I LogicalDisplayMapper: Adding new display: 10: DisplayInfo{“HDMI Screen”, displayId 10, displayGroupId 0, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_PRESENTATION, FLAG_TRUSTED, real 1920 x 1080, largest app 1920 x 1080, smallest app 1920 x 1080, appVsyncOff 1000000, presDeadline 16666666, mode 2760.000004, defaultMode 27, modes [{id=27, width=1920, height=1080, fps=60.000004, alternativeRefreshRates=[90.0, 120.00001], supportedHdrTypes=[2, 3]}, {id=28, width=1920, height=1080, fps=120.00001, alternativeRefreshRates=[60.000004, 90.0], supportedHdrTypes=[2, 3]}, {id=29, width=1920, height=1080, fps=90.0, alternativeRefreshRates=[60.000004, 120.00001], supportedHdrTypes=[2, 3]}], hdrCapabilities HdrCapabilities{mSupportedHdrTypes=[2, 3], mMaxLuminance=500.0, mMaxAverageLuminance=250.0, mMinLuminance=0.0}, userDisabledHdrTypes , minimalPostProcessingSupported false, rotation 0, state UNKNOWN, committedState UNKNOWN, type EXTERNAL, uniqueId “local:4615860159156968452”, app 1920 x 1080, density 213 (304.8 x 274.32) dpi, layerStack 10, colorMode 0, supportedColorModes [0], address {port=4, model=0x400ed45bdf6ddc}, deviceProductInfo DeviceProductInfo{name=VITURE, manufacturerPnpId=CVT, productId=12594, modelYear=null, manufactureDate=ManufactureDate{week=32, year=2023}, connectionToSinkType=1}, removeMode 0, refreshRateOverride 0.0, brightnessMinimum 0.0, brightnessMaximum 1.0, brightnessDefault 0.5, installOrientation ROTATION_0, layoutLimitedRefreshRate null, hdrSdrRatio not_available, thermalRefreshRateThrottling {}, thermalBrightnessThrottlingDataId default}
12-08 15:46:10.918 1515 1973 I DisplayDeviceRepository: Display device changed: DisplayDeviceInfo{“HDMI Screen”: uniqueId=“local:4615860159156968452”, 1920 x 1080, modeId 27, renderFrameRate 60.000004, defaultModeId 27, supportedModes [{id=27, width=1920, height=1080, fps=60.000004, alternativeRefreshRates=[90.0, 120.00001], supportedHdrTypes=[2, 3]}, {id=28, width=1920, height=1080, fps=120.00001, alternativeRefreshRates=[60.000004, 90.0], supportedHdrTypes=[2, 3]}, {id=29, width=1920, height=1080, fps=90.0, alternativeRefreshRates=[60.000004, 120.00001], supportedHdrTypes=[2, 3]}], colorMode 0, supportedColorModes [0], hdrCapabilities HdrCapabilities{mSupportedHdrTypes=[2, 3], mMaxLuminance=500.0, mMaxAverageLuminance=250.0, mMinLuminance=0.0}, allmSupported false, gameContentTypeSupported false, density 213, 304.8 x 274.32 dpi, appVsyncOff 1000000, presDeadline 16666666, cutout DisplayCutout{insets=Rect(0, 110 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(930, 0 - 990, 110), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1920 displayHeight=1080 physicalDisplayWidth=1920 physicalDisplayHeight=1080 density={3.0} cutoutSpec={M -30,0 L -30,110 L 30,110 L 30,0 Z} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, touch EXTERNAL, rotation 0, type EXTERNAL, address {port=4, model=0x400ed45bdf6ddc}, deviceProductInfo DeviceProductInfo{name=VITURE, manufacturerPnpId=CVT, productId=12594, modelYear=null, manufactureDate=ManufactureDate{week=32, year=2023}, connectionToSinkType=1}, state ON, committedState ON, frameRateOverride , brightnessMinimum 0.0, brightnessMaximum 1.0, brightnessDefault 0.5, hdrSdrRatio NaN, roundedCorners RoundedCorners{[RoundedCorner{position=TopLeft, radius=60, center=Point(60, 60)}, RoundedCorner{position=TopRight, radius=60, center=Point(1860, 60)}, RoundedCorner{position=BottomRight, radius=60, center=Point(1860, 1020)}, RoundedCorner{position=BottomLeft, radius=60, center=Point(60, 1020)}]}, FLAG_ALLOWED_TO_BE_DEFAULT_DISPLAY, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_PRESENTATION, FLAG_TRUSTED, installOrientation 0, displayShape DisplayShape{ spec=729782573 displayWidth=1920 displayHeight=1080 physicalPixelDisplaySizeRatio=1.0 rotation=0 offsetX=0 offsetY=0 scale=1.0}}
12-08 15:46:11.073 1515 1515 V MediaRouter: Selecting route: RouteInfo{ name=External Device, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=Display id 10: DisplayInfo{“HDMI Screen”, displayId 10, displayGroupId 0, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_PRESENTATION, FLAG_TRUSTED, real 1920 x 1080, largest app 1920 x 1856, smallest app 970 x 906, appVsyncOff 1000000, presDeadline 16666666, mode 2760.000004, defaultMode 27, modes [{id=27, width=1920, height=1080, fps=60.000004, alternativeRefreshRates=[90.0, 120.00001], supportedHdrTypes=[2, 3]}, {id=28, width=1920, height=1080, fps=120.00001, alternativeRefreshRates=[60.000004, 90.0], supportedHdrTypes=[2, 3]}, {id=29, width=1920, height=1080, fps=90.0, alternativeRefreshRates=[60.000004, 120.00001], supportedHdrTypes=[2, 3]}], hdrCapabilities HdrCapabilities{mSupportedHdrTypes=[2, 3], mMaxLuminance=500.0, mMaxAverageLuminance=250.0, mMinLuminance=0.0}, userDisabledHdrTypes , minimalPostProcessingSupported false, rotation 0, state ON, committedState ON, type EXTERNAL, uniqueId “local:4615860159156968452”, app 1920 x 906, density 213 (304.8 x 274.32) dpi, layerStack 10, colorMode 0, supportedColorModes [0], address {port=4, model=0x400ed45bdf6ddc}, deviceProductInfo DeviceProductInfo{name=VITURE, manufacturerPnpId=CVT, productId=12594, modelYear=null, manufactureDate=ManufactureDate{week=32, year=2023}, connectionToSinkType=1}, removeMode 0, refreshRateOverride 60.000004, brightnessMinimum 0.0, brightnessMaximum 1.0, brightnessDefault 0.5, installOrientation ROTATION_0, layoutLimitedRefreshRate null, hdrSdrRatio not_available, thermalRefreshRateThrottling {}, thermalBrightnessThrottlingDataId default}, DisplayMetrics{density=1.3312501, width=1920, height=906, scaledDensity=1.3312501, xdpi=304.8, ydpi=274.32}, isValid=true }
12-08 15:46:12.742 1515 2731 D UsbHostManager: USB device attached: vidpid 35ca:101d mfg/product/ver/serial VITURE Pro/VITURE Pro XR Glasses/2.00/2055368B4333 hasAudio/HID/Storage: false/true/false
12-08 15:46:12.746 1515 2731 D UsbHostManager: Added device UsbDevice[mName=/dev/bus/usb/002/002,mVendorId=13770,mProductId=4125,mClass=239,mSubclass=2,mProtocol=1,mManufacturerName=VITURE Pro,mProductName=VITURE Pro XR Glasses,mVersion=2.00,mSerialNumberReader=com.android.server.usb.UsbSerialReader@d7abae0, mHasAudioPlayback=false, mHasAudioCapture=false, mHasMidi=false, mHasVideoCapture=false, mHasVideoPlayback=false, mConfigurations=[
12-08 15:46:12.746 1515 2731 D UsbHostManager: UsbInterface[mId=2,mAlternateSetting=0,mName=VITURE Pro,mClass=2,mSubclass=2,mProtocol=1,mEndpoints=[
12-08 15:46:12.746 1515 2731 D UsbHostManager: UsbInterface[mId=3,mAlternateSetting=0,mName=VITURE Pro,mClass=10,mSubclass=2,mProtocol=0,mEndpoints=[

From these logs, it appears that the Viture XR Pro glasses are being recognized as a USB and DisplayPort Alt Mode device, but they are not successfully activating as an external display in some scenarios.

My key observations:

USB Connection Established:

  •    The glasses are detected with their vendor and product information.
    
  •    The logs indicate successful USB attachment and detection (UsbDevice[mName=/dev/bus/usb/002/002,...]).
    

Display Device Added and Removed:

  •    The device is registered as an external display (DisplayDeviceRepository: Display device added: DisplayDeviceInfo{"HDMI Screen":...).
    
  •    The display is identified with supported modes (1920x1080 at various refresh rates) and HDR capabilities.
    
  •    However, the state and committedState attributes in the log occasionally show as UNKNOWN or ON, suggesting incomplete activation.
    

Audio Not Found:
The UsbAlsaManager logs indicate no sound card is found for the glasses: UsbAlsaManager: usbDeviceAdded(): cannot find sound card for /dev/bus/usb/002/002
This might not directly affect video output but indicates incomplete device recognition.

No Explicit Errors for DP Alt Mode:
The logs do not explicitly confirm whether DP Alt Mode is successfully negotiated or fails.

Potential Power/Capability Mismatch:
The logs indicate usbDataStatus=unknown and displayPortAltModeInfo=null, suggesting potential issues with power delivery or DP Alt Mode initialization.

Potential causes:

1. Power Delivery Insufficiency
The glasses may require more power than the USB-C port can provide, especially during DP Alt Mode activation.

2. DP Alt Mode Negotiation Fails
The displayPortAltModeInfo=null in the logs suggests that the DisplayPort Alt Mode negotiation is not completing successfully.

3. Incorrect USB Role Assignment
The logs show the current roles as: currentPowerRole=source, currentDataRole=host
If the roles are incorrectly negotiated, DP Alt Mode may not activate.

1 Like

Thank you, I already have a ticket open and sent them the link to your post.

By the way, I have the official Viture power dongle, with which I can feed additional power to the glasses, but this doesn’t fix the issue. I also have the Viture Powerbank and this also doesn’t help. This must be something with the phone OS

Yea i know, tried them as well with the same result (not working). But i have a StarTech (HB31C3A1CDPPD3) dock which does it’s own negotiation or something because that thing works fine. But it’s quite expensive (70€+).
The Pro Dock thingy for the switch and HDMI did at least work in the sense that rebooting with everything plugged in made the phone charge and the glasses display the desktop. But that’s not a workable solution for me.
-------- Update--------
I’ve read through your logs and tried to see what i can test with the working dock.

  1. If i have it plugged into usb-c power and connect it, it works 100% of the time.
  2. If i do not plug in the external power suply and connect it to the phone, nothing happens, glasses don’t even darken.
  3. If i have the power plugged in, connect and then unplug the power, the glasses completely shut off, like in test #2.

Not sure if it’s a power issue or if the dock’s ICs don’t power up without power. I would say the later because the phone does not react at all.

Just got an update from the support and they said that they appreciate the details but don’t have the capacity to look into this further.

Please keep your device up to date and watch the release notes for eventual fixes in future updates, indeed at the moment the product team cannot look into this more.

So basically it’s a dead end for now.
I’m glad i have the semi workable solution with the dock (with access to power) but i was hoping to get this issue fixed :confused:

It was known that you need a high quality cable that supports 4k. Most cheap cables cause problems when using Display desktop mode. I figured another user had this very problem in this thread. He found the user just needed a better cable for it to work. Hope it helps you with this issue with AR Glasses. I’m actually thinking about getting a pair myself. Just never had the funds this year for it.

Sadly no, the glasses come with their own cable. Different issue.

1 Like

Hi there, just to mention that Xreal owners are having similar issues. The thread here may be helpful… FP5 USB-C DisplayPort Alt Mode mirrors desktop but not home screen

An update. I just got an x-real Air and I have no trouble on any cables I’ve tested. Not the 240w not the cable creations, not even the one it came with. If the type-c port is still your issue on these you may have a defective unit. Try switching Cables is still my suggestion. Hope this helps.