Difference between revisions of "VEYE CS Camera on Firfly Boards"

From wiki_veye
Jump to navigation Jump to search
Line 117: Line 117:
 
===== Check frame rate =====
 
===== 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>
 
<code>v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap --stream-count=-1 --stream-to=/dev/null</code>
<br />
+
 
 
==== yavta ====
 
==== yavta ====
 +
<code>git clone <nowiki>https://github.com/veyeimaging/yavta.git</nowiki></code>
 +
 +
<code>cd yavta;make</code>
 +
 +
<code>./yavta -c1 -Fuyvy-1920x1080.yuv --skip 0 -f UYVY -s 1920x1080 /dev/video0</code>
  
 
==== gstreamer ====
 
==== 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 ====
 
==== 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.
  
 
=== i2c script for parameter configuration ===
 
=== i2c script for parameter configuration ===

Revision as of 13:54, 22 November 2022

How to use VEYE and CS series cameras on Firefly's RK35XX board (Ubuntu)

1 Overview

VEYE series and CS series cameras are the video streaming mode MIPI cameras we designed. This article takes Firefly's ROC-RK3566-PC board as an example to introduce how to connect VEYE and CS series cameras to RK3566/RK3568/RK3588 system.

1.1 Camera Module List

Series Model Status
VEYE Series VEYE-MIPI-IMX327S Done
VEYE Series VEYE-MIPI-IMX462 Done
VEYE Series VEYE-MIPI-IMX385 Done

2 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-RK3566-PC board.

2.1 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.

VEYE camera connect to ADP-Tfirefly

2.2 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.

ADP-Tfirefly connect to Firefly board

2.3 Overall connection

Firefly Board and VEYE camera overall

3 Introduction to github repositories

https://github.com/veyeimaging/rk356x_firefly

includes:

  • driver source code
  • i2c toolkits
  • application demo

In addition, a compiled linux kernel installation package is provided in the releases.

4 Upgrade Firefly Ubuntu system

4.1 Overview

This section describes how to update the RK35xx system to support our camera modules.

For some versions, we provide a deb installer that can be installed directly. 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.

4.2 Burn Firefly standard system

Refer to the Firefly documentation to burn in a standard system.

4.3 Using prebuilt Image and dtb file

Using the compiled debain installation package

On the RK35xx board, execute :

wget https://github.com/veyeimaging/rk356x_firefly/releases/latest/download/rk356x_firefly.tar.gz

tar -xavf rk356x_firefly.tar.gz

cd cd rk356x_firefly/released_images/ROC-RK3566-PC/ubuntu/

sudo dpkg -i linux-image-4.19.232_4.19.232-21_arm64.deb

If the version does not match, it needs to be compiled from the source code.

5 Check system status

Run the following command to confirm whether the camera is probed.

  • VEYE-MIPI-XXX

dmesg | grep veye

The output message appears as shown below:

veyecam2m 4-003b:  camera id is veyecam2m

veyecam2m 4-003b: sensor is IMX327

  • Run the following command to check the presence of video node.

ls /dev/video0

The output message appears as shown below.

video0

The camera can be seen connected to the i2c-4.

6 Samples

6.1 v4l2-ctl

6.1.1 Install v4l2-utils

sudo apt-get install v4l-utils

6.1.2 List the data formats supported by the camera

v4l2-ctl --list-formats-ext

6.1.3 Snap YUV picture

v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap --stream-count=1 --stream-to=uyvy-1920x1080.yuv

v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat='NV12' --stream-mmap --stream-count=100 --stream-to=nv12-1920x1080.yuv

Play YUV picture

ffplay -f rawvideo -video_size 1920x1080 -pix_fmt nv12 nv12-1920x1080.yuv

6.1.4 Check frame rate

v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap --stream-count=-1 --stream-to=/dev/null

6.2 yavta

git clone https://github.com/veyeimaging/yavta.git

cd yavta;make

./yavta -c1 -Fuyvy-1920x1080.yuv --skip 0 -f UYVY -s 1920x1080 /dev/video0

6.3 gstreamer

We provide several gstreamer routines that implement the preview, capture, and video recording functions. See the samples directory on github for details.

6.4 Import to OpenCV

First install OpenCV:

sudo apt install python3-opencv

We provide several routines to import camera data into opencv. See the samples directory on github for details.

In addition, this page from Firefly has some reference value.

7 i2c script for parameter configuration

8 Compile drivers and dtb from source code

9 References

  • ROC-RK3566-PC Manual

https://wiki.t-firefly.com/en/ROC-RK3566-PC/

  • Firefly Linux User Guide

https://wiki.t-firefly.com/en/Firefly-Linux-Guide/index.html

10 Document History

  • 2022-10-22

Release 1st version.