How can I connect IMX678 camera to Jetson orin nano?

I’m trying to connect two IMX678 cameras to the Jetson Orin Nano Developer Kit, but for now, I want to test with just one camera to see if it works properly. I’m having some difficulties.

    1. In /proc/device-tree, only the lens_imx219@RBPCV2 node exists.
    2. The current settings are for an IMX477 dual camera setup.
    3. The camera module I actually connected is an IMX678.

From what I’ve read, the camera won’t display properly because the device tree doesn’t match the sensor that’s actually connected. It seems that creating a Device Tree Overlay is necessary to fix this. However, I’m not sure where to find the information for the overlay, such as the I2C address, CSI port/lanes, MCLK, GPIO, data format, and resolution.

To create an IMX678-specific node, do I need to use this information and remove the existing IMX219 or IMX477 settings, or overwrite them in the overlay? I want to make sure I’ve understood this correctly.



I keep see the following error logs with gst-launch-1.0 nvarguscamerasrc sensor_mode=0 ! ‘video/x-raw(memory:NVMM),width=3820, height=2464, framerate=21/1, format=NV12’ ! nvvidconv flip-method=0 ! ‘video/x-raw,width=400, height=300’ ! nvvidconv ! nvegltransform ! nveglglessink -e this command.

error logs

(Argus) Error Timeout: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 219)
(Argus) Error Timeout: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 106)
Setting pipeline to PAUSED …

Using winsys: x11
Pipeline is live and does not need PREROLL …
Got context from element ‘eglglessink0’: gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
Setting pipeline to PLAYING …
New clock: GstSystemClock
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:746 Failed to create CameraProvider
WARNING: from element /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0: Pipeline construction is invalid, please add queues.
Additional debug info:
gstbasesink.c(1209): gst_base_sink_query_latency (): /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0:
Not enough buffering available for the processing deadline of 0:00:00.015000000, add enough queues to buffer 0:00:00.015000000 additional data. Shortening processing latency to 0:00:00.000000000.
Got EOS from element “pipeline0”.
Execution ended after 0:00:00.037365567
Setting pipeline to NULL …
Freeing pipeline …

Hi @lisa2000love

Unfortunately, the imx678 driver is not supported on Jetson Linux Kernel. You’ll need to integrate a new driver specific for the imx678 sensor, is that what you are trying to do?

Enrique Ramirez
Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com
Website: www.ridgerun.com

I’m trying it now.. My current JetPack version is 5.1.1, but I want to reinstall the drivers with JetPack 6.1. Could you share a GitHub link or a method I can refer to?

Yes, the best would be to update to the latest JP which is JP6.2.1.
Here you can find an example for build instructions but it was tested for JP6.0, so some link may need to be updated, but you can use it as a reference.

Enrique Ramirez
Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com
Website: www.ridgerun.com