Raspberry Pi HQ Camera in Jetson Nano

Hi everyone,

We are glad to announce that RidgeRun is working to support the IMX477 Raspberry Pi HQ Camera Driver in Jetson Nano.

RidgeRun already created the Raspberry Pi HQ Camera Driver for Jetson NX. This driver will be ported to Jetson Nano in the upcoming weeks.

Note1: The initial conversation about this driver can be found here

4 Likes

Thanks @DavidSoto-RidgeRun, keep up the great work!

1 Like

Re,

I am wondering, how you guys succeeded to have 4k@30 FPS with only 2 lanes, while all Others jetson compatible camera are caped at 10/15 . Can you explain ?

Vincent

Hi Vincent,

We have also seen several cameras that are not able to reach 4K@30fps with 2 MIPI CSI Lanes. I think it depends on the sensor, if it supports that mode, the internal clock speed, the MIPI CSI speed on the lanes, etc. In theory Jetson NX (where the driver was tested) is able to reach 2.5Gbps on each lane. The IMX477 uses 10bpp so it should be possible to get 33fps.

nx-fps

This post is for Jetson Nano questions, we are currently working to port the driver to Jetson Nano and run the test. However, Jetson Nano is 1.5Gbps per lane. So the max fps should be 22fps. You can use this RidgeRun Spreadsheet to get some theoretical numbers. You can use the Jetson NX post if you have questions about the usage of the camera in the NX board

-David

3 Likes

Make sense! Thx.

Hmm, according to that, in theory Nano should be able to achieve 4K resolution (4056 x 2288 mode) at almost 30 fps with 2 lanes (assuming 85% efficiency as above), which I believe is best replacement for full-frame (4056 x 3040) @ 30fps mode at Jetson NX. Only issue, I was unable to find register configuration/values for this mode in any openly available IMX477 driver sources.

Hi all,

We have updated the Raspberry Pi HQ IMX477 camera driver to support the Jetson Nano.

You can find the new patch including support for both NX and Nano in our repository: https://github.com/RidgeRun/NVIDIA-Jetson-IMX477-RPIV3

Instructions for Jetson Nano were updated in the repo as well.

It supports the same features supported in NX:

Resolutions and framerates

  • 1920x1080 @ 60fps
  • 4032x3040 @ 30fps

Controls

  • Gain
  • Exposure
  • Framerate

Let us know how it goes for you all, looking forward to hear your feedback.

Carlos R.

1 Like

Thank you very much. I’m going to test it right away.

I’m about to try this today, anyone else but the developers had any success with this? I’m obviously a bit ambivalent about removing the resistor… but should but ok I guess. Hopefully I wont short out the pads by mistake. Will report back on success or failure. Fingers crossed.

I have tried to get this working on my nano development board today. Building the patched kernel and DTB seemed to work fine, although some of the instructions do still refer to paths and names that are relevant to the NX rather than the nano.

I got my own-built kernel running but all attempts to get it to use the new DTB by copying to the /boot or /boot/dtb directories resulted in the nano not booting into the kernel at all. In the end I used the flash.sh script on the host to install everything new on the nano and then it booted fine. I can see that my own kernel is running and that the new DTB is being used because now there are messages in the kernel log refering to imx477 rather than imx219.

Unfortunately, the camera is not recognised. It looks like it cannot be found on the i2c bus. I see the following error messages in the kernel log on booting:

Aug  2 20:48:53 nano kernel: [    1.188047] i2c i2c-7: Failed to register i2c client imx477 at 0x1a (-16)
Aug  2 20:48:53 nano kernel: [    1.188052] i2c i2c-7: of_i2c: Failure registering /cam_i2cmux/i2c@0/rbpcv3_imx477_a@1a
Aug  2 20:48:53 nano kernel: [    1.188056] i2c i2c-7: Failed to create I2C device for /cam_i2cmux/i2c@0/rbpcv3_imx477_a@1a
Aug  2 20:48:53 nano kernel: [    1.188073] i2c i2c-6: Added multiplexed i2c bus 7
Aug  2 20:48:53 nano kernel: [    1.188367] i2c i2c-8: Failed to register i2c client imx477 at 0x1a (-16)
Aug  2 20:48:53 nano kernel: [    1.188371] i2c i2c-8: of_i2c: Failure registering /cam_i2cmux/i2c@1/rbpcv3_imx477_e@1a
Aug  2 20:48:53 nano kernel: [    1.188375] i2c i2c-8: Failed to create I2C device for /cam_i2cmux/i2c@1/rbpcv3_imx477_e@1a
Aug  2 20:48:53 nano kernel: [    1.188390] i2c i2c-6: Added multiplexed i2c bus 8
Aug  2 20:48:53 nano kernel: [    1.188395] i2c-mux-gpio cam_i2cmux: 2 port mux on Tegra I2C adapter adapter
Aug  2 20:48:53 nano kernel: [    1.188763] imx477 6-001a: tegracam sensor driver:imx477_v2.0.6

I have (carefully) removed the resistor R8 on the camera as instructed and am fairly sure I haven’t damaged it, although I haven’t tried it with a RasPi since I made the change.

Any idea what could be going wrong?

Any help would be appreciated.


Goad

Hi Goad, check this issue on their github.

Peter.

Hello Peter,

Thanks - I missed that. The changes to the device tree suggested in the issue solved my problems here. The camera is working fine now. I’m glad I didn’t mess it up when I removed the resistor.

Kind regards,


Goad

Will the patch be eventually included in the next software update for Jetson Nano?

Hi All,

We updated the instructions and the repository in order to have one folder for nano and one for NX to make the process easier and avoid some of the issues reported when applying the patch.

@jadwardeh we don’t have information about this yet.

-David

1 Like

Hi all,

We have also uploaded a new version of the ISP configuration file. Please, check it out and let us know how it works for you.

Regards,

-JC

Just made it to work with nano, using Arducam’s .dtb file (which however only allows one camera in slot 0). Am I correct that the only issue here is the status: okay / disabled change, as discussed in the issue? If so, could you please add a correction to your github sources?

I have one extra question, how is 4032x3040 30fps mode possible on nano, when in theory with 2 lanes 1.5 Gbps each bandwidth is not enough?

Btw, of course thanks for great work :D

Hey @micmys just a quick question,… so you basically just took the dtb file from arducams deb package and specified that in the nano boot config instead of the one built when following the ridgerun description?

My cam is still not working and I’m waiting for some sign from Ridgerun… maybe it’s the fact that we are using the newer dev boards and they… aren’t not sure.

Peter.

Just an update on this… got it working by using the arducam dtb as mentioned. Only issue is the image for me is flipped upside down, is it the same for you?

Tbh I don’t remember how my camera was positioned, but I guess that should be easily fixable

Have you tried the specific dtb file for your board?