Good afternoon! I encountered a problem when working with the UC-788 Rev camera.B with OV9281 sensor (black and white sensor with MIPI CSI-2 interface) on Jetson Orin NX DevKit platform. I am using JetPack 6.2 (L4T 36.3.0) and the 5.136-tegra kernel.
To connect the camera, the driver provided by the link taken from the Arducam forum was used:
When connecting the camera and using the configured parameters, I get a “broken” picture (noise, stripes), despite the fact that all parameters, including the capture format, are set correctly, as I understand it. The attached image shows that instead of the expected image, only noise is output. The problem seems to be related to incorrect initialization of the sensor or incorrect loading of registers via I2C, but I did not find a clear solution.
System information:
Camera: UC-788 Rev.B
Sensor: OV9281 (black and white, MIPI CSI-2)
Platform: Jetson Orin NX DevKit
JetPack: 6.2 / L4T 36.3.0
Core: 5.136-tegra
Questions:
Can you tell me if such errors (error 22 when accessing the sensor’s I2C device) are a known problem with the OV9281 driver?
Perhaps it is necessary to make changes to the initialization settings (I2C initialization, sensor register configuration) for the OV9281 to work correctly on this platform (Jetson Orin NX, JetPack 6.2, core 5.15.136-tegra)?
Do you have any updates or patches to fix this issue?
What additional parameters or tests can be performed to diagnose and correct the situation?
I would be grateful for the prompt response and recommendations provided, as this problem significantly hinders the further development of the project.
Output of the v4l2-ctl -d /dev/video0 --all command:
Driver Info:
Driver name : tegra-video
Card type : vi-output, arducam-csi2 10-000c
Bus info : platform:tegra-capture-vi:1
Driver version : 5.15.136
Capabilities : 0x84200001
Video Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Media Driver Info:
Driver name : tegra-camrtc-ca
Model : NVIDIA Tegra Video Input Device
Serial :
Bus info :
Media version : 5.15.136
Hardware revision: 0x00000003 (3)
Driver version : 5.15.136
Interface Info:
ID : 0x0300000b
Type : V4L Video
Entity Info:
ID : 0x00000009 (9)
Name : vi-output, arducam-csi2 10-000c
Function : V4L2 I/O
Pad 0x0100000a : 0: Sink
Link 0x0200000f: from remote pad 0x1000003 of entity '13e00000.host1x:nvcsi@15a00000-' (Unknown sub-device (0002000a)): Data, Enabled
Priority: 2
Video input : 0 (Camera 1: no power)
Format Video Capture:
Width/Height : 640/400
Pixel Format : 'GREY' (8-bit Greyscale)
Field : None
Bytes per Line : 640
Size Image : 256000
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :
User Controls:
exposure 0x00980911 (int) : min=1 max=65523 step=1 default=681 value=681
horizontal_flip 0x00980914 (bool) : default=0 value=0
vertical_flip 0x00980915 (bool) : default=0 value=0
trigger_mode 0x00981901 (bool) : default=0 value=0
disable_frame_timeout 0x00981902 (bool) : default=0 value=0
frame_timeout 0x00981903 (int) : min=100 max=12000 step=1 default=2000 value=2000
frame_rate 0x00981906 (int) : min=5 max=240 step=1 default=240 value=240
Camera Controls:
error 22 getting ext_ctrl Sensor configuration
error 22 getting ext_ctrl Sensor mode I2C packet
error 22 getting ext_ctrl Sensor control I2C packet
bypass_mode 0x009a2064 (intmenu): min=0 max=1 default=0 value=0
override_enable 0x009a2065 (intmenu): min=0 max=1 default=0 value=0
height_align 0x009a2066 (int) : min=1 max=16 step=1 default=1 value=1
size_align 0x009a2067 (intmenu): min=0 max=2 default=0 value=0
write_isp_format 0x009a2068 (int) : min=1 max=1 step=1 default=1 value=1
sensor_signal_properties 0x009a2069 (u32) : dims=[30][18] flags=read-only, has-payload
sensor_image_properties 0x009a206a (u32) : dims=[30][16] flags=read-only, has-payload
sensor_control_properties 0x009a206b (u32) : dims=[30][36] flags=read-only, has-payload
sensor_dv_timings 0x009a206c (u32) : dims=[30][16] flags=read-only, has-payload
low_latency_mode 0x009a206d (bool) : default=0 value=0
preferred_stride 0x009a206e (int) : default=0 value=0
sensor_modes 0x009a2082 (int) : min=0 max=30 step=1 default=30 value=1 flags=read-only
Image Source Controls:
vertical_blanking 0x009e0901 (int) : min=143 max=25686 step=1 default=143 value=143
horizontal_blanking 0x009e0902 (int) : min=96 max=96 step=1 default=96 value=96
analogue_gain 0x009e0903 (int) : min=100 max=1500 step=1 default=100 value=100
Image Processing Controls:
pixel_rate 0x009f0902 (int64) : min=96000000 max=96000000 step=1 default=96000000 value=96000000 flags=read-only