22 days later

Hi jakaskerl,

thanks for the information, but to me it is still not fully clear when and how to force USB2 communication.

Since depthai v2.22.0.0, using usb2Mode=True seems to be deprecated (also see this issue). From Erik's answer, I thought that using maxUsbSpeed=dai.UsbSpeed.HIGH is the correct way now to force USB2 communication (also see Troubleshooting).

In the FAQ still the "old" (?) approach is described to force USB2 communication.

Could you explain more in depth what exactly is the difference between the two approaches, e.g. limit the speed of the USB connection and boot the device with usb2 firmware. What are possible advantages when booting with usb2 firmware if connected to a USB2-only host (e.g. Raspberry Pi Zero 2 W)?

Thanks!

    maxsitt In the FAQ still the "old" (?) approach is described to force USB2 communication.

    Thanks for noticing, we'll change that one as well.

    maxsitt Could you explain more in depth what exactly is the difference between the two approaches, e.g. limit the speed of the USB connection and boot the device with usb2 firmware. What are possible advantages when booting with usb2 firmware if connected to a USB2-only host (e.g. Raspberry Pi Zero 2 W)?

    Perhaps @erik is able to shed some more light on the matter.

    Thanks,
    Jaka

    • erik replied to this.

      Hi jakaskerl ,
      If you have USB2 host, then you should force USB2 mode in depthai as well. Afaik there were some issues with USB stack in RVC2, which caused problems when having USB3 mode on USB2 link.

        Hi erik,

        So with "force USB2 mode" you mean setting maxUsbSpeed=dai.UsbSpeed.HIGH?
        usb2Mode=True does not have any advantages over it or is deprecated?

        Thanks!

          Hi maxsitt ,
          That's correct. usb2Mode has been replaced by maxUsbSpeed, otherwise it's the same setting (forcing USB2 mode).

          10 months later

          Hello @erik
          I am not sure if this is the correct place to ask this, but I think this can be a follow-up question in this post.

          I have a problem with USB connection. I have OAK-D camera with USB3.0. My monitor has "plug-in" USB ports including 2 USB Ports indicating they have SS , but not colored blue. Although I am trying with dai.Device(pipeline, MaxUsbSpeed=dai.UsbSpeed.SUPER_PLUS) as device: in

          \depthai-python\examples\ColorCamera\rgb_preview.py

          I still get

          Usb speed: HIGH

          Afaik, if it is written next to the port that it is SS, I should be able to use its SuperSpeed facility, so it is basically 3.0. But why am I getting USB 2.0 speed from that port? My OS: Windows 11

          • By using Get-WmiObject -Query "SELECT * FROM Win32_USBHub" in powershell it gives:

          __GENUS : 2
          __CLASS : Win32_USBHub
          __SUPERCLASS : CIM_USBHub
          __DYNASTY : CIM_ManagedSystemElement
          __RELPATH : Win32_USBHub.DeviceID="USB\\VID_0BDA&PID_0411\\6&5C0E972&0&2"
          __PROPERTY_COUNT : 28
          __DERIVATION : {CIM_USBHub, CIM_USBDevice, CIM_LogicalDevice, CIM_LogicalElement...}
          __SERVER : PF4VK7GK
          __NAMESPACE : root\cimv2
          __PATH : \\PF4VK7GK\root\cimv2:Win32_USBHub.DeviceID="USB\\VID_0BDA&PID_0411\\6&5C0E972&0&2"
          Availability :
          Caption : Generic SuperSpeed USB Hub
          ClassCode :
          ConfigManagerErrorCode : 0
          ConfigManagerUserConfig : False
          CreationClassName : Win32_USBHub
          CurrentAlternateSettings :
          CurrentConfigValue :
          Description : Generic SuperSpeed USB Hub
          DeviceID : USB\VID_0BDA&PID_0411\6&5C0E972&0&2
          ErrorCleared :
          ErrorDescription :
          GangSwitched :
          InstallDate :
          LastErrorCode :
          Name : Generic SuperSpeed USB Hub
          NumberOfConfigs :
          NumberOfPorts :
          PNPDeviceID : USB\VID_0BDA&PID_0411\6&5C0E972&0&2
          PowerManagementCapabilities :
          PowerManagementSupported :
          ProtocolCode :
          Status : OK
          StatusInfo :
          SubclassCode :
          SystemCreationClassName : Win32_ComputerSystem
          SystemName : PF4VK7GK
          USBVersion :
          PSComputerName : PF4VK7GK

          How to use USB 3.0 facility from that port so that I have faster video processing with OAK-D?

          Thanks in advance for your help!

          Bests
          Cem

          • Uce replied to this.

            Uce

            I just connected the cable of OAK-D to a different, blue colored and SS port and run USB Device Viewer.

            It says that Device Bus Speed: High, which is the same with the every ports I can use around me. So this might be realted to the cable of OAK-D which colored Blue but not operating at SuperSpeed. What do you think? @erik

            Hi @Uce
            Device that is not booted (id-03e7:2485) will act as an USB2 device. The first port you tested is probably USB2 while the second could be USB3 (SUPER speed) but you haven't booted the device to check.

            Thoughts?

              Thank you for your reply jakaskerl

              • How to boot the OAK-D device? Is it simply power off/on? If so, I did power off/on but the result are the same, it acts as an USB2 device.

              • This video shows that I've connected the USB cable of the device to the blue colored SS USB3.0 port and yet it is shown as no USB3.0 protocols are supported as can be seen in here:

                usb30.mp4
                4MB

              Any comments, opinions are truly appreciated.

              Thanks
              Cem

              Hi jakaskerl

              everytime I use dai.Device(pipeline), so it boots for sure.

              When I run bandwidth test, I've got 337 mbps Downlink and 241 mbps Uplink.

              That certainly means there is no USB3.0 connection here. Since I have used different USB3.0 ports to connect with the device, I think the cable or even device might not be acting as USB3.0 for some reason. So I will go with changing the cables.

              A quick question is, can I also use male-male C type cable to connect the device to the host computer? Would this also provide a USB3.0 connection?

              Another question is, do I need to have Y adapter if my host computer does not provide 1A current for the device so it is acting as USB2.0? Could this be the case?

              Thanks
              Uce

                Uce A quick question is, can I also use male-male C type cable to connect the device to the host computer? Would this also provide a USB3.0 connection?

                Yes.

                Uce Another question is, do I need to have Y adapter if my host computer does not provide 1A current for the device so it is acting as USB2.0? Could this be the case?

                You do need Y adapter if the current does not reach 2A, but it shouldn't cause USB2 mode.

                Thanks,
                Jaka

                • Uce likes this.