Balluff - BVS CA-GX0 / BVS CA-GX2 Technical Documentation
Raspberry Pi 4

General

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

CPUCortex-A72 @ 1500MHz
Cores4
RAM1/2/4/8 GB
USB2.0 Interfaces2
USB3.0 Interfaces2
Ethernet10/100/1000 MBit
Note
For the following benchmark the 4GB version of the Raspberry Pi 4 with Raspbian OS has been used.

Test Setup

Additional Settings

Increase the socket buffer size

It is recommended to increase the network socket receive and send buffer size to 16MB. These values can be set permanently in /etc/sysctl.d/62-buffers-performance.conf:

SettingValueDescription
net.core.wmem_max16777216Maximum memory size of a socket buffer for sending in Bytes
net.core.rmem_max16777216Maximum memory size of a socket buffer for receiving in Bytes
net.core.udp_mem10240, 87380, 16777216Minimum, Default and Maximum memory size of a UDP socket buffer for receiving and sending data in bytes
net.core.netdev_max_backlog10000Maximum number of packets which can be buffered if the Kernel does not manage to process them as fast as they are received
Note
If /etc/sysctl.d/62-buffers-performance.conf doesn't exist beforehand, create one.
Refer to Network Performance Settings for more information.

Increase MTU

If possible, it is recommended to increase the MTU of the network card to at least 8000 bytes to enable the use of jumbo frames.

SettingValue
MTU8000 Byte

Please refer to Network Performance Settings to learn about how to set this value temporarily or permanently.

Note
All tests using network (GigE Vision™) device have been done using the default MTU value of 1500 Bytes. This limitation is caused by the Raspberry Pi 4's default Kernel supporting MTU value only up to 1500 Bytes. There might be the possibility to compile a custom Kernel to enable the support of lager MTUs but the unmodified Kernel was used for testing.

Benchmarks

The following scenarios have been tested:

  1. 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.
  2. 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.
Note
For the internal NIC there is no support for MTUs larger than 1500 Bytes in the standard Kernel as it seems (see above).