Line 1: |
Line 1: |
| [[CS-MIPI-IMX307 for Jetson Nano/zh|查看中文]] | | [[CS-MIPI-IMX307 for Jetson Nano/zh|查看中文]] |
| | | |
− | <big><big><big><big>How to use CS-MIPI-IMX307 camera module on NVIDIA Jetson Nano</big></big></big></big> | + | <big><big><big><big>How to use CS-MIPI-X camera module on NVIDIA Jetson Nano</big></big></big></big> |
| ===Overview=== | | ===Overview=== |
− | This guide shows how to connect CS-MIPI-IMX307 to Jetson Nano.Jetson SDK Version is(Jetpack4.2.2,L4T r32.2.1)and(Jetpack4.3,L4Tr32.3.1).. We provide two ways to do so: '''Prebuilt Binaries''' or '''Source Code. Yes, It's Open Source!''' | + | This guide shows how to connect CS-MIPI-X to Jetson Nano.Jetson SDK Version is(Jetpack4.2.2,L4T r32.2.1)and(Jetpack4.3,L4Tr32.3.1).. We provide two ways to do so: '''Prebuilt Binaries''' or '''Source Code. Yes, It's Open Source!''' |
| | | |
− | CS-MIPI-IMX307 is STARVIS camera module with ISP functions build in. It output UYVY data using MIPI-CSI2,1080p@30fps mode, 720p_crop@60fps mode and VGA@130fps. We provide '''V4L2 interface''' for video streaming apps , and '''Video Control Toolkits (which is Shell Script)''' to control the camera module directly. | + | CS-MIPI-IMX307 is STARVIS camera module with ISP functions build in. It output UYVY data using MIPI-CSI2,1080p@30fps mode, 720p_crop@60fps mode and VGA@130fps. |
| + | |
| + | CS-MIPI-SC132 is global shutter camera module with ISP functions build in. It output UYVY data using MIPI-CSI2,support mulity video format and trigger mode. |
| + | |
| + | We provide '''V4L2 interface''' for video streaming apps , and '''Video Control Toolkits (which is Shell Script)''' to control the camera module directly. |
| | | |
| The new version of Jetson Nano (B01) is supported. | | The new version of Jetson Nano (B01) is supported. |
| ===Hardware Setup=== | | ===Hardware Setup=== |
− | Jetson Nano's CSI2 interface is compatible with CS-MIPI-IMX307. In addition,It need a 5V power. | + | Jetson Nano's CSI2 interface is compatible with CS-MIPI-X. It support 5V power or 3.3V power mode. [[Power supply mode switching|power switching]]. |
| [[File:Cs mipi imx307 jetson nao.JPG|alt=|center|thumb|600x600px|Connect CS-MIPI-IMX307 to Jetson Nano]] | | [[File:Cs mipi imx307 jetson nao.JPG|alt=|center|thumb|600x600px|Connect CS-MIPI-IMX307 to Jetson Nano]] |
| [[File:Jetson nano pwr connect.jpg|center|thumb|600x600px|Jetson Nano power wire|alt=]] | | [[File:Jetson nano pwr connect.jpg|center|thumb|600x600px|Jetson Nano power wire|alt=]] |
Line 124: |
Line 128: |
| | | |
| <code>sudo cp Image $L4T_DIR/kernel/ -f</code> | | <code>sudo cp Image $L4T_DIR/kernel/ -f</code> |
| + | |
| + | * CS-MIPI-IMX307 |
| | | |
| <code>sudo cp $RELEASE_PACK_DIR/Nano/JetPack_4.3_Linux_P3448/dts\ dtb/CS-MIPI-IMX307/tegra210-p3448-0000-p3449-0000-a02.dtb $L4T_DIR/kernel/dtb/ -f</code> | | <code>sudo cp $RELEASE_PACK_DIR/Nano/JetPack_4.3_Linux_P3448/dts\ dtb/CS-MIPI-IMX307/tegra210-p3448-0000-p3449-0000-a02.dtb $L4T_DIR/kernel/dtb/ -f</code> |
| | | |
| <code>sudo cp $RELEASE_PACK_DIR/Nano/JetPack_4.3_Linux_P3448/dts\ dtb/CS-MIPI-IMX307/tegra210-p3448-0000-p3449-0000-b00.dtb $L4T_DIR/kernel/dtb/ -f</code> | | <code>sudo cp $RELEASE_PACK_DIR/Nano/JetPack_4.3_Linux_P3448/dts\ dtb/CS-MIPI-IMX307/tegra210-p3448-0000-p3449-0000-b00.dtb $L4T_DIR/kernel/dtb/ -f</code> |
| + | |
| + | * CS-MIPI-SC132 |
| + | |
| + | <code>sudo cp $RELEASE_PACK_DIR/Nano/JetPack_4.3_Linux_P3448/dts\ dtb/CS-MIPI-SC132/tegra210-p3448-0000-p3449-0000-a02.dtb $L4T_DIR/kernel/dtb/ -f</code> |
| + | |
| + | <code>sudo cp $RELEASE_PACK_DIR/Nano/JetPack_4.3_Linux_P3448/dts\ dtb/CS-MIPI-SC132/tegra210-p3448-0000-p3449-0000-b00.dtb $L4T_DIR/kernel/dtb/ -f</code> |
| | | |
| <code>cd $L4T_DIR</code> | | <code>cd $L4T_DIR</code> |
Line 170: |
Line 182: |
| *patch code | | *patch code |
| | | |
− | <code>cp $RELEASE_PACK_DIR/drivers_source/cs_imx307\ veye327/* $NVIDIA_PATH/drivers/media/i2c/</code> | + | <code>cp $RELEASE_PACK_DIR/drivers_source/cam_drv_src/* $NVIDIA_PATH/drivers/media/i2c/</code> |
| | | |
| ''- r32.2.1'' | | ''- r32.2.1'' |
| | | |
− | <code>cp $RELEASE_PACK_DIR/drivers_source/kernel_csimx307veye327_config_32.2.1 $L4T_DIR/sources/kernel/kernel-4.9/arch/arm64/configs/tegra_csimx307veye327_defconfig</code> | + | <code>cp $RELEASE_PACK_DIR/drivers_source/kernel_veyecam_config_32.2.1 $L4T_DIR/sources/kernel/kernel-4.9/arch/arm64/configs/tegra_veyecam_defconfig</code> |
| | | |
| ''- r32.3.1'' | | ''- r32.3.1'' |
| | | |
− | <code>cp $RELEASE_PACK_DIR/drivers_source/kernel_csimx307veye327_config_32.3.1 $L4T_DIR/sources/kernel/kernel-4.9/arch/arm64/configs/tegra_csimx307veye327_defconfig</code> | + | <code>cp $RELEASE_PACK_DIR/drivers_source/kernel_veyecam_config_32.3.1 $L4T_DIR/sources/kernel/kernel-4.9/arch/arm64/configs/tegra_veyecam_defconfig</code> |
| | | |
| *build | | *build |
Line 184: |
Line 196: |
| <code>cd $L4T_DIR/sources/kernel/kernel-4.9/</code> | | <code>cd $L4T_DIR/sources/kernel/kernel-4.9/</code> |
| | | |
− | <code>make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_csimx307veye327_defconfig</code> | + | <code>make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_veyecam_defconfig</code> |
| | | |
| <code>make ARCH=arm64 O=$TEGRA_KERNEL_OUT Image -j4</code> | | <code>make ARCH=arm64 O=$TEGRA_KERNEL_OUT Image -j4</code> |
Line 206: |
Line 218: |
| | | |
| <code>cp $RELEASE_PACK_DIR/Nano/JetPack_4.3_Linux_P3448/dts\ dtb/common/t210/* -r $NANO_DTS_PATH/</code> | | <code>cp $RELEASE_PACK_DIR/Nano/JetPack_4.3_Linux_P3448/dts\ dtb/common/t210/* -r $NANO_DTS_PATH/</code> |
| + | |
| + | * CS-MIPI-IMX307 |
| | | |
| <code>cp $RELEASE_PACK_DIR/Nano/JetPack_4.3_Linux_P3448/dts\ dtb/CS-MIPI-IMX307/tegra210-porg-plugin-manager.dtsi -r $NANO_DTS_PATH/porg/kernel-dts/porg-plugin-manager</code> | | <code>cp $RELEASE_PACK_DIR/Nano/JetPack_4.3_Linux_P3448/dts\ dtb/CS-MIPI-IMX307/tegra210-porg-plugin-manager.dtsi -r $NANO_DTS_PATH/porg/kernel-dts/porg-plugin-manager</code> |
| + | |
| + | * CS-MIPI-SC132 |
| + | |
| + | <code>cp $RELEASE_PACK_DIR/Nano/JetPack_4.3_Linux_P3448/dts\ dtb/CS-MIPI-SC132/tegra210-porg-plugin-manager.dtsi -r $NANO_DTS_PATH/porg/kernel-dts/porg-plugin-manager</code> |
| | | |
| *build | | *build |
Line 242: |
Line 260: |
| <code>GStreamer 1.14.4</code> | | <code>GStreamer 1.14.4</code> |
| | | |
− | Note: Make sure that CS-MIPI-IMX307 is connected and the required driversare loaded. | + | Note: Make sure that CS-MIPI-X is connected and the required driversare loaded. |
| | | |
− | During booting, the module drivers for CS-MIPI-IMX307 will be loaded automatically in the Jetson Nano™ development kit. | + | During booting, the module drivers for CS-MIPI-X will be loaded automatically in the Jetson Nano™ development kit. |
| | | |
| 2. Run the following command to confirm whether the camera is initialized. | | 2. Run the following command to confirm whether the camera is initialized. |
| | | |
− | <code>dmesg | grep csx307</code>
| + | *For CS-MIPI-IMX307 |
| | | |
− | The output message appears as shown below. | + | <code>dmesg | grep csx307</code> |
| + | |
| + | The output message appears as shown below.: |
| + | |
| + | <code>Detected CS307 sensor</code> |
| + | |
| + | <code>subdev csimx307 X-003b bound</code> |
| + | |
| + | *For CS-MIPI-SC132 |
| + | |
| + | <code>dmesg | grep cssc132</code> |
| | | |
− | <code>subdev csx307 6/7/8-003b bound</code>
| + | The output message appears as shown below.: |
| | | |
− | The output message indicates that the camera is initialized properly.
| + | <code>subdev cssc132 X-003b bound</code> |
| | | |
− | 3. Run the following command to check the presence of video node.
| + | *Run the following command to check the presence of video node. |
| | | |
− | <u><code>ls /dev/video*</code></u>
| + | <code>ls /dev/video*</code> |
| | | |
| The output message appears as shown below. | | The output message appears as shown below. |
Line 273: |
Line 301: |
| | | |
| <code>gst-launch-1.0 v4l2src ! "video/x-raw,format=(string)UYVY, width=(int)1280, height=(int)720, framerate=(fraction)60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)I420" ! nvoverlaysink sync=false</code> | | <code>gst-launch-1.0 v4l2src ! "video/x-raw,format=(string)UYVY, width=(int)1280, height=(int)720, framerate=(fraction)60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)I420" ! nvoverlaysink sync=false</code> |
| + | |
| + | *Preview 1280*1080@45 (CS-MIPI-SC132,HW accelerated) |
| + | |
| + | <code>gst-launch-1.0 v4l2src ! "video/x-raw,format=(string)UYVY, width=(int)1280, height=(int)1080, framerate=(fraction)45/1" ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)I420" ! nvoverlaysink sync=false</code> |
| | | |
| *Preview 640*480@130fps(HW accelerated) | | *Preview 640*480@130fps(HW accelerated) |
Line 310: |
Line 342: |
| <code>cd $RELEASE_PACK_DIR/i2c_cmd/bin</code> | | <code>cd $RELEASE_PACK_DIR/i2c_cmd/bin</code> |
| | | |
− | Video Control Toolkits Manual : [[CS-MIPI-X i2c|CS-MIPI-IMX307 i2c]] | + | Video Control Toolkits Manual : [[CS-MIPI-X i2c|CS-MIPI-X i2c]] |
| ===Others=== | | ===Others=== |
| This article and the source code are still in the process of improving. If you have any suggestions for improvement, you are welcome to email xumm#csoneplus.com. | | This article and the source code are still in the process of improving. If you have any suggestions for improvement, you are welcome to email xumm#csoneplus.com. |
| | | |
| <br /> | | <br /> |