Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

Knowledge Base Articles

CX3 Firmware: Frequently Asked Questions - KBA91297

Not applicable

CX3 Firmware: Frequently Asked Questions - KBA91297

Version: *D

1. Question
Where can I find the CX3 firmware source code for example projects?

You can find the CX3 firmware example projects as part of the FX3 SDK 1.3.1 or later release. These projects are in the following folder when FX3 SDK is installed in the default path:

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\<SDK Version>\firmware\cx3_examples.

These example firmware projects support OmniVision® OV5640 and Aptina® AS0260 image sensors. Contact the respective image sensor manufacturers to get access to image sensor datasheet, register description, and configuration data.

2. Question
What are the color formats supported by CX3?

CX3 can support all the image data formats supported by Mobile Industry Processor Interface (MIPI) Camera Serial Interface (CSI)-2 specifications that is up to 24bit wide. For example, the RAW, YUV, and RGB data formats are supported. For a custom format stream like JPEG or NV12, 16bit wide streams can be transported on the 16bit format and 24bit stream can be transported by treating them as a RGB888 format.

3. Question
Can CX3 convert RAW images to RGB or YUV formats?

No, CX3 cannot do any image format conversion. To convert image formats, an Image Signal Processor (ISP) or FPGA is required. CX3 does not have a built-in ISP. You should use an external ISP to convert or compress image data.

4. Question
Can CX3 take audio inputs over the I2S port?

CX3 does not have an I2S input port. However, it has a serial peripheral interface (SPI) master. Therefore, by using an external I2S-to-SPI bridge (for example, an FPGA), an audio input device that has an I2S port can be interfaced with CX3. CX3 also has an I2S output port to connect an audio output device with the I2S port.

5. Question
Does CX3 support boundary scan using the JTAG port?

No, CX3 does not support the boundary scan feature using the JTAG port. Therefore, no Boundary Scan Description Language (BSDL) model files are available for CX3. The JTAG port is provided only for debugging the Arm® processor code in CX3. The JTAG port of CX3 should not be connected to the JTAG chain in your board.

6. Question
What is the maximum resolution supported by CX3?

CX3 can support up to 2.4 Gbps (300 MBps) throughput.

You should make sure that the throughput does not exceed 2.4 Gbps. The throughput can be determined by the formula given below.

Image throughput = bits per pixel × (horizontal resolution + horizontal blanking) × (vertical resolution + vertical blanking) × frames per second

For example, some of the resolution, frame rate, and color formats supported by CX3 are given below:

  • 1920 × 1080 (FHD), 30fps,60fps in YUV422 format
  • 1280 × 720p (HD), 60fps, 120fps in YUV422 format
  • 3840 × 2160 (uHD, 4k x 2k), 16fps in YUV422 format, 30fps in JPEG format with MJPEG 6:1 compression
  • 4096 × 2160 (4k native), 30fps in RAW8 format
  • 13MP , 10fps YUV422 format
  • 8MP, 16 fps YUV422 format

Contact Cypress technical support if you have more questions on color format and frame rate support.

7. Question
How do I build the CX3 RDK firmware example project supplied with the FX3 SDK?


  1. Download the FX3 SDK 1.3.1 or later from the webpage for FX3 SDK (http://www.cypress.com/?rID=57990) and install it.
  2. Open the Eclipse-based editor (EZ-USB® Suite). Click Start > All Programs > Cypress > EZ-USB FX3 SDK > Eclipse > EZ USB Suite.
  3. When prompted, create a new workspace, and assign it a workspace name.
  4. Within Eclipse, import the SDK project for CX3 into the current workspace as follows:
    1. Select File > Import.
    2. Select General > Existing Projects into Workspace and click Next.
    3. Set the Root Directory to the following values:
  • On 32-bit Windows: C:\Program Files\Cypress\EZ-USB FX3 SDK\<SDK Version>\firmware\cx3_examples
  • On 64-bit Windows: C:\Program Files(x86)\Cypress\EZ-USB FX3 SDK\<SDK Version>\firmware\cx3_examples
    1. From the projects listed in the Projects list, select the cycx3_uvc_ov5640 project, and select the option “Copy projects into workspace”. The project will be copied into the workspace and available in Eclipse.
  1. Set the build mode for the project as release.
  2. Build the project by selecting the arrow to the right of the Build icon (which looks like a hammer) in the toolbar and selecting Release.

After the project is built, the img file for download to the CX3 RDK will be available in the Release folder in the project in the Project Explorer.

8. Question
How do I program the CX3 firmware image to the SPI or I2C flash / EEPROM in CX3 RDK?


  1. Set the boot mode selection switch SW5 (located between the power switch and the reset button) to USB boot: This means that SW5.1 is ON, SW5.2 is on, and SW5.3 is off.
  2. Open Control Center from All Programs > Cypress > Cypress USB Suite > Control Center (Please note that .NET framework 3.5 or above needs to be installed in the system. Otherwise control center utility may not work)
  3. Reset the CX3 RDK. It is listed in the Control Center window.
  4. Click Program > FX3, and then select the SPI flash or I2C E2PROM option to download the firmware to the SPI flash or I2C EEPROM on the RDK.

A boot programmer firmware gets downloaded to the FX3 and it re-enumerates and opens a window allowing you to select the IMG file you want to download to the SPI flash or I2C EEPROM.

  1. Browse to the location of the img file and select it. Once the FW img is downloaded, a message is displayed at the bottom of the Control Center tool indicating that the operation was successful.
  2. Set the boot mode selection switch (SW5 as in step 1) to SPI boot or I2C boot based on to where you downloaded the FW. 
  3. For SPI boot, set switches to 1 to on, 2 to off, 3 to on.
  4. For I2C EEPROM boot set to 1 to off, 2 to on, 3 to off.
  5. Reset CX3 to make it boot from the flash.

See the CX3 RDK quick start guide for the switch location. Refer to the CX3 RDK schematic for the switch settings.

9. Question
What is the boot up time of CX3 when the firmware is stored in the SPI flash?

The boot up time is approximately 115 ms when CX3 boots from the SPI flash.

10. Question
How do I stream a RAW format image using CX3?

You can select the format as “RAW” (RAW8/RAW10/RAW12/RAW14) in the CX3 configuration tool and you can use the UVC player to display the RAW data in YUV format. However, the image will look green in color. This can be used for firmware development and testing.

For final product, you will need to write your own viewer that does de-mosaicing (RAW to RGB conversion) of the Bayer stream and then display it.

Depending on how you want to do this, you have a few options:

  1. Use UVC and write your own viewer on top of Microsoft's APIs. Here, you will transport a Bayer stream as a YUV/RGB stream.
  2. Use the Cypress™ driver (cyusb3.sys) and then write your viewer using the Cypress™ provided APIs. This will need vendor-specific descriptors.

Contact Technical Support to get an example firmware.

11. Question
Do you have an example project to stream the MJPEG video stream from image senor using CX3?

Yes. The MJPEG example firmware is available as part of FX3 SDK. Once you install the FX3 SDK, you can find the example project at the following directory:

  • On 32-bit Windows: C:\Program Files Cypress\EZ-USB FX3 SDK\<SDK Version>\firmware\uvc_examples
  • On 64-bit Windows: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\<SDK Version>\firmware\uvc_examples

If you are looking for a MJPEG firmware example with the OV5640 sensor, you should sign NDA with OmniVision and create a Technical Support case.

12. Question
Can CX3 support standard and extended UVC video controls?

Yes. CX3 can support standard as well as extended UVC controls.

For standard UVC video controls, see the CX3 RDK firmware. The UVC extension unit can be added in the CX3 firmware to support extended UVC controls such as getting firmware version and erasing flash. A host application is needed to communicate with the extension unit. The host application and the extension unit descriptor in the CX3 firmware must have a unique GUID.

Contact Cypress Technical Support to get more details on the UVC extension unit.

13. Question
What is the maximum CSI clock frequency that should be used per lane in the CX3 configuration utility?

CX3 supports up to 1 Gbps of data rate on each MIPI data lane, but the overall throughput is limited to 2.4 Gbps because of the 24bit GPIF interface in CX3, which is capable of 100 MHz per lane of GPIF interface.

The CSI clock setting in the CX3 configuration utility works in DDR mode, so, data is sampled on both the clock edges.

Table 1 lists the maximum allowed CSI clock frequency based on the number of data lanes being used.

Number of Data Lanes

Maximum Data Rate per Lane

Maximum CSI Clock Frequency Allowed


1 Gbps

500 MHz


1 Gbps

500 MHz


800 Mbps

400 MHz


600 Mbps

300 MHz

Table 1. Maximum Allowed CSI Clock Frequency per Data Lanes


Note: The maximum supported bit rate for CX3 (CSI clock x number of mipi lanes) calculated using CSI clock include the blanking time also.

14. Question
Is streaming through CX3 possible with Android?

Yes, CX3 can enumerate and stream video as UVC Class device in Android host. InfineonTM do not provide any libraries on the android host side for application development. CX3 SDK example is tested in Android 6 and above and it works. The test was done on Android phone with Android 10 with the help of CameraFi and CameraFi2 applications and CX3 Denebola RDK to stream video.

15. Question
Is embedded data type supported by CX3?

Yes, CX3 supports embedded data type (0x12) as defined in MIPI CSI-2 specification. The following KBA lists all the data type IDs supported by CX3:


CX3 can send the embedded data to the host along with the video data. The host application should be modified in order to remove/extract the embedded data from the video data.

16. Question
Is there a troubleshooting guide available for video streaming using CX3?

Yes, there is a KBA for troubleshooting the video streaming using CX3. The link to the KBA is given below:


Version history
Revision #:
2 of 2
Last update:
‎Dec 21, 2021 12:09 AM
Updated by: