I’m triying to work with the HQ IMX477 cam but ls /dev/video0 never appears.
I’ve removed the R8 and followed this procedure: https://developer.ridgerun.com/wiki/index.php?title=Raspberry_Pi_HQ_camera_IMX477_Linux_driver_for_Jetson
And the current release in my Jetson Nano is:
R32 (release), REVISION: 4.3, GCID: 21589087, BOARD: t210ref, EABI: aarch64, DATE: Fri Jun 26 04:38:25 UTC 2020
Linux chan-desktop 4.9.140-tegra #42 SMP PREEMPT Fri Sep 4 09:41:10 CST 2020 aarch64 aarch64 aarch64 GNU/Linux
The dmesg command says:
[ 1.691770] imx477 6-001a: tegracam sensor driver:imx477_v2.0.6
[ 1.715104] tegra-vii2c 546c0000.i2c: no acknowledge from address 0x1a
[ 1.715184] imx477 6-001a: imx477_board_setup: error during i2c read probe (-121)
[ 1.722802] imx477 6-001a: board setup failed
[ 1.727271] imx477: probe of 6-001a failed with error -121
There is like a I2C issue.
Before the kernel update, the imx219 cam worked well with my RasPiCam v2.1.
May need to check the power down/reset pin status is in the correct status as the HW design.
The cam works perfectly when the connection between Jetson Nano and HQ IMX477 cam is done by a 10cm cable flex.
With a CSI to HDMI Cable Extension fails and with a 90cm cable flex fails too.
With a Raspberry Pi and a 150cm CSI to HDMI Cable Extension the cam works perfectly. Considering the I2C error, it’s like a signal level problem related with the cable or a Jetson Nano impedance adaptation problem.
As your experiment it could be the cable length cause the problem.
I just verified that the Jetson Nano I2C clock works at 400khz and the Raspberry Pi I2C clock works at 100Khz. This is reason the same cable works with the RasPI.
Is it possible to modify the Jetson Nano I2C Clock to reduce it to100Khz?
I have reduced the speed of the Jetson Nano’s I2C port to 100khz and the problem persists.
(I2C speed procedure of change: https://developer.ridgerun.com/wiki/index.php?title=Edit_device_tree_at_run_time, applied on /root/arducam/*.dtb files)
With the flexible 10cm cable the camera works perfectly on the Jetson Nano, but with a fast 90cm hdmi cable (4k) and the CSI to HDMI cable converter, the HQ IMX447 camera does not respond with the ACK (I can see the NACK with a logic analyzer). And with the RasPi the cam works perfectly with any cable.
The RasPI behavior:
Can you use a oscilloscope to observe the signal quality comparing between 10cm and 90cm cable? Since it works with 10cm cable, it looks more like a cable compatible issue. Can you share the detail info of your “a fast 90cm hdmi cable (4k) and the CSI to HDMI cable converter”?
I’ve verified the ENABLE (J1-pin 11) 1,8v Jetson Nano level is the problem.
My conclusion: Removing R8 is not enough, previous R8 (see the schematic - page 2) there are other components connected with ENABLE pin that with low impedance and 1,8v can work, but when the cable is 90cm 1 ohm is enought to make it fail. With a cable longer than 20cm the ENABLE level has to be raised up to 3,3v.
If you have only one camera connected, I think the best solution is to keep the R8 and just cut the line from ENABLE on the CSI to HDMI converter, keeping the camera always enabled.
(RPI HQ-IMX477 schematic: https://www.raspberrypi.org/documentation/hardware/camera/schematics/rpi_SCH_HQcamera_1p0.pdf)