Leopard LI-TX-CB1 (Rev 1.3) with IMX185 green output

Hi all,
I’m running the TX2 on a Leopard Imaging LI-TX-CB1 carrier board with a Leopard Imaging LI-IMX185 MIPI (v1.1).

After reading a lot of threads without having success, I followed instructions at the end of this thread (by Leopard) and installed L4T 28.1.
https://devtalk.nvidia.com/default/topic/999524/jetson-tx1/how-to-get-video-stream-from-imx185-mipi-leopard-/

No problems with USB and fan connected at j15 at this moment.

The camera finally appears to be recognized, but when I run

nvgstcapture-1.0

or

gst-launch-1.0 nvcamerasrc ! autovideosink

I do get output, but it’s no more than a pure green square.
It appears no actual data is received, but no error is present.

Output from the first command (nvgstcapture-1.0) is as follows:

nvidia@tegra-ubuntu:~$ nvgstcapture-1.0 
Encoder null, cannot set bitrate!
Encoder Profile = Baseline
Supported resolutions in case of CSI Camera
  (2) : 640x480
  (3) : 1280x720
  (4) : 1920x1080
  (5) : 2104x1560
  (6) : 2592x1944
  (7) : 2616x1472
  (8) : 3840x2160
  (9) : 3896x2192
  (10): 4208x3120
  (11): 5632x3168
  (12): 5632x4224

Runtime CSI Camera Commands:

  Help : 'h'
  Quit : 'q'
  Set Capture Mode:
      mo:<val>
          (1): image
          (2): video
  Get Capture Mode:
      gmo
  Set Sensor Id (0 to 10):
      sid:<val> e.g., sid:2 
  Get Sensor Id:
      gsid
  Set sensor orientation:
      so:<val>
          (0): none
          (1): Rotate counter-clockwise 90 degrees
          (2): Rotate 180 degrees
          (3): Rotate clockwise 90 degrees
  Get sensor orientation:
      gso
  Set Whitebalance Mode:
      wb:<val>
          (0): off
          (1): auto
          (2): incandescent
          (3): fluorescent
          (4): warm-fluorescent
          (5): daylight
          (6): cloudy-daylight
          (7): twilight
          (8): shade
          (9): manual
  Get Whitebalance Mode:
      gwb
  Set Scene-Mode:
      scm:<val>
          (0): face-priority
          (1): action
          (2): portrait
          (3): landscape
          (4): night
          (5): night-portrait
          (6): theatre
          (7): beach
          (8): snow
          (9): sunset
          (10): steady-photo
          (11): fireworks
          (12): sports
          (13): party
          (14): candle-light
          (15): barcode
  Get Scene-Mode:
      gscm
  Set Color Effect Mode:
      ce:<val>
          (1): off
          (2): mono
          (3): negative
          (4): solarize
          (5): sepia
          (6): posterize
          (7): aqua
  Get Color Effect Mode:
      gce
  Set Auto-Exposure Mode:
      ae:<val>
          (1): off
          (2): on
          (3): OnAutoFlash
          (4): OnAlwaysFlash
          (5): OnFlashRedEye
  Get Auto-Exposure Mode:
      gae
  Set Flash Mode:
      f:<val>
          (0): off
          (1): on
          (2): torch
          (3): auto
  Get Flash Mode:
      gf
  Set Flicker Detection and Avoidance Mode:
      fl:<val>
          (0): off
          (1): 50Hz
          (2): 60Hz
          (3): auto
  Get Flicker Detection and Avoidance Mode:
      gfl
  Set Contrast (0 to 1):
      ct:<val> e.g., ct:0.75
  Get Contrast:
      gct
  Set Saturation (0 to 2):
      st:<val> e.g., st:1.25
  Get Saturation:
      gst
  Set Exposure Time in seconds:
      ext:<val> e.g., ext:0.033
  Get Exposure Time:
      gext
  Set Auto Exposure Lock(0/1):
      ael:<val> e.g., ael:1
  Get Auto Exposure Lock:
      gael
  Set Edge Enhancement (0 to 1):
      ee:<val> e.g., ee:0.75
  Get Edge Enhancement:
      gee
  Set ROI for AE:
      It needs five values, ROI coordinates(top,left,bottom,right)
      and weight in that order
      aer:<val> e.g., aer:20 20 400 400 1.2
  Get ROI for AE:
      gaer
  Set ROI for AWB:
      It needs five values, ROI coordinates(top,left,bottom,right)
      and weight in that order
      wbr:<val> e.g., wbr:20 20 400 400 1.2
  Get ROI for AWB:
      gwbr
  Set FPS range:
      It needs two values, FPS Range (low, high) in that order
      fpsr:<val> e.g., fpsr:15 30
  Get FPS range:
      gfpsr
  Set WB Gains:
      It needs four values (R, GR, GB, B) in that order
      wbg:<val> e.g., wbg:1.2 2.2 0.8 1.6
  Get WB Gains:
      gwbg
  Set TNR Strength (0 to 1):
      ts:<val> e.g., ts:0.75
  Get TNR Strength:
      gts
  Set TNR Mode:
      tnr:<val>
          (0): NoiseReduction_Off
          (1): NoiseReduction_Fast
          (2): NoiseReduction_HighQuality
  Get TNR Mode:
      gtnr
  Capture: enter 'j' OR
           followed by a timer (e.g., jx5000, capture after 5 seconds) OR
           followed by multishot count (e.g., j:6, capture 6 images)
           timer/multihot values are optional, capture defaults to single shot with timer=0s
  Start Recording : enter '1'
  Stop Recording  : enter '0'
  Video snapshot  : enter '2' (While recording video)
  Set Preview Resolution:
      pcr:<val> e.g., pcr:3
          (2) : 640x480
          (3) : 1280x720
          (4) : 1920x1080
          (5) : 2104x1560
          (6) : 2592x1944
          (7) : 2616x1472
          (8) : 3840x2160
          (9) : 3896x2192
          (10): 4208x3120
          (11): 5632x3168
          (12): 5632x4224
  Note - For preview resolutions 4208x3120 and more use option --svs=nveglglessink
  Get Preview Resolution:
      gpcr
  Set Image Resolution:
      icr:<val> e.g., icr:3
          (2) : 640x480
          (3) : 1280x720
          (4) : 1920x1080
          (5) : 2104x1560
          (6) : 2592x1944
          (7) : 2616x1472
          (8) : 3840x2160
          (9) : 3896x2192
          (10): 4208x3120
          (11): 5632x3168
          (12): 5632x4224
  Get Image Capture Resolution:
      gicr
  Set Video Resolution:
      vcr:<val> e.g., vcr:3
          (2) : 640x480
          (3) : 1280x720
          (4) : 1920x1080
          (5) : 2104x1560
          (6) : 2592x1944
          (7) : 2616x1472
          (8) : 3840x2160
          (9) : 3896x2192
  Get Video Capture Resolution:
      gvcr

Runtime encoder configuration options:

  Set Encoding Bit-rate(in bytes):
      br:<val> e.g., br:4000000
  Get Encoding Bit-rate(in bytes):
      gbr
  Set Encoding Profile(only for H.264):
      ep:<val> e.g., ep:1
          (0): Baseline
          (1): Main
          (2): High
  Get Encoding Profile(only for H.264):
      gep
  Force IDR Frame on video Encoder(only for H.264):
      Enter 'f' 

bitrate = 4000000
Encoder Profile = Baseline

Available Sensor modes : 
1920 x 1080 FR=30.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=12 DynPixelBitDepth=12
1920 x 1080 FR=30.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1920 x 1080 FR=60.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=12 DynPixelBitDepth=12
1920 x 1080 FR=60.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1920 x 1080 FR=30.000000 CF=0x1009208a10 SensorModeType=5 CSIPixelBitDepth=12 DynPixelBitDepth=16
1280 x 720 FR=120.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
** Message: <main:5364> iterating capture loop ....

NvCameraSrc: Trying To Set Default Camera Resolution. Selected sensorModeIndex = 4 WxH = 1920x1080 FrameRate = 30.000000 ...

Framerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 4 
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 4

from the gstreamer command it’s:

nvidia@tegra-ubuntu:~$ gst-launch-1.0 nvcamerasrc ! autovideosink
Setting pipeline to PAUSED ...

Available Sensor modes : 
1920 x 1080 FR=30.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=12 DynPixelBitDepth=12
1920 x 1080 FR=30.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1920 x 1080 FR=60.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=12 DynPixelBitDepth=12
1920 x 1080 FR=60.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1920 x 1080 FR=30.000000 CF=0x1009208a10 SensorModeType=5 CSIPixelBitDepth=12 DynPixelBitDepth=16
1280 x 720 FR=120.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

NvCameraSrc: Trying To Set Default Camera Resolution. Selected sensorModeIndex = 4 WxH = 1920x1080 FrameRate = 30.000000 ...

vid_rend: syncpoint wait timeout
'vid_rend: syncpoint wait timeout

Any ideas? I feel I’m very close, but cannot find support within the boards unfortunately.

Hi TechnoM,

Please use below latest TX2 driver for LI-TX1-CB + IMX185 camera.

This driver is based on R28.1. Please make sure you flash the R28.1 OS image to the TX2 SOM.

Hi Simon,
Thanks for your reply!

I’ve followed the instructions in the given link, but when I execute step
10. Open a terminal and do "nvgstcapture-1.0”. You will get live video output.
I still get the green output.

I will try to continue with the Argus and kernel steps to see if this makes any difference in output, but the instructions suggest I would already have a successful stream with nvgstcapture-1.0

Hi TechnoM,

Please make sure you plug the camera to J1 of the carrier board.
If you do “ls /dev”, can you see video0 ~ video2 under /dev ?
When did you buy this camera kit? Did it work before or never worked?

Hi Simon,

I can confirm the camera is plugged into J1 of the camera board.

ls /dev shows three video occurrences:

nvidia@tegra-ubuntu:~$ ls /dev/ | grep video*
video0
video1
video2

We purchased the kit last month and this is our initial attempt to get it working.
We are using the TX2 from the development kit.

I’ve tried using Argus as described in the instructions, but the argus application crashes. The gstreamer command in the instructions also fails to create a pipeline.

Edit: could it be I need to override some settings (bitrate or resolution) with the IMX185, i.e. the defaults may not be correct for nvgstcapture-1.0?

Hi TechnoM,

How many IMX185 cameras do you have? Could you try a second camera to see if it works?
Have you flashed the TX2 SOM with R28.1 TX2 OS image which can be downloaded from our driver guide?

Hi Simon,
We only have one IMX185 camera to work with. Is it possible to verify it is recognized properly (e.g. dmesg)?

I have flashed the TX2 with the OS image supplied by your link in reply #2, which is R28.1

edit: the output of dmesg after startup is:

nvidia@tegra-ubuntu:~$ dmesg | grep imx185
[    2.639367] imx185 30-001a: [IMX185]: probing v4l2 sensor at addr 0x1a.
[    2.639474] imx185 30-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.639480] imx185 30-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 74250000
[    2.639486] imx185 30-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.639491] imx185 30-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 74250000
[    2.639496] imx185 30-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.639501] imx185 30-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 148500000
[    2.639507] imx185 30-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.639511] imx185 30-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 148500000
[    2.639517] imx185 30-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.639521] imx185 30-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 74250000
[    2.639527] imx185 30-001a: camera_common_parse_sensor_mode: mode 1280 x 720:
[    2.639531] imx185 30-001a: camera_common_parse_sensor_mode: line_length = 825, pixel_clock = 74250000
[    2.643834] imx185 30-001a: imx185_fuse_id_setup,  fuse id: 000085010101
[    2.643935] imx185 30-001a: Detected IMX185 sensor
[    2.643964] imx185 31-001a: [IMX185]: probing v4l2 sensor at addr 0x1a.
[    2.644054] imx185 31-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.644059] imx185 31-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 74250000
[    2.644064] imx185 31-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.644068] imx185 31-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 74250000
[    2.644074] imx185 31-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.644078] imx185 31-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 148500000
[    2.644084] imx185 31-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.644088] imx185 31-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 148500000
[    2.644093] imx185 31-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.644097] imx185 31-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 74250000
[    2.644103] imx185 31-001a: camera_common_parse_sensor_mode: mode 1280 x 720:
[    2.644107] imx185 31-001a: camera_common_parse_sensor_mode: line_length = 825, pixel_clock = 74250000
[    2.645484] imx185_fuse_id_setup: can not read fuse id
[    2.645487] imx185 31-001a: Error -22 reading fuse id data
[    2.645490] imx185 31-001a: Detected IMX185 sensor
[    2.645515] imx185 32-001a: [IMX185]: probing v4l2 sensor at addr 0x1a.
[    2.645590] imx185 32-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.645596] imx185 32-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 74250000
[    2.645602] imx185 32-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.645606] imx185 32-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 74250000
[    2.645611] imx185 32-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.645615] imx185 32-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 148500000
[    2.645620] imx185 32-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.645624] imx185 32-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 148500000
[    2.645629] imx185 32-001a: camera_common_parse_sensor_mode: mode 1920 x 1080:
[    2.645633] imx185 32-001a: camera_common_parse_sensor_mode: line_length = 2200, pixel_clock = 74250000
[    2.645638] imx185 32-001a: camera_common_parse_sensor_mode: mode 1280 x 720:
[    2.645642] imx185 32-001a: camera_common_parse_sensor_mode: line_length = 825, pixel_clock = 74250000
[    2.646925] imx185_fuse_id_setup: can not read fuse id
[    2.646928] imx185 32-001a: Error -22 reading fuse id data
[    2.646931] imx185 32-001a: Detected IMX185 sensor

Does this mean the sensor is detected successfully?

I’ve got it working by NOT following in the instructions for “slave mode” (see: https://www.dropbox.com/sh/cksco0qwgsyupt0/AAB9XhC2E0sIi1unUe6JbDAHa?dl=0&preview=Screenshot+2018-08-06+14.28.46.png )

I changed the dipswitch to “ON” and got image with

nvgstcapture-1.0

Simon, can you tell me if the documentation about slave mode is wrong or is the camera now in “master” mode?

What is slave mode anyway?

Hi TechnoM,

Great to know it works.
Yes, the IMX185 camera with LI-TX1-CB only support master mode. Our another carrier board LI-TX1-CB-6CAM supports IMX185 camera in slave mode since this 6CAM carrier board includes a FPGA which can generate trigger signals to trigger the cameras.