Difference between revisions of "NVIDIA Jetson Orin Nano/Camera Sensors Support/IMX708"

From RidgeRun Developer Connection
Jump to: navigation, search
(Created page with "<noinclude> {{NVIDIA Jetson Orin Nano/Head|next=|metakeywords=|metadescription=}} </noinclude> This wiki provides information about enabling the Raspberry Pi Camera V2.1 (IMX...")
 
Line 3: Line 3:
 
</noinclude>
 
</noinclude>
  
This wiki provides information about enabling the Raspberry Pi Camera V2.1 (IMX219) driver on the Jetson Orin Nano developer kit. The information provided was tested on:
+
This wiki provides information about the IMX708 camera sensor driver developed by RidgeRun. The information provided was tested on:
 
<pre>
 
<pre>
 
* JetPack: 5.1.1
 
* JetPack: 5.1.1
 
* Jetson Linux: 35.3.1
 
* Jetson Linux: 35.3.1
* One IMX219 Rapsberry Pi camera module V2.1
+
* One IMX708 Rapsberry Pi Camera Module V3
 
</pre>
 
</pre>
  
The Raspberry Pi Camera V2.1 camera module (IMX219) is compatible with the Jetson Orin Nano developer kit from NVIDIA. The camera module can be attached to the Orin Nano developer kit using an adapter to convert the 15-pin MIPI CSI output of the camera module to the 22-pin MIPI CSI camera input of the Orin Nano. The converter can look like the following images:
+
The Raspberry Pi Camera V3 camera module (IMX708) is compatible with the Jetson Orin Nano developer kit from NVIDIA. RidgeRun developed a driver to fulfill the needs of the market, The driver has the next characteristics:
  
 
{| class="wikitable" style="margin: auto;"
 
{| class="wikitable" style="margin: auto;"
|[[File:Cable conv.jpg|thumb| center | 200px | Figure 1: Adapter cable [https://www.arducam.com/wp-content/uploads/2020/02/strock-15mm-Pi-Zero-Cable-one-end-copy.png Arducam 38mm 15 to 22 pin]]]
+
|[[File:IMX708-ORIN-NANO.jpg|thumb| center | 500px | Figure 1: Raspberry Pi 3 Camera Module 3 connected to a NVIDIA® Jetson Orin Nano™]]  
|[[File:Module conv2.jpg|thumb| center | 400px | Figure 2: Adapter module [https://www.arducam.com/wp-content/uploads/2020/02/Compute-Module-camera-adapter_1.png Compute Module camera adapter]]]
 
 
|}
 
|}
  
In order to enable the driver support, you need to run a Python script that comes with JetPack 5.1.1 under release L4T 35.3.1. The script can be executed with the following command:
 
<pre>
 
sudo /opt/nvidia/jetson-io/jetson-io.py
 
</pre>
 
  
Then, a menu will appear. Follow the options below in order to enable the IMX219 support for two cameras:
+
{| class="wikitable"
 
+
|-
<pre>
+
! Element !! Description
-> Configure Jetson 24pin CSI Connector
+
|-
-> Configure for compatible hardware
+
| Image sensor || IMX708
-> Camera IMX219 Dual
+
|-
-> Save pin changes
+
| Optical Size || 1/2.43(7.4mm sensor diagonal)
-> Save and reboot to reconfigure pins
+
|-
</pre>
+
| Number of effective pixels || Height = 4608, Width = 2592 <br>
 
+
|-
After the board is rebooted, you can try to run the following command:
+
| Pixel Size || 1.4μm × 1.4μm
 
+
|-
<pre>
+
| Interface || MIPI CSI-2 Interface
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=RG10 --stream-mmap --stream-count=300 -d /dev/video0
+
|-
</pre>
+
| Shutter Type || Rolling Shutter
 +
|-
 +
| Color Filter || Color
 +
|-
 +
| Common Video Mode || 1080p50*, 720p100*, 480p120*
 +
|-
 +
| Output Format || RAW10
 +
|-
 +
| Binning Support || Yes*
 +
|-
 +
| HDR Support || Yes*
 +
|-
 +
| Auto-Focus (PDAF) || Yes*
 +
|-
 +
| Minimun Focus Distance || 5 cm
 +
|-
 +
| Controls || Exposure, gain, HDR, etc *
 +
|-
 +
| Compatible hardware || MIPI CSI-2 Interface
 +
|-
 +
| Interface || Raspberry Pi, Orin Nano**
 +
|}
  
This command will start streaming from camera port 0 (cam0). If you want to check the camera port 1 (cam1), change the video device to video1. After running the command you must see the next output in your terminal window:
 
  
<pre>
+
<span style="font-size:10px">*These values come from common sensor documentation, but they are not currently supported by Ridgerun IMX708 Orin Nano driver. Contact us to start working with you in your driver specifications needs.</span> <br>
<<<<<<<<<<<<<<<<<<<<<<< 21.19 fps
+
<span style="font-size:10px">**The compatibility is restricted to 4608x2592@14.35 fps. To have access to more resolution modes or controls, [https://www.ridgerun.com/contact contact us].</span>
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
 
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
 
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
 
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
 
<<<<<<<<<<<<<<<<<<<<<< 21.19 fps
 
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
 
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
 
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
 
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
 
<<<<<<<<<<<<<<<<<<<<<< 21.19 fps
 
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
 
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
 
<<<<<<<<<<<<<<<<<<<<< 21.19 fps
 
</pre>
 
  
At this point you should be able to capture successfully.
 
  
 +
RidgeRun has been working intensively to port the IMX708 image sensor to the Jetson Orin Nano, as fast as possible due to the market needs. Right now, we are offering to the embedded software developer community a functional driver. The driver has the specification detailed below.
  
=Known issues=
+
Resolution: 4608x2592@14.35fps <br>
Before enabling the IMX219 support with the jetson-io.py tool, you may find out that if you connect the camera to the development board it will be recognized by the kernel and the driver loaded. You can verify this by running the dmesg command and grepping the keyword “imx219”. You will find the “bound” message for both ports (in case you have connected both cameras at the same time).
+
Output Format: RAW10 <br>
 
+
Binning Support: No* <br>
<pre>
+
HDR Support: No* <br>
[  694.226388] imx708 9-001a: tegracam sensor driver:imx708_v2.0.6
+
Auto-Focus (PDAF): No* <br>
[  694.527906] tegra-camrtc-capture-vi tegra-capture-vi: subdev imx708 9-001a bound
+
Controls: Exposure and gain* <br>
[  694.529755] imx708 10-001a: tegracam sensor driver:imx708_v2.0.6
+
Number of cameras streaming at the same time: 1** <br>
[  694.834263] tegra-camrtc-capture-vi tegra-capture-vi: subdev imx708 10-001a bound
 
</pre>
 
 
 
Even though the driver is bound, if you try to check the video capabilities by running:
 
 
 
<pre>
 
v4l2-ctl --all
 
</pre>
 
 
 
The process will get stuck without showing you any kind of information (you can stop this command using ctrl+c). You will see the following error if you try to capture:
 
 
 
<pre>
 
[  394.042165] bwmgr API not supported                                                                   
 
[  396.722887] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms                   
 
[  396.735648] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel             
 
[  396.745787] (NULL device *): vi_capture_control_message: NULL VI channel received                                   
 
[  396.753540] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=0, csi_port=0 
 
[  396.764228] (NULL device *): vi_capture_control_message: NULL VI channel received                                   
 
[  396.771968] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 0 vc- 0   
 
[  396.782756] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
 
</pre>
 
  
This is due to an error in the way the device tree is being configured. To fix this, you will need to run the jetson-io.py tool and enable the IMX219 camera support.
+
<span style="font-size:10px">*[https://www.ridgerun.com/contact Contact us]  to develop this features according to your needs</span> <br>
 +
<span style="font-size:10px">**[https://www.ridgerun.com/contact Contact us] to work with you and extend the functionality to more attached cameras.</span>
  
  

Revision as of 13:06, 4 July 2023



  Index  


Nvidia-preferred-partner-badge-rgb-for-screen.png




This wiki provides information about the IMX708 camera sensor driver developed by RidgeRun. The information provided was tested on:

* JetPack: 5.1.1
* Jetson Linux: 35.3.1
* One IMX708 Rapsberry Pi Camera Module V3

The Raspberry Pi Camera V3 camera module (IMX708) is compatible with the Jetson Orin Nano developer kit from NVIDIA. RidgeRun developed a driver to fulfill the needs of the market, The driver has the next characteristics:

Figure 1: Raspberry Pi 3 Camera Module 3 connected to a NVIDIA® Jetson Orin Nano™


Element Description
Image sensor IMX708
Optical Size 1/2.43(7.4mm sensor diagonal)
Number of effective pixels Height = 4608, Width = 2592
Pixel Size 1.4μm × 1.4μm
Interface MIPI CSI-2 Interface
Shutter Type Rolling Shutter
Color Filter Color
Common Video Mode 1080p50*, 720p100*, 480p120*
Output Format RAW10
Binning Support Yes*
HDR Support Yes*
Auto-Focus (PDAF) Yes*
Minimun Focus Distance 5 cm
Controls Exposure, gain, HDR, etc *
Compatible hardware MIPI CSI-2 Interface
Interface Raspberry Pi, Orin Nano**


*These values come from common sensor documentation, but they are not currently supported by Ridgerun IMX708 Orin Nano driver. Contact us to start working with you in your driver specifications needs.
**The compatibility is restricted to 4608x2592@14.35 fps. To have access to more resolution modes or controls, contact us.


RidgeRun has been working intensively to port the IMX708 image sensor to the Jetson Orin Nano, as fast as possible due to the market needs. Right now, we are offering to the embedded software developer community a functional driver. The driver has the specification detailed below.

Resolution: 4608x2592@14.35fps
Output Format: RAW10
Binning Support: No*
HDR Support: No*
Auto-Focus (PDAF): No*
Controls: Exposure and gain*
Number of cameras streaming at the same time: 1**

*Contact us to develop this features according to your needs
**Contact us to work with you and extend the functionality to more attached cameras.



  Index