This is a mirror of our wiki article.
[toc]
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.
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. |
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.
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.
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.
includes:
- driver source code
- i2c toolkits
- application demo
In addition, a compiled linux kernel installation package and Android image is provided in the releases.
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.
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 Firefly documentation to burn in a standard system.
Refer to the Firefly documentation to burn in a standard system.
Using the compiled debain installation package
On the RK35xx board, Download the latest rk356x_firefly_ubuntu.tar.gz from https://github.com/veyeimaging/rk356x_firefly/releases/ .
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.
For the ROC-RK3588S-PC, we have provided an image of the release system. Download the latest rk358x_firefly_ubuntu.tar.gz from https://github.com/veyeimaging/rk356x_firefly/releases/ .
Refer to the Firefly documentation to burn in a standard system.
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
For ROC-RK3566-PC, the camera is connected to i2c-4, for ROC-RK3588S-PC to i2c-7.
sudo apt-get install v4l-utils
v4l2-ctl --list-formats-ext
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat='NV12' --stream-mmap --stream-count=100 --stream-to=nv12-1920x1080.yuv
For RK3566, also:
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap --stream-count=1 --stream-to=uyvy-1920x1080.yuv
Play YUV picture
ffplay -f rawvideo -video_size 1920x1080 -pix_fmt nv12 nv12-1920x1080.yuv
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap --stream-count=-1 --stream-to=/dev/null
git clone https://github.com/veyeimaging/yavta.git
cd yavta;make
./yavta -c1 -Fnv12-1920x1080.yuv --skip 0 -f NV12 -s 1920x1080 /dev/video0
We provide several gstreamer routines that implement the preview, capture, and video recording functions. See the samples directory on github for details.
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.
- RK356x
https://github.com/veyeimaging/rk35xx_firefly/tree/main/linux/drivers/rk356x
- RK358x
https://github.com/veyeimaging/rk35xx_firefly/tree/main/linux/drivers/rk358x
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/rk356x_firefly/tree/main/i2c_cmd
using -b option to identify which bus you want to use.
-
VEYE series Video Control Toolkits Manual :VEYE-MIPI-327 I2C
-
CS series Video Control Toolkits Manual :CS-MIPI-X I2C
Download the latest rk356x_firefly_android.tar.gz or rk358x_firefly_android.tar.gz from https://github.com/veyeimaging/rk35xx_firefly/releases/ . Burn the system refer to firefly's documentation.
Login system via ADB, then 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.
The camera can be opened using the camera program that comes with the system.
-
RK356x https://github.com/veyeimaging/rk35xx_firefly/tree/main/android/rk356x/drivers
-
RK358x https://github.com/veyeimaging/rk35xx_firefly/tree/main/android/rk358x/drivers
- The VICAP module of RK3588 does not support outputting the UYVY format, so please use the NV12 format instead.
- ROC-RK3566-PC Manual 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 https://wiki.t-firefly.com/en/Firefly-Linux-Guide/index.html
- 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 Release 1st version.