• Support Home
  • Getting Started
    • Connecting Your Camera
    • 3rd Party Software Getting Started Guides
  • Tech Ref Manuals
    • Arena SDK Documentation
    • HTP003S – Helios2+ ToF 3D
    • HLT003S – Helios2 ToF 3D
    • HLS003S – Helios ToF 3D
    • HLF003S – Helios Flex ToF 3D
    • ATX245S – Atlas10 24.5 MP
    • ATX204S – Atlas10 20.4 MP
    • ATX162S – Atlas10 16.2 MP
    • ATX124S – Atlas10 12.3 MP
    • ATX081S – Atlas10 8.1 MP
    • ATX051S – Atlas10 5.0 MP
    • ATL314S – Atlas 31.4 MP
    • ATL196S – Atlas 19.6 MP
    • ATL168S – Atlas 16.8 MP
    • ATL120S – Atlas 12.3 MP
    • ATL089S – Atlas 8.9 MP
    • ATL071S – Atlas 7.1 MP
    • ATL050S – Atlas 5.0 MP
    • ATL028S – Atlas 2.8 MP
    • ATP200S – Atlas IP67 20 MP
    • ATP120S – Atlas IP67 12.3 MP
    • ATP089S -Atlas IP67 8.9 MP
    • ATP071S – Atlas IP67 7.1 MP
    • ATP028S – Atlas IP67 2.8 MP
    • TRI200S – Triton 20.0 MP
    • TRI120S – Triton 12.3 MP
    • TRI122S – Triton 12.2 MP
    • TRI089S – Triton 8.9 MP
    • TRI071S – Triton 7.1 MP
    • TRI064S – Triton 6.3 MP
    • TRI054S – Triton 5.4 MP
    • TRI050S-P/Q – Triton 5.0 MP Polarized
    • TRI050S – Triton 5.0 MP
    • TRI032S – Triton 3.2 MP
    • TRI028S – Triton 2.8 MP
    • TRI023S – Triton 2.3 MP
    • TRI016S – Triton 1.6 MP
    • TRI005S – Triton 0.5 MP
    • TRI004S – Triton 0.4 MP
    • TRI02KA – Triton 2K Line Scan
    • PHX200S – Phoenix 20.0 MP
    • PHX120S – Phoenix 12.3 MP
    • PHX122S – Phoenix 12.2 MP
    • PHX089S – Phoenix 8.9 MP
    • PHX064S – Phoenix 6.3 MP
    • PHX050S-P/Q – Phoenix 5.0 MP Polarized
    • PHX050S – Phoenix 5.0 MP
    • PHX032S – Phoenix 3.2 MP
    • PHX023S – Phoenix 2.3 MP
    • PHX016S – Phoenix 1.6 MP
    • PHX004S – Phoenix 0.4 MP
  • Application Notes
    • Bandwidth Sharing in Multi-Camera Systems
    • Combine Helios 3D Point Cloud with RGB Color
    • I2C Support on LUCID Cameras
    • Using GPIO on LUCID Cameras
    • Using PTP & Scheduled Action Commands
    • Helios2 And Triton Synchronization
    • Product Change Notifications (PCN)
  • Knowledge Base
  • Contact Support
  • Log In
  • Support Home
  • Getting Started
    • Connecting Your Camera
    • 3rd Party Software Getting Started Guides
  • Tech Ref Manuals
    • Arena SDK Documentation
    • HTP003S – Helios2+ ToF 3D
    • HLT003S – Helios2 ToF 3D
    • HLS003S – Helios ToF 3D
    • HLF003S – Helios Flex ToF 3D
    • ATX245S – Atlas10 24.5 MP
    • ATX204S – Atlas10 20.4 MP
    • ATX162S – Atlas10 16.2 MP
    • ATX124S – Atlas10 12.3 MP
    • ATX081S – Atlas10 8.1 MP
    • ATX051S – Atlas10 5.0 MP
    • ATL314S – Atlas 31.4 MP
    • ATL196S – Atlas 19.6 MP
    • ATL168S – Atlas 16.8 MP
    • ATL120S – Atlas 12.3 MP
    • ATL089S – Atlas 8.9 MP
    • ATL071S – Atlas 7.1 MP
    • ATL050S – Atlas 5.0 MP
    • ATL028S – Atlas 2.8 MP
    • ATP200S – Atlas IP67 20 MP
    • ATP120S – Atlas IP67 12.3 MP
    • ATP089S -Atlas IP67 8.9 MP
    • ATP071S – Atlas IP67 7.1 MP
    • ATP028S – Atlas IP67 2.8 MP
    • TRI200S – Triton 20.0 MP
    • TRI120S – Triton 12.3 MP
    • TRI122S – Triton 12.2 MP
    • TRI089S – Triton 8.9 MP
    • TRI071S – Triton 7.1 MP
    • TRI064S – Triton 6.3 MP
    • TRI054S – Triton 5.4 MP
    • TRI050S-P/Q – Triton 5.0 MP Polarized
    • TRI050S – Triton 5.0 MP
    • TRI032S – Triton 3.2 MP
    • TRI028S – Triton 2.8 MP
    • TRI023S – Triton 2.3 MP
    • TRI016S – Triton 1.6 MP
    • TRI005S – Triton 0.5 MP
    • TRI004S – Triton 0.4 MP
    • TRI02KA – Triton 2K Line Scan
    • PHX200S – Phoenix 20.0 MP
    • PHX120S – Phoenix 12.3 MP
    • PHX122S – Phoenix 12.2 MP
    • PHX089S – Phoenix 8.9 MP
    • PHX064S – Phoenix 6.3 MP
    • PHX050S-P/Q – Phoenix 5.0 MP Polarized
    • PHX050S – Phoenix 5.0 MP
    • PHX032S – Phoenix 3.2 MP
    • PHX023S – Phoenix 2.3 MP
    • PHX016S – Phoenix 1.6 MP
    • PHX004S – Phoenix 0.4 MP
  • Application Notes
    • Bandwidth Sharing in Multi-Camera Systems
    • Combine Helios 3D Point Cloud with RGB Color
    • I2C Support on LUCID Cameras
    • Using GPIO on LUCID Cameras
    • Using PTP & Scheduled Action Commands
    • Helios2 And Triton Synchronization
    • Product Change Notifications (PCN)
  • Knowledge Base
  • Contact Support
  • Log In
home/Knowledge Base/Arena Software/Troubleshooting Network Timeouts (Linux)

Troubleshooting Network Timeouts (Linux)

632 views 1 June 11, 2024 Updated on July 24, 2024

Timeouts and incompletes usually happen because of a network disruption that causes a flood of resends. If resends occur, either the camera did not transmit the whole image, or the host PC did not successfully receive the complete image. Below are the troubleshooting steps to avoid or eliminate the cause of resends.


Check the DeviceLinkSpeed

Check the value of the DeviceLinkSpeed node and see if it matches the rating of the camera.

 

Speed

Bits / sec

Bytes / sec

Zeroes

1G

1,000,000,000

125,000,000

6

2.5G

2,500,000,000

312,500,000

5

5G

5,000,000,000

625,000,000

6

10G

10,000,000,000

1250,000,000

7

 

In case the DeviceLinkSpeed is not reporting the correct value, make sure that Ethernet adapter’s Speed & Duplex is set to Auto Negotiation, or try a different port or a cable.

The ethtool -s command can be used to change the current settings by defining the values for speed, duplex, and autoneg in the following format:

$ sudo ethtool -s [device_name] autoneg [on/off] speed [10/100/1000] duplex [half/full]

For example, to set the speed to 1000Mb/s, the duplex mode to full and the auto-negotiation to on the command would be:

$ sudo ethtool -s enp0s3 autoneg on speed 1000 duplex full

Table of Contents

Check the DeviceLinkSpeed
Increase DeviceLinkThroughputReserve and PacketResendWindowFrameCount
Maximize Buffer/Packet Sizes on NIC Settings
Assign a Different Subnet to your NIC for each Camera
Increase Buffer Size in the SDK Using StartStream(100)
Maximize Memory Channel Configuration
Check Power Settings in the BIOS

 

Increase DeviceLinkThroughputReserve and PacketResendWindowFrameCount

The PacketResendWindowFrameCount node decides how far back resends can be requested for images. The default is 4, which means the SDK will attempt to request packets for as far back as frame n-3 while receiving the current frame n. Keep in mind that there still has to be enough bandwidth reserve within that window for the camera to actually send those packets.

nodemap[“PacketResendWindowFrameCount”].value = 4

The camera uses reserve bandwidth to resend the packets. By default, DeviceLinkThroughputReserve is set to 10%.

nodemap[“DeviceLinkThroughputReserve ”].value = 10

To reduce the number of incomplete images, try increasing PacketResendWindowFrameCount to 8 and slightly increasing the reserve bandwidth. You can first try with 10% and then slowly increase the value.

 

Maximize buffer/packet sizes in NIC settings

Set jumbo frames/ MTU size to 9000 bytes, or the maximum.

$ sudo ifconfig enp28s0 mtu 9000

Set receive buffers to 4096 bytes*, transmit buffer to 1024 bytes, or the maximum. (*The size of the Rx buffer is network chipset-dependent. No all chipset will accept 4096 bytes. Choose the largest size you can set.)

$ sudo ethtool -G enp0s8 rx 4096 $ sudo ethtool -G enp0s8 tx 1024

Set socket buffers to 32MB, or the maximum.

$ sudo sh -c "echo 'net.core.rmem_default=33554432' >> /etc/sysctl.conf" $ sudo sh -c "echo 'net.core.rmem_max=33554432' >> /etc/sysctl.conf" 
$ sudo sysctl -p

 

Assign a different subnet to your NIC for each camera

The following command sets the subnet for adapter enp0s8. Additional commands with a different subnet should be set for any other adapters. 

$ sudo ifconfig enp0s8 169.254.0.1 netmask 255.255.0.0

Increase buffer size in the SDK using StartStream(100)

Increasing the number of internal buffers to use in the acquisition engine will help reducing the chance for incomplete images.

Maximize memory channel configuration

We recommend maximizing the memory channel configuration for your RAM.

Dual channel memory configuration

Priority DDR4_A1 DDR4_A2 DDR4_B1 DDR4_B2
1   Populated   Populated
2 Populated Populated Populated Populated

Below is an example on how to populate RAM slots to make use of dual channels. As shown in the diagram, DDR4_A2 and DDR4_B2 will get priority. Check the manual of your motherboard to make sure you are using the dual channels.

Check power settings in UEFI (BIOS)

  1. Ensure PC power-saving features are off
  2. Disable SpeedStep (EIST)
  3. Disable C-states

Missing data/incomplete images with the Arena SDK can occur when EIST and C-state are enabled in the systems power management settings.

C-states are states when the CPU has reduced or turned off selected functions.

Enhanced Intel SpeedStep Technology (EIST) gives your operating system the ability to switch the processor’s speed and voltage up and down, to preserve power when not much is being computed.

Both C-states and EIST power saving settings should be disabled to help resolve any issues with missing data in the Arena SDK.

Procedure (for Supermicro X10DRi motherboard with Intel Xeon E5 2620v4)

Note: Different motherboards may have a different menu structure and features from the one shown below.

Boot into the system BIOS settings.

Settings → Update and Security → Recovery → Advanced Startup → Restart Now

The computer will boot into a special menu.

Troubleshoot → Advanced Options → UEFI Firmware Settings → Restart

Once in the BIOS settings, there should be an explicit option for  “Intel SpeedStep” or “EIST” that can be disabled.

 

Under CPU Power Management, change Package C State Limit to C0/C1 state and deactivate CPU C3 Report, CPU C6 Report and Enhanced Halt State (C1E). These steps will disable the CPU C-states.

 

Was this helpful?

1 Yes  No
Related Articles
  • Solving driver-related RDMA streaming issues with Ubuntu 22.04
  • Using Multiple Helios Cameras Simultaneously
  • How to create an Ubuntu docker image and container with Arena SDK
  • Troubleshooting timeouts caused by incomplete images (Windows)
  • Tonemapping images from LUCID’s TRI054S-CC IMX490
  • Using LUCID’s ArenaView with JupyterLab

Didn't find your answer? Contact Us

  How to create an Ubuntu docker image and container with Arena SDK

Using Multiple Helios Cameras Simultaneously  

© 2024 LUCID Vision Labs Inc.
Looking to purchase our cameras?
Visit the LUCID Webstore at thinklucid.com
LUCID Support & Help
Welcome to LUCID

We use cookies to facilitate online purchases and analyze our traffic. By clicking "Accept", you consent to our use of cookies.

Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}
LUCID Support & Help
Welcome to LUCID

We use cookies to facilitate online purchases and analyze our traffic. By clicking "Accept", you consent to our use of cookies.

Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}