LimaBaslerCamera

In addition to expected parameters offered by the LimaDevice class, LimaBaslerCamera features a few more.

LimaBaslerCamera expected parameters

Network and stream parameters

  • cameraIp: the IP number or hostname of the camera. You can connect to the camera also by using its serial number, eg “sn://21803915”. This is a mandatory parameter.
  • interPacketDelay: the delay between the transmission of each packet (ticks). It should be as small as possible. Try 500 for GigE network, 12586 for 100Mb network.
  • frameTransmissionDelay: the delay before image transmission on the Ethernet. Setting different values on synchronous cameras connected to a single server can prevent concurrency issues.
  • packetSize: The packet size. Should be as large as possible. Try 8192 if jumbo frames are enabled on the network (MTU=9000), use 1444 otherwise.
  • socketBufferSize: the socket buffer size. Should be automatically set by pylon.

TriggerMode options

The trigger modes available in Lima for the Basler camera are four. Here is the explanation of the parameters which will be set by selecting one of those modes.

  • IntTrig:
    • TriggerMode = Off
    • ExposureMode = Timed
    • AcquisitionFrameRateEnable = True
  • IntTrigMult:
    • TriggerMode = On
    • TriggerSource = Software
    • AcquisitionFrameCount = 1
    • ExposureMode = Timed
  • ExtGate
    • TriggerMode = On
    • TriggerSource = Line1
    • AcquisitionFrameRateEnable = False
    • ExposureMode = TriggerWidth
  • ExtTrigMult
    • TriggerMode = On
    • TriggerSource = Line1
    • AcquisitionFrameRateEnable = False
    • ExposureMode = Timed

Trigger Activation

Possible options (might not be available for all models) are:

  • Rising Edge
  • Falling Edge
  • AnyEdge
  • LevelHigh
  • LevelLow

Gain Control

The camera gain will be automatically adjusted by setting autoGain to True. It can also be manually adjusted by setting autoGain to False and selecting a value for gain, between 0 and 1. 0 corresponds to the minimum RawGain value, 1 to the maximum, according to

\[RawGain = RawGainMin + gain \cdot (RawGainMax - RawGainMin)\]

Pixel Format

It can be changed by setting the Image Type property:

  • Bpp8 (i.e. 8 bits-per-pixel)
  • Bpp10
  • Bpp12
  • Bpp16

Acquisition Frame Count

This parameter is used to set the number of frames acquired in the multi-frame acquisition mode.

Temperature

The camera temperature (available only on some models).

Camera Setup

In order to have good performance, especially when multiple cameras are controlled on a single server, you should set the following parameters:

  • Inter-Packet Delay: increasing this parameter will slow down the acquisition, but it will improve its stability, especially when multiple cameras are operated on the same control host. Therefore it is recommended to set it to the maximum value allowed by the sensor size and the desired frame rate.
  • Packet Size: it should be set to the maximum value allowed by the network interface, for example 1444 in case of standard MTU size (1500), 8192 in case of “jumbo frames” (MTU = 9000).
  • Frame Transmission Delay: the values should differ for the various cameras controlled by the same control server. This way, they will send the images at slightly different times and concurrency issues will be alleviated.

Troubleshooting

The camera is in UNKNOWN state

This means that the Karabo device cannot connect to the camera. You should check that

  • the camera is connected to the network,
  • and it is powered.

A possible way to verify that the camera is online is to login to the control server and use the ping command:

ping <camera IP>

Camera power can often be controlled via a Beckhoff digital output device, with the same domain name as the camera, but different type and member. For example to the camera SCS_XTD10_IMGPI/CAM/BEAMVIEW corresponds the Beckhoff device SCS_XTD10_IMGPI/DCTRL/CAM_POWER, which can be used to power on and off the camera.

If the camera is online but still in UNKNOWN state, it is likely that

  • another client is already connected to it.

A client can be

  • another Karabo device,
  • PylonViewer,
  • eBUSPlayer,

If you cannot find out who is keeping the connection busy, you can power cycle the camera and this will kick-out anybody who was connected.

The camera is ACQUIRING but Camera Frame Rate is 0

If you are in external trigger mode (ExtTrigMult, ExtGate), it is possible that the camera receives no trigger signal. You can test it by setting the trigger mode to internal (IntTrig).

It has been reported in some cases that a camera stops sending images after a while. The reason is under investigation but not understood yet. In those cases is normally enough to stop and re-start the acquisition from the Karabo device. In order to mitigate the issue, a watchdog device (cameraShaker) can be deployed, which will automatically restart the acquisition in such cases.

Camera Frame Rate is not 0, but no images are visible in the GUI

Check that in the Output node the hostname is set correctly. If the control server has a 10 GbE interface dedicated to the GUI server, the IP address of this interface should be set in output.hostname.

If this is set correctly, it could be that the GUI server is malfunctioning. In case there is a second GUI server available for the topic, try to switch to that one.

Camera Frame Rate is not 0, but Output Frame Rate is 0

This means that the Karabo device receives data, but some other device is connected to one of its output channels, and is blocking. The list of open connections is available in each output channel. You should check who is connected, try to find out its health state, and restart what needed.

Output Frame Rate is not 0, but the DAQ does not save any data

Check that in the DAQ Output node the hostname is set to the IP address of the 10 GbE interface dedicated to the DAQ.

Camera Frame Rate is Smaller than Expected

If you observe that the acquisition rate is smaller than expected, for example smaller than the trigger rate, the reason could be that the settings are not optimal.

In this case you could find error messages like

[2019/09/19 11:40:13.07e638] 88c2a700 *Camera*_AcqThread::Camera::threadFunction (BaslerCamera.cpp:657)-Error: No image acquired! Error code : 0xhex= e1000014 Error description : The buffer was incompletely grabbed. This can be caused by performance problems of the network hardware used, i.e. network adapter, switch, or ethernet cable. To fix this, try increasing the camera’s Inter-Packet Delay in the Transport Layer category to reduce the required bandwidth, and adjust the camera’s Packet Size setting to the highest supported frame size.

Please refer to the Deployment Guidelines and Setup Sections for the needed settings.

Connection to the Camera is Lost During Acquisition

Also this could be caused by sub-optimal settings, as described in the previous Section.