The NVIDIA Jetson Orin Nano Developer Kit includes two 22 pin MIPI-CSI cameras. The Raspberry Pi v2.1 camera uses a 15 pin connector. You need to install an adapter cable to use the two together. Looky here:
Background
The Jetson Orin Nano includes 2 MIPI CSI-2 camera connectors with 22 pins. The pitch of the pins is 0.5mm. Previous Jetson developer kits with CSI camera connectors use 15 pins. The extra pins on the new connector allow for use with 4 lane cameras. These types of camera usually have more resolution and higher frame rates.
The actual connector operates slightly differently than the previous generation. The ribbon connector inserts parallel to the board. The earlier generation inserts perpendicular to the board. The ribbon cable is held in the connector using a press fit plastic retaining clip. We’ll say that the connectors aren’t particular robust, and care must be taken inserting, clamping, and removing the cable.
Items in the Video
In the video, we use:
The camera extension cables are available in all sorts of sizes. You should look around for one that fits your needs. While the video describes the Raspberry Pi v2.1 camera specifically, most CSI cameras use the same type of connection scheme.
It’s much easier to do this in real life than it appears in the video. The connectors are small, it’s difficult not to obscure them when filming.
Use with RPI v2.1 Camera
The older Raspberry Pi v2.1 cameras use a 15 pin ribbon cable. The pitch of the pins is 1.0mm. In order to connect the RPi camera to the Jetson, an adapting cable is a must.
When you first see the adapter cable, it’s a little counter intuitive. The 15 pin side is wider than the 22 pin side! This is due to the pin spacing, of course.
First, remove the ribbon cable from the Raspberry Pi Camera. The ribbon cable is held in by a press fit plastic retaining clip. The retaining clip is actually attached to the connector, so you must be careful when loosening it. You’ll only need to pull the clip out 2 or three millimeters to loosen the cable.
Also, you will want to be careful not to scratch the lens of the camera. The retaining clip slightly overhangs the side of the connector. You can use your fingernail or a small flat blade screwdriver to carefully loosen one side at a time. You should be able to pull the retaining clip out a couple of millimeters and then remove the cable.
After removing the cable, you are ready to insert the new one. The pin side of the cable goes towards the camera board. Shiny side down! Make sure that the cable seats all the way into the connector. Once the cable is in place, gently press the retaining clip in to capture it. Make sure that the retaining clip completely closes. Make sure that the cable didn’t wander out while you were pressing in the clip.
On the Jetson Side
The Jetson side installation process is much the same. Loosen the retaining clip, insert the cable, and then tighten the retaining clip. Make sure that the pins on the cable face towards the carrier board.
There are two camera connectors on the camera board. There are various ways to utilize them, one way is to use a dual camera module. In the video, we use a Waveshare Dual IMX219 Camera Module. This is a dual IMX219 sensor camera, people use them as inexpensive depth cameras.
There are several standards for the CSI camera connectors, with corresponding cables. Many of these cameras ship with cables with different connector sizes.
Testing
After installation, you’ll want to test. There are several ways to do this. One way is to use the JetsonHacks CSI-Camera repository on Github, which is useful if you’re using something like the Raspberry Pi v2.1 camera. For other cameras, you may need to alter some of the parameters to get full video fidelity.
18 Responses
Working like a charm on both my Jetson Nano and Orin. Thank you, Jim
I’m glad you were able to get it to work! Thanks for reading.
man I am lost on getting the waveshare Imx219-83’s to connect to our Orins. What kind of adaptor do we need to connect to the MIPI 60 connectors on the orin ?
What is a MIPI 60 connector? The connectors on the Orin Nano are 22 pin.
How do we connect it securely to an Orin AGX, which does’t have a latch? Can you please post instructions or a video?
I do not know. As far as I know, AGX Orin does not have a CSI port. You can ask on the official NVIDIA AGX Orin developers forum if you want some help.
Ah, got it, it has a J509 connector. Thank you.
You are welcome, and thanks for reading!
Should this run on Jet Pack 6? I upgraded and can no longer run it
david@david-desktop:~/CSI-Camera$ gst-launch-1.0 nvarguscamerasrc sensor_id=0 ! \
‘video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1’ ! \
nvvidconv flip-method=0 ! ‘video/x-raw,width=960, height=540’ ! \
nvvidconv ! nvegltransform ! nveglglessink -e
WARNING: erroneous pipeline: no element “nvarguscamerasrc”
david@david-desktop:~/CSI-Camera$
I haven’t tried it on JetPack 6.
Doesn’t work for me either, jetpack 6, same IMX219, be careful
What doesn’t work? The camera?
Thanks for wonderful article! I tried it on my Orin Nano with Jetpack 6 and it works like a charm.
Note that you have to manually install the related DTB overlay first using jetson-io (https://docs.nvidia.com/jetson/archives/r36.2/DeveloperGuide/HR/ConfiguringTheJetsonExpansionHeaders.html?highlight=jetson%20io#running-jetson-io). I guess that’s a major change since Jetpack 5.
Yes, JetPack 6 is a different beast. Thanks for reading!
i can’t run python3 simple camera.py directly on jetson orin nano, that doesn’t really run. but when I use sudo python3 simple_camera.py everything works fine. Is there any way for me to use the camera without such access, thank you
You may need to change your user group or add a udev rule depending on the camera you are using. Thanks for reading!
I think there is some white and black micro dots in the image like salt and pepper noise. I have the same issue in my image streaming with Jetson Orin NX. What we can do to remove this? It get more bad when we want details for example license-plate in the nature light. What we can do?
I’m not sure what the problem is, but usually issues such as you describe are the result of the amount of light or exposure on the image. You can try adjusting the different camera parameters to see if you can rectify the issue. You may have electrical interference affecting your camera or cabling issues. You can try another cable and see if it helps. However, remember that the Raspberry Pi Cameras are not the highest image quality. You should ask the question on the official NVIDIA Jetson Orin forum, where a large group of developers and NVIDIA engineers share their experience: https://forums.developer.nvidia.com/c/agx-autonomous-machines/jetson-embedded-systems/jetson-orin-nano/632
Hopefully you will find people have experienced the same issue. Thanks for reading!