Showing results for 
Search instead for 
Did you mean: 

Knowledge Base Articles

Using Cypress CX3 Based USB 3 Camera Kits with Raspberry Pi 4 - KBA229301


Using Cypress CX3 Based USB 3 Camera Kits with Raspberry Pi 4 - KBA229301

Version: **

Translation - Japanese: Raspberry Pi 4でCypress CX3ベースのUSB 3カメラキットの使用 - KBA229301 - Community Translated (JA)

How can Cypress CX3 based USB 3 camera kits be used with Raspberry Pi 4?

Raspberry Pi 4 added USB 3 support for two onboard USB 3 ports. Hence, Raspberry Pi 4 can now support all Cypress USB 3 camera kits. The CX3 reference designs were tested with Raspberry Pi 4 and this Knowledge Base Article (KBA) explains the steps to use Raspberry Pi 4 to stream video with CX3 USB Video Class (UVC) camera kits.

Figure 1. Raspberry Pi 4


Step 1.
See Setting up your Raspberry Pi to set up Raspberry Pi 4. You can use the default Raspbian set up. In the test, a CamLink 4K HDMI RX to USB 3 Capture Dongle was used to connect the HDMI output of Raspberry Pi 4 to the USB 3 port of the PC. You will need a micro-HDMI to HDMI Cable to connect Raspberry Pi to the CamLink Dongle. Now, use any UVC host application on the PC to view the Raspberry Pi 4 display output on the PC (see Figure 2). Alternatively, you can use a HDMI monitor to act as the display from Raspberry Pi.

Figure 2. Setting up Hardware


Step 2.

Connect the Cypress CX3 USB 3 camera kit to the USB 3 port of Raspberry Pi. Video streaming was tested on the following Cypress Reference Designs with the same results:

You can follow Step 3 to Step 7 to stream video from any Cypress CX3/FX3 based UVC camera kits.

Step 3.
From the Raspbian menu, follow the path Accessories > Terminal to open a terminal.

Figure 3. Opening Terminal


Step 4.

Verify the kit enumeration status by checking dmesg output on the terminal (see Figure 4). You can observe the camera enumerating as a USB 3 device named CX3-UVC.

Figure 4. Checking Enumeration Status


Step 5.

Check the list of connected devices using the v4l2-ctl --list-devices command. In case of CX3-UVC, select the /dev/video0 device for streaming.

Figure 5. Checking Connected Devices


Step 6.
Check the list of supported video formats and resolutions using the v4l2-ctl --list-formats-ext command.

Figure 6. Checking Supported Resolutions


Step 7.
Use the vlc v4l2:///dev/video0:width=640:height=480 command to start video streaming from the camera using VLC player with the v4l2 driver.

Figure 7. Video Streaming using VLC Player


You can choose one of the supported resolution and repeat Step 7 to start streaming that resolution.

For the test, a 640 x 480 resolution was chosen because a 1 GB RAM version of the Raspberry Pi 4 was used. It was noticed that Raspberry Pi froze while streaming higher resolutions. However, the performance should be better with a higher RAM version (2 GB or 4 GB) of the Raspberry Pi.

You can use the v4l2 commands to get information on the supported camera controls. For instance: v4l2-ctl --list-ctls or v4l2-ctl -l.

Figure 8. Camera Controls List


Get more information on the usage of the v4l2-ctl command here.

Version history
Revision #:
1 of 1
Last update:
‎Dec 19, 2019 04:29 AM
Updated by: