Balluff - BVS CA-BN Technical Documentation
Raspberry Pi Compute Module 4

General

The Raspberry Pi Compute Module 4 is a well priced platform regarding its performance.

CPUCortex-A72 @ 1500MHz
Cores4
RAM4 GB
USB2.0 Interfaces1
Ethernet10/100/1000 MBit
PCIe1 x 1 Lane
Gen 2.0
Note
The above table describes the specification of the 4GB version Raspberry Pi Compute Module 4.
The Raspberry Pi Compute Module 4 IO Board is used as carrier board for the following test.

Test Setup

Test setup
Note
Since the Raspberry Pi Compute Module 4 only supports single-lane PCIe 2.0, the edge of the slot needs to be cut off in order to insert the BVS CA-BN adapter board (like shown in the test setup above). Besides, the max. throughput of the device is limited to < 400MB/s due to the 1x PCIe lane width. For Raspberry Pi OS (64-bit) on the Raspberry Pi Compute Module 4, please make sure that the Kernel version is >=5.10.11.

Additional Settings

In order for the system's X Server not to auto-detect the BVS CA-BN as a GPU, the following configuration has to be adapted:

  1. Create a directory /etc/X11/xorg.conf.d.
  2. Create a file named 10-force_no_auto.conf under the directory /etc/X11/xorg.conf.d.
  3. Added the following content to the file:
    Section "ServerFlags"
            Option "AutoAddGPU" "false"
    EndSection
    

Benchmarks

The following tests have been performed using different de-Bayering scenarios to achieve the max. FPS while maintaining 0 lost images. The CPU load during the acquisition is also documented below.

Scenarios that have been tested are listed as follows:

  1. When de-Bayering is carried out on the camera: The camera delivers RGB8 image data to the host system. This setting results in a lower CPU load but a lower frame rate.
  2. When de-Bayering is carried out on the host system: The camera delivers Bayer8 image data to the host system. The Bayer8 image data then get de-Bayered to RGB8 format on the host system. This setting results in a higher frame rate but a higher CPU load as well.
  3. When no de-Bayering is performed: The camera delivers Bayer8 image data to the host system. No de-Bayering is performed. This settings results in a lower CPU load and a higher frame rate. The behavior is identical to monochrome cameras.
CameraResolutionPixel FormatFrame Rate [Frames/s]Bandwidth [MB/s]CPU Load With Image DisplayCPU Load Without Image Display
CA-BN2-0051ZC2464 x 2056RGB8 (on camera) → RGB8 (on host)24.70375.47~8%~4%

CameraResolutionPixel FormatFrame Rate [Frames/s]Bandwidth [MB/s]CPU Load With Image DisplayCPU Load Without Image Display
CA-BN2-0051ZC2464 x 2056BayerRG8 (on camera) → RGB8 (on host)56.90288.29~72%~67%

CameraResolutionPixel FormatFrame Rate [Frames/s]Bandwidth [MB/s]CPU Load With Image DisplayCPU Load Without Image Display
CA-BN2-0051ZC2464 x 2056BayerRG8 (on camera) → BayerRG8/Raw (on host)74.20375.94~14%~8%
Note
Since performing De-Bayering on the host (e.g. scenario 2) requires a lot more CPU processing power, the gross transmission bandwidth (i.e. DeviceLinkThroughput) has been limited to 330MB/s to avoid frame loss during acquisition.