Theta V camera is not detected in usb webcam mode

Hello,
I’m trying to use Theta V (360 degree) camera along with Jetson Xavier through USB to get video stream.
Camera forum says that it uses uvc 1.5, but not sure whether Jetson’s kernel is tweaked to support uvc 1.5 or not and if not how to modify it to support uvc 1.5 devices as well ?
It can send commands to camera through libptp2 (ptpcam commands), but not showing up in the ‘/dev/video*’ tree.
Any help or guidance would be appreciated.

Thank you,
Amey Hande

hello adh327,

usb-camera should be plug-and-play device, there might be device recognize failure if no video nodes shows-up.
could you please boot into ubuntu desktop, plug-in the usb-camera, and sharing the kernel message to us. thanks

$ dmesg

Hello Jerry Chang,
Thank you for your response.
As per your instructions I have booted into ‘Ubuntu’ desktop and here’s the output of ‘dmesg’ after plugging in the usb camera.

...
[ 4588.945611] tegradc 15200000.nvdisplay: unblank
[ 4588.945625] tegradc 15210000.nvdisplay: blank - powerdown
[ 4588.945632] tegradc 15220000.nvdisplay: blank - powerdown
[ 4619.880546] usb 1-4.4: USB disconnect, device number 11
[ 4624.724238] usb 1-4.4: new high-speed USB device number 12 using tegra-xusb
[ 4624.749758] usb 1-4.4: New USB device found, idVendor=05ca, idProduct=0368
[ 4624.749769] usb 1-4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4624.749774] usb 1-4.4: Product: RICOH THETA V
[ 4624.749777] usb 1-4.4: Manufacturer: Ricoh Company, Ltd.
[ 4624.749780] usb 1-4.4: SerialNumber: 00113816
[ 4626.792600] usb 1-4.4: USB disconnect, device number 12
[ 4627.076136] usb 1-4.4: new high-speed USB device number 13 using tegra-xusb
[ 4627.099137] usb 1-4.4: New USB device found, idVendor=05ca, idProduct=2712
[ 4627.099149] usb 1-4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4627.099153] usb 1-4.4: Product: RICOH THETA V
[ 4627.099193] usb 1-4.4: Manufacturer: Ricoh Company, Ltd.
[ 4627.099197] usb 1-4.4: SerialNumber: 00113816
[ 4627.102957] uvcvideo: Found UVC 1.50 device RICOH THETA V (05ca:2712)
[ 4627.102989] uvcvideo: No streaming interface found for terminal 3.
[ 4627.103007] uvcvideo 1-4.4:1.1: Entity type for entity Processing 2 was not initialized!
[ 4627.103267] uvcvideo 1-4.4:1.1: Entity type for entity Camera 1 was not initialized!
[ 4627.104394] input: RICOH THETA V as /devices/3610000.xhci/usb1/1-4/1-4.4/1-4.4:1.1/input/input10
[ 4654.539841] usb 2-4.2: USB disconnect, device number 3

and here’s the output of USB Descriptor which might be helpful in narrowing down the issue,

ubuntu@jetson-0423018055170:~$ lsusb -vd 05ca:2712

Bus 001 Device 013: ID 05ca:2712 Ricoh Co., Ltd 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x05ca Ricoh Co., Ltd
  idProduct          0x2712 
  bcdDevice            1.00
  iManufacturer           1 Ricoh Company, Ltd.
  iProduct                2 RICOH THETA V
  iSerial                 3 00113816
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          432
    bNumInterfaces          5
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass         6 Imaging
      bInterfaceSubClass      1 Still Image Capture
      bInterfaceProtocol      1 Picture Transfer Protocol (PIMA 15470)
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x001c  1x 28 bytes
        bInterval               6
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         1
      bInterfaceCount         2
      bFunctionClass         14 Video
      bFunctionSubClass       3 Video Interface Collection
      bFunctionProtocol       0 
      iFunction               8 RICOH THETA V
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      1 Video Control
      bInterfaceProtocol      1 
      iInterface              8 RICOH THETA V
      VideoControl Interface Descriptor:
        bLength                13
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdUVC               1.50
        wTotalLength           53
        dwClockFrequency        0.001000MHz
        bInCollection           1
        baInterfaceNr( 0)       2
      VideoControl Interface Descriptor:
        bLength                18
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0201 Camera Sensor
        bAssocTerminal          0
        iTerminal               0 
        wObjectiveFocalLengthMin      0
        wObjectiveFocalLengthMax      0
        wOcularFocalLength            0
        bControlSize                  3
        bmControls           0x00000006
          Auto-Exposure Mode
          Auto-Exposure Priority
      VideoControl Interface Descriptor:
        bLength                13
        bDescriptorType        36
        bDescriptorSubtype      5 (PROCESSING_UNIT)
        bUnitID                 2
        bSourceID               1
        wMaxMultiplier      16384
        bControlSize            3
        bmControls     0x00000000
        iProcessing             0 
        bmVideoStandards     0x 0
      VideoControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             3
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               2
        iTerminal               0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               8
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      1 
      iInterface              9 Video Streaming
      VideoStreaming Interface Descriptor:
        bLength                            14
        bDescriptorType                    36
        bDescriptorSubtype                  1 (INPUT_HEADER)
        bNumFormats                         1
        wTotalLength                      168
        bEndPointAddress                  132
        bmInfo                              0
        bTerminalLink                       3
        bStillCaptureMethod                 0
        bTriggerSupport                     0
        bTriggerUsage                       0
        bControlSize                        1
        bmaControls( 0)                    52
      VideoStreaming Interface Descriptor:
        bLength                            52
        bDescriptorType                    36
        bDescriptorSubtype                 19         Invalid desc subtype: 01 02 01 04 00 76 00 00 02 cc 03 00 00 00 00 00 00 cc 03 00 00 00 00 00 00 cc 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      VideoStreaming Interface Descriptor:
        bLength                            48
        bDescriptorType                    36
        bDescriptorSubtype                 20         Invalid desc subtype: 01 00 0f 80 07 01 00 01 00 00 42 33 00 00 01 00 07 00 25 00 00 00 00 00 00 00 00 00 c0 27 09 00 00 1c 4e 0e 63 17 05 00 01 63 17 05 00
      VideoStreaming Interface Descriptor:
        bLength                            48
        bDescriptorType                    36
        bDescriptorSubtype                 20         Invalid desc subtype: 02 80 07 c0 03 01 00 01 00 00 42 28 00 00 01 00 07 00 25 00 00 00 00 00 00 00 00 00 c0 27 09 00 00 2d 31 01 63 17 05 00 01 63 17 05 00
      VideoStreaming Interface Descriptor:
        bLength                             6
        bDescriptorType                    36
        bDescriptorSubtype                 13 (COLORFORMAT)
        bColorPrimaries                     1 (BT.709,sRGB)
        bTransferCharacteristics            1 (BT.709)
        bMatrixCoefficients                 4 (SMPTE 170M (BT.601))
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      1 
      iInterface              9 Video Streaming
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x1400  3x 1024 bytes
        bInterval               1
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         3
      bInterfaceCount         2
      bFunctionClass          1 Audio
      bFunctionSubClass       0 
      bFunctionProtocol      32 
      iFunction               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol     32 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               2.00
        bCategory               3
        wTotalLength           37
        bmControl            0x00
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID                6
        bmAttributes         0x01 Internal fixed Clock 
        bmControls           0x01
          Clock Frequency Control (read-only)
        bAssocTerminal          0
        iClockSource            0 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             2
        wTerminalType      0x0201 Microphone
        bAssocTerminal          0
        bCSourceID              6
        bNrChannels             1
        bmChannelConfig   0x00000001
          Front Left (FL)
        bmControls    0x0003
          Copy Protect Control (read/write)
        iChannelNames           0 
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             4
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               2
        bCSourceID              6
        bmControls         0x0003
          Copy Protect Control (read/write)
        iTerminal               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           4
        bmControls           0x00
        bFormatType             1
        bmFormats         0x00000001
          PCM
        bNrChannels             1
        bmChannelConfig   0x00000001
          Front Left (FL)
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            2
        bBitResolution         16
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x03ff  1x 1023 bytes
        bInterval               4
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay              0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)

You might find this link on the Theta Developer forum useful,
https://developers.theta360.com/en/forums/viewtopic.php?f=4&t=2167.

Thank you,
Amey Hande

hello adh327,

RICOH THETA V isn’t a typical USB-camera.
please refer to https://theta360.com/en/howto-livestreaming/, there’s necessary drivers for enabling live stream even working on the Windows10 environment.
suppose you should dig into developer forum to check what’s additional drivers to adapt for L4T environment.
thanks

The driver is out and works great with the RICOH THETA V and Z1. It works on Jetson Nano and Jetson Xavier and is the recommended platform to develop for the RICOH THETA. Have tested it with DetectNet on the THETA.

OpenCV with Python modules work great with JetPack 4.4.

Overview of software components is here:

HowTo videos (using Jetson) and code is available below.

https://theta360.guide/special/linuxstreaming/

2 Likes

Extra information added to https://theta360.guide/special/linuxstreaming/ covering key functionality new info around integrating live streaming with the USB API - Switch Between Still Image and Live Streaming Modes, and Wake Camera From Sleep

1 Like

Thanks for bringing this up. One of the most significant additions for people using the Jetson and RICOH THETA for robotics or surveillance is the addition of an example of turning the camera on from a power off state. This is done by power cycling the USB ports of the Jetson using information gleamed from this forum.

The document also includes examples of how to switch the RICOH THETA resolution from 4K to 2K. The Nano was having problems with DetectNet at 4K resolution.

People using Xavier should look at the FAQ for gstreamer settings.

BTW, people in the community seem to be using the RICOH THETA with ROS. I’m looking for the cheapest possible ROS robotic kit that can carry the THETA. Most of the kits I’ve seen are in the $1K to $2K range. As this is for a demo to show a concept, I would like to spend under $300, excluding the cost of the Nano. The WaveShare JetBot AI kit is only $120, but I don’t think it can hold the weight of the THETA V and be stable.

I am thinking of the Yahboom Jetbot for $245

An even cheaper route would be to get the G1 tank for $140 and use a Nano instead of the Raspberry Pi. The flat plate on top is attractive as a base for the THETA.

I could also just demo ROS on Nano with the THETA and not have a robot. However, I think it is better to have a robot to quickly illustrate a concept.

If any has advice on robots that can carry the THETA, please post. Budget is a factor.