Can't start camera IMX477 motorized focus on Xavier NX

Linux jetson201-desktop 4.9.253-tegra #1 SMP PREEMPT Sat Oct 9 01:45:46 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux

jetson201@jetson201-desktop:~$ ls /dev/video*
/dev/video0 /dev/video1

jetson201@jetson201-desktop:~$ gst-launch-1.0 nvarguscamerasrc ! nvoverlaysink
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected…
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 4032 x 3040 FR = 29,999999 fps Duration = 33333334 ; Analog Gain range min 1,000000, max 22,250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: 3840 x 2160 FR = 29,999999 fps Duration = 33333334 ; Analog Gain range min 1,000000, max 22,250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: 1920 x 1080 FR = 59,999999 fps Duration = 16666667 ; Analog Gain range min 1,000000, max 22,250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: Running with following settings:
Camera index = 0
Camera mode = 2
Output Stream W = 1920 H = 1080
seconds to Run = 0
Frame Rate = 59,999999
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
nvbuf_utils: Can not get HW buffer from FD… Exiting…
CONSUMER: ERROR OCCURRED
ERROR: from element /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0: CANCELLED
Additional debug info:
Argus Error Status
Execution ended after 0:00:02.027380378
Setting pipeline to PAUSED …
Setting pipeline to READY …
GST_ARGUS: Cleaning up
Setting pipeline to NULL …
Freeing pipeline …

jetson201@jetson201-desktop:~$ dmesg | grep -E “imx477|imx219|arducam”
[ 3.265945] tegra194-vi5 15c10000.vi: subdev imx477 9-001a bound
[ 3.266832] tegra194-vi5 15c10000.vi: subdev imx477 10-001a bound
[ 214.618424] imx477 9-001a: Error writing mode
[ 214.619683] imx477 9-001a: imx477_write_reg: i2c write failed, 0x104 = 1
[ 214.619832] imx477 9-001a: imx477_set_group_hold: Group hold control error

[16225.173198] tegra-i2c 3180000.i2c: Un-recovered Arb lost
[16225.173318] regmap_util_write_table_8:regmap_util_write_table:-5
[16225.173427] imx477 9-001a: Error writing mode

[16225.163606] tegra194-vi5 15c10000.vi: vi capture get status failed

[16225.163450] tegra194-vi5 15c10000.vi: no reply from camera processor

[16223.634700] tegra-i2c 3180000.i2c: Un-recovered Arb lost
[16223.634854] regmap_util_write_table_8:regmap_util_write_table:-5
[16223.634960] imx477 9-001a: Error writing mode
[16223.635593] tegra-i2c 3180000.i2c: arb lost in communicate to add 0x1a
[16223.635822] tegra-i2c 3180000.i2c: Un-recovered Arb lost
[16223.635930] imx477 9-001a: imx477_write_reg: i2c write failed, 0x104 = 1
[16223.636046] imx477 9-001a: imx477_set_group_hold: Group hold control error

[16219.037365] tegra-i2c 3180000.i2c: Un-recovered Arb lost
[16219.037478] imx477 9-001a: imx477_write_reg: i2c write failed, 0x104 = 1
[16219.037598] imx477 9-001a: imx477_set_group_hold: Group hold control error

sudo /opt/nvidia/jetson-io/jetson-io.py
dual imx477

The ArduCam driver has been installed

With another imx477 camera without autofocus - works fine

Looks like i2c communicate failed.

The camera and focus work on jetson nano.
We did it according to the instructions

I tried to run on jetpack 4.4, 4.4.1, 4.5 - it doesn’t work.
After installing the driver, dmesg writes that “subdev imx477 10-001a bound”. That is, I think i2c works.
After starting gstreamer, “ls/dev/video*” stops seeing the camera
We tried long and short cable

dmesg output after starting gstreamer and rebooting

[ [ 1.990631] imx477 9-001a: tegra com sensor driver:is 477_v2.0.6
[ 2.291210] imx477 9-001a: imx477_board_setup: error during i2c read probe (-121)
[ 2.291638] imx477 9-001a: board setup failed
[ 2.291942] imx477: probe of 9-001a failed with error -121
[ [ 2.292303] imx477 10-001a: tegra cam sensor driver:is 477_v2.0.6
[ [ 3.168429] tegra 194-vi 5 15 c 10000.vi: subdiv id 477 10-001a bound

Not sure if lost some power cause the i2c behavior unnormally.

Resoldered. It works. Verified.
Answered support@arducam.com

This is a known problem on Xavier NX, and the hardware needs to be modified to make the module work properly.
If you want to modify the hardware yourself, you need to change these two resistors to 10K.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.