USB 3.0 Camera

  • Hi,
    quick question: I am trying to connect an additional USB-3 camera (Basler dart) to the flight deck. The camera has a usb3.0 micro-b port. I connected it with two high quality USB3.0 cables as follows:
    (micro-b (camera) --- STD-A male) -> (STD-A female --- micro-b (voxl))

    The camera was detected properly and worked, but lsusb -t showed it was only connected with usb2.0 (480M) and unfortunately the camera driver pylon timed out a lot.

    Now I bought a micro-a male --- micro-b male cable similar to the one you linked in your docs to get super speed capabilities but now the voxl cannot detect the camera at all. dmesg doesn't show any output. I read that the port can be in host mode when using micro-a plug and in client mode when using micro-b. Why does it work when using micro-b but not at all when using micro-a?

    Did you try the port with similar periphery? Are there additional pitfalls? Or did I just bought 2 bad cables?

    Thanks a lot!

  • Dev Team

    Hi @rapit , I'm digging into this now and will get bak to you with some clarity.

  • Dev Team

    Because the USB3.0 SS pins on the VOXL (Snapdragon 821) cannot support TX/RX swapping, they were set to peripheral mode since the 821 is used mainly in phones and peripheral mode is way more commonly used in a phone configuration.

    In order for systems to use the standard micro-b to type A female OTG cables, they need to do TX/RX swapping.

    Since VOXL can't do this, it needs to use a non-standard pinout as its default configuration is peripheral mode in order to get the SS.

    I updated the VOXL datasheet to be more clear, but to utilize host with 3.0 SS, a custom cable like Amphenol RUB30-0075 is needed, which is pretty unique and not easy to find, and is a bit bulky. We have a handful of these available.

  • Hi Travis,

    thanks a lot for your effort!

    I am not sure if I got it right.
    @modaltb said in USB 3.0 Camera:

    In order for systems to use the standard micro-b to type A female OTG cables, they need to do TX/RX swapping.

    I thought this was exactly the difference between the standard OTG cables, which I used before and my second approach with the micro usb type a cable (which also seems to be quite unique).

    Anyway , so the special thing about the Amphenol RUB30-0075 you mentioned are swapped TX/RX ? I couldn't find anything on that cable, do you have a datasheet / pinout or any tip where one can buy it?

    If not, any chance I could purchase one from you directly?

    Thank you!

  • Dev Team

    Hi @rapit ,

    Sorry for the delay, I posted a pinout of this cable here. Mainly, the difference is SSTX and SSRX are flipped for reasons discussed above.

    I need to get a picture of the cable we have online (MCBL-00019) so you can see if it will work for you and then we can post it to our store, but it's somewhat large and bulky and not very easy to use with most small to medium vehicles.

  • Thank you so much for the graphic and the table! I will see what I can do to rearrange an existing cable. Even "small" cables are hard to fit into the voxl mounted on the flight deck, so it is probably easier with a custom cable than with a "large and bulky" one.

  • I tried it with swapped SSRX/TX as you posted in the pinout graphic but unfortunately it is still detected as usb2 device. Any other thoughts? Do I have to adjust some config or should it work out of the box after swapping? Maybe the cable quality or my wiring skills are not good enough, I will try it again with another cable.

  • Dev Team

    Hi @rapit ,

    That should do it, but let me get a test going on Monday with the 'big' cable we have with and make sure there was no SW change needed.


  • Dev Team

    Hi @rapit ,

    OK we validated that a USB3 device can show up, here's a "guide", but there's no new info really, just an example:


  • Thank you Travis!

    I made another cable today and it was recognized as usb3 device. I guess the quality of the first cable was too bad in the first place or I did a bad job switching the channels.

    However, until now I did not manage to create a robust connection. The driver behaves wierd and especially in the docker container I was not able to use the bandwidth. This is probably usb-driver or device related so I will try to play with the kernel parameters.

    Anyhow, in theory it now works, so thanks a lot! (Also for the writeup, probably others can benefit from that.)

Log in to reply