Changes

Jump to navigation Jump to search
no edit summary
Line 1: Line 1: −
= How to use VEYE and CS series cameras on Firefly's RK35XX board (Ubuntu) =
+
'''<big>How to use VEYE and CS series cameras on Firefly's RK35XX board</big>'''
 +
 
 +
[[VEYE CS Camera on Firfly Boards/zh|查看中文]]
    
=== Overview ===
 
=== Overview ===
 +
VEYE series and CS series cameras are the video streaming mode MIPI cameras we designed. This article takes Firefly's ROC-RK3566-PC and ROC-RK3588S-PC board as an example to introduce how to connect VEYE and CS series cameras to RK3566/RK3568/RK3588 system.
 +
 +
We provide drivers for both Linux(Ubuntu) and Android.
 +
 +
==== Camera Module List ====
 +
{| class="wikitable"
 +
!Series
 +
!Model
 +
!Status
 +
|-
 +
|VEYE Series
 +
|VEYE-MIPI-IMX327S
 +
|Done
 +
|-
 +
|VEYE Series
 +
|VEYE-MIPI-IMX462
 +
|Done
 +
|-
 +
|VEYE Series
 +
|VEYE-MIPI-IMX385
 +
|Done
 +
|}
 +
In addition, the driver for the Fpdlink connection mode has been finished on the Ubuntu system.
    
=== Hardware Setup ===
 
=== Hardware Setup ===
 +
VEYE series and CS series cameras are provided with Raspberry Pi compatible 15Pin FFC connector. An [[ADP-Tfirefly]] adapter board is required to adapt to the ROC-RK35xx-PC board.
   −
=== Upgrade Firefly Ubuntu system ===
+
==== Connection of camera and ADP-Tfirefly ====
 +
The two are connected using 1.0 mm pitch*15P FFC cable with opposite direction. The cable must be inserted with the silver contacts facing outside.
 +
[[File:VEYE-MIPI-327S-ADP-Tfirefly 06.jpg|link=http://wiki.veye.cc/index.php/File:VEYE-MIPI-327S-ADP-Tfirefly%2006.jpg|center|thumb|800x800px|VEYE camera connect to ADP-Tfirefly]]
   −
=== Check system status ===
+
==== Connection of ADP-Tfirefly and Firefly Board ====
 +
The two are connected using 0.5 mm pitch*30P FFC cable with same direction. The cable must be inserted with the silver contacts facing inside.
 +
[[File:VEYE-MIPI-327S-ADP-Tfirefly 05.jpg|link=http://wiki.veye.cc/index.php/File:VEYE-MIPI-327S-ADP-Tfirefly%2005.jpg|center|thumb|800x800px|ADP-Tfirefly connect to Firefly board]]
   −
=== Samples ===
+
==== Overall connection ====
 +
[[File:VEYE-MIPI-327S-ADP-Tfirefly 04.jpg|link=http://wiki.veye.cc/index.php/File:VEYE-MIPI-327S-ADP-Tfirefly%2004.jpg|center|thumb|800x800px|Firefly Board and VEYE camera overall]]
   −
==== v4l2-ctl ====
+
==== FPD-Link III Camera Connection Diagram ====
 +
[[File:FPDLINK Camera to RK3588S.png|center|thumb|800x800px|FPDLINK Camera to RK3588S]]
 +
<br />
 +
=== Introduction to github repositories ===
 +
https://github.com/veyeimaging/rk35xx_firefly
   −
==== yavta ====
+
includes:
   −
==== gstreamer ====
+
* driver source code
 +
* i2c toolkits
 +
* application demo
   −
==== Import to OpenCV ====
+
In addition, a compiled linux kernel installation package and Android image is provided in the [https://github.com/veyeimaging/rk356x_firefly/releases releases].
    +
=== Ubuntu ===
 +
 +
==== Upgrade Firefly Ubuntu system(RK356x) ====
 +
 +
===== Overview =====
 +
This section describes how to update the RK35xx system to support our camera modules.
 +
 +
For the kernel version 4.19, we provide a deb installation package that can be installed directly.
 +
 +
For the kernel version 5.10, we provide a burning image.
 +
 +
For versions where no installer is provided, you will need to refer to later chapters to compile from the driver source code.
 +
 +
Although we are now using Ubuntu system as an example to introduce, other Linux distributions can also refer to this article.
 +
 +
===== kernel version 5.10 =====
 +
For the ROC-RK3588S-PC, we have provided an image of the release system.
 +
 +
Download the latest released image file corresponding to the camera model you are using from https://github.com/veyeimaging/rk35xx_firefly/releases/ .
 +
 +
Refer to the [https://wiki.t-firefly.com/en/ROC-RK3566-PC/03-upgrade_firmware.html Firefly documentation] to burn in a standard system.
 +
 +
===== kernel version 4.19 =====
 +
 +
======Burn Firefly standard system======
 +
Refer to the [https://wiki.t-firefly.com/en/ROC-RK3566-PC/01-bootmode.html Firefly documentation] to burn in a standard system.
 +
======Using prebuilt Image and dtb file======
 +
Using the compiled debain installation package
 +
 +
On the RK35xx board,
 +
 +
Download the latest rk356x_firefly_ubuntu.tar.gz from https://github.com/veyeimaging/rk35xx_firefly/releases/ .
 +
 +
<code>tar -xavf rk356x_firefly.tar.gz</code>
 +
 +
<code>cd rk356x_firefly/released_images/ROC-RK3566-PC/ubuntu/</code>
 +
 +
<code>sudo dpkg -i linux-image-4.19.232_4.19.232-21_arm64.deb</code>
 +
 +
If the version does not match, it needs to be compiled from the source code.
 +
 +
==== Upgrade Firefly Ubuntu system(RK358x) ====
 +
For the ROC-RK3588S-PC, we have provided an image of the release system.
 +
 +
Download the latest released image file corresponding to the camera model you are using from https://github.com/veyeimaging/rk35xx_firefly/releases/ .
 +
 +
Refer to the [https://wiki.t-firefly.com/en/ROC-RK3588S-PC/upgrade_bootmode.html Firefly documentation] to burn in a standard system.
 +
 +
==== Check system status ====
 +
Run the following command to confirm whether the camera is probed.
 +
 +
* VEYE-MIPI-XXX
 +
 +
<code>dmesg | grep veye</code>
 +
 +
The output message appears as shown below:
 +
 +
<code>veyecam2m 4-003b:  camera id is veyecam2m</code>
 +
 +
<code>veyecam2m 4-003b: sensor is IMX327</code>
 +
 +
* Run the following command to check the presence of video node.
 +
 +
<code>ls /dev/video0</code>
 +
 +
The output message appears as shown below.
 +
 +
<code>video0</code>
 +
 +
For ROC-RK3566-PC, the camera is connected to i2c-4, for ROC-RK3588S-PC to i2c-7.
 +
 +
==== Application examples ====
 +
 +
===== v4l2-ctl =====
 +
 +
====== Install v4l2-utils ======
 +
<code>sudo apt-get install v4l-utils</code>
 +
 +
====== List the data formats supported by the camera ======
 +
<code>v4l2-ctl --list-formats-ext</code>
 +
 +
====== Snap YUV picture ======
 +
<code>v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat='NV12' --stream-mmap --stream-count=100 --stream-to=nv12-1920x1080.yuv</code>
 +
 +
For RK3566, also:
 +
 +
<code>v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap --stream-count=1 --stream-to=uyvy-1920x1080.yuv</code>
 +
 +
Play YUV picture
 +
 +
<code>ffplay -f rawvideo -video_size 1920x1080 -pix_fmt nv12 nv12-1920x1080.yuv</code>
 +
 +
====== Check frame rate ======
 +
<code>v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap --stream-count=-1 --stream-to=/dev/null</code>
 +
 +
===== yavta =====
 +
<code>git clone <nowiki>https://github.com/veyeimaging/yavta.git</nowiki></code>
 +
 +
<code>cd yavta;make</code>
 +
 +
<code>./yavta -c1 -Fnv12-1920x1080.yuv --skip 0 -f NV12 -s 1920x1080 /dev/video0</code>
 +
 +
===== gstreamer =====
 +
We provide several gstreamer routines that implement the preview, capture, and video recording functions. See the [https://github.com/veyeimaging/rk356x_firefly/tree/main/linux/samples samples] directory on github for details.
 +
 +
===== Import to OpenCV =====
 +
First install OpenCV:
 +
 +
<code>sudo apt install python3-opencv</code>
 +
 +
We provide several routines to import camera data into opencv. See the [https://github.com/veyeimaging/rk356x_firefly/tree/main/linux/samples samples] directory on github for details.
 +
 +
In addition, this [https://wiki.t-firefly.com/en/Firefly-Linux-Guide/demo_OpenCV_support.html page] from Firefly has some reference value.
 +
==== Compile drivers and dtb from source code ====
 +
 +
* RK356x
 +
 +
https://github.com/veyeimaging/rk35xx_firefly/tree/main/linux/drivers/rk356x
 +
 +
* RK358x
 +
 +
https://github.com/veyeimaging/rk35xx_firefly/tree/main/linux/drivers/rk358x
 
=== i2c script for parameter configuration ===
 
=== i2c script for parameter configuration ===
 +
Because of the high degree of freedom of our camera parameters, we do not use V4L2 parameters to control, but use scripts to configure parameters.
 +
 +
https://github.com/veyeimaging/rk35xx_firefly/tree/main/i2c_cmd
 +
 +
using -b option to identify which bus you want to use.
 +
 +
*VEYE series
 +
 +
Video Control Toolkits Manual :[[VEYE-MIPI-290/327 i2c/|VEYE-MIPI-327 I2C]]
 +
 +
*CS series
 +
 +
Video Control Toolkits Manual :[[CS-MIPI-X i2c|CS-MIPI-X I2C]]
 +
 +
=== Android ===
 +
 +
==== Update Android system ====
 +
 +
* ROC-RK3566-PC
 +
 +
Download the latest rk356x_firefly_android.tar.gz from https://github.com/veyeimaging/rk35xx_firefly/releases/
 +
 +
*ROC-RK3588S-PC
 +
 +
Download the latest rk358x_firefly_android.tar.gz from https://github.com/veyeimaging/rk35xx_firefly/releases/
 +
 +
Burn the system refer to firefly's documentation.
 +
 +
==== Check system status ====
 +
Login system via ADB, then run the following command to confirm whether the camera is probed.
 +
 +
* VEYE-MIPI-XXX
 +
 +
<code>dmesg | grep veye</code>
 +
 +
The output message appears as shown below:
 +
 +
<code>veyecam2m 4-003b:  camera id is veyecam2m</code>
 +
 +
<code>veyecam2m 4-003b: sensor is IMX327</code>
 +
 +
* Run the following command to check the presence of video node.
 +
 +
<code>ls /dev/video0</code>
 +
 +
The output message appears as shown below.
 +
 +
<code>video0</code>
 +
 +
The camera can be seen connected to the i2c-4.
 +
 +
==== Application example ====
 +
The camera can be opened using the camera program that comes with the system.
 +
 +
====Compile system from source code====
 +
 +
* RK356x
 +
 +
https://github.com/veyeimaging/rk35xx_firefly/tree/main/android/rk356x/drivers
 +
 +
* RK358x
 +
 +
https://github.com/veyeimaging/rk35xx_firefly/tree/main/android/rk358x/drivers
   −
=== Compile drivers and dtb from source code ===
+
=== Known issues ===
 +
 
 +
# The VICAP module of RK3588 does not support outputting the UYVY format, so please use the NV12 format instead.
    
=== References ===
 
=== References ===
Line 28: Line 252:     
https://wiki.t-firefly.com/en/ROC-RK3566-PC/
 
https://wiki.t-firefly.com/en/ROC-RK3566-PC/
 +
 +
*ROC-RK3588S-PC Manual
 +
 +
https://wiki.t-firefly.com/en/ROC-RK3588S-PC/
    
* Firefly Linux User Guide
 
* Firefly Linux User Guide
Line 34: Line 262:     
=== Document History ===
 
=== Document History ===
 +
 +
* 2024-04-17
 +
 +
Support kernel v5.10 on RK3566.
 +
 +
* 2023-05-22
 +
 +
Support Fpdlink-III on ubuntu system.
 +
 +
*2022-12-28
 +
 +
Add support for RK358x.
 +
 +
* 2022-12-06
 +
 +
Support Android system.
    
* 2022-10-22
 
* 2022-10-22
    
Release 1st version.
 
Release 1st version.

Navigation menu