Skip to content

Known Issues Runtime 5.9.0#

This section provides information about known issues for the Basler Runtime version 5.9.0.

All Components#

Summary Camera Does Not Deliver Correct Images
Description If a camera with multiple links doesn't comply with the CXP standard regarding the distribution of the image data over the links, no correct images are delivered to the computer. This issue was observed with a JAI SP-12000C-CXP4 camera.
Affected OS Windows and Linux
Workaround No workaround is available.
Ticket ID TFS 211645
Summary Unexpected Behavior of the Camera Simulator
Description The usage of the applet’s internal camera simulator may show a lower bandwidth than expected. This does mean that certain overflow conditions may occur when the current simulator is used. When a real camera is used, this behavior doesn't show. The issue is only related to the internal camera simulator.
Affected OS Windows and Linux
Workaround No workaround is available.
Ticket ID
Summary Frame Grabber Do Not Work with Windows Fast Startup
Description Under Windows 8 or higher with Fast Startup enabled (also known as Hybrid Boot or Hybrid Shutdown), the frame grabber may no longer work after changing the hardware setup and restarting the system.
Affected OS Windows 8 or higher
Workaround A restart (explicit restart, not shutdown) solves these problems. To avoid the problems completely, disable Fast Startup as described by www.windowscentral.com.
Ticket ID
Summary Displaying Images with High Frame Rates May Lead to Slow Reactions to User Input
Description When using the Framegrabber API library display_lib (only available on Windows), displaying images with high frame rates (about 10.000 frames per second) may lead to slow reactions to user input (e.g. keyboard and mouse) of the host computer.
Affected OS Windows
Workaround No workaround is available.
Ticket ID
Summary Linux Drivers can't be Signed with a Trusted Basler Certificate
Description Using secure boot (UEFI mode) with Linux requires a driver that is signed with a trusted certificate. Since the driver is provided as source code, there is no way to sign it with a trusted Basler certificate.
Affected OS Linux
Workaround To work with the driver, secure boot can be disabled. Alternatively, you can sign the driver as described in this Ubuntu blog entry.
Ticket ID

Frame Grabber#

Summary LED 12EXT Illuminates Red on Wrong Event
Description The LED 12EXT is supposed to illuminate red when imaWorx isn't connected to an external power supply. However, the LED only illuminates red, if the external power connector is connected and falsely reflects the state of 12V_DC_UP instead of 12V_EXT.
Workaround No workaround is available.
Ticket ID TFS 206709

Firmware#

Summary Data Loss and System Freeze Caused by the PCIe Communication Module of the CXP-12 Interface Card 1C Card
Description Due to an issue in the PCIe communication module of the CXP-12 Interface Card 1C card with firmware version 3.0 S1.1 P1 (and the corresponding applet), data transfers may fail and the system could freeze, depending on how sensitive the computer's PCI hardware is. This can happen, when:
  • A buffer has a memory address that starts 4 bytes after or ends 4 bytes before a PCI payload size boundary.
  • The camera produces a frame with a size in bytes that is a multiple of 4 but not of 8.
Affected OS Windows and Linux
Affected Hardware CXP-12 Interface Card 1C card with firmware version 3.0 S1.1 P1
Workaround Create buffers at memory addresses that are divisible by 8. If the desired buffer size isn't divisible by 8, allocate additional bytes to match this requirement and ignore this padding when processing the data.a
Ticket ID TFS 184670
Summary Changes in DeviceUserID Require a Restart of GenTL Producer or Other Applications
Description When the DeviceUserID (precisely: the value of the CXP bootstrap register DeviceUserID) of the camera is changed, a restart of the GenTL Producer is required for the change to be reflected via the GenTL API. When using a GUI to interact with the camera via GenTL (i.e. pylon Viewer), a restart of that application is required for the change to become visible.
Affected OS Windows and Linux
Workaround No workaround is available.
Ticket ID TFS 207518

CXP-12 Interface Card 1C Applet#

Summary Frequently Changed Link Speed Leads to Errors
Description When the CXP link speed is frequently changed on one port, it can happen that the speed change doesn't work anymore. In that case, the error messages "Failed to set bitrate of uplink transceivers" and "Failed to set bitrate of downlink transceivers" are logged.
Since the camera discovery probes the unconnected ports and therefore changes their link speed, this issue can occur when an application frequently tries to discover new cameras on unconnected ports.
Affected OS Windows and Linux
Workaround Reload the applet:
Reloading the applet is possible by loading a different applet and then loading the original one again. If an environment variable with the name SISO_FORCE_RELOAD_APPLET is defined with the value yes, the reloading also works without loading a different applet first.
Ticket ID TFS 197127

SDK#

Summary Corrupted Frames Due to Slow Image Delivery from Camera to Frame Grabber
Description If (re-)queuing the buffers is slower than transferring the images from the camera to the frame grabber, corrupt images are delivered. This behavior can only be detected by examining the image data.
Affected OS Windows and Linux
Workaround To avoid these corrupt images, image processing and requeuing of buffers must be faster than the frame rate of the camera. The internal buffer on the frame grabber is sufficient to balance out smaller delays due to scheduling etc.
A broken frame produced due to this issue is smaller than the configured dimensions, so an unexpectedly smaller frame can be used as an indicator for this. You can determine the size of the frame data as follows:
  • Using the GenTL Producer:
    Call DSGetBufferInfo with BUFFER_INFO_SIZE_FILLED as command.
    Do NOT use BUFFER_INFO_IS_INCOMPLETE and don't check for BUFFER_INFO_SIZE_FILLED < BUFFER_INFO_DATA_SIZE. These checks will always be false. For details, see section GenTL Producer.
  • Using the frame grabber SDK / fglib:
    Call Fg_getParameterEx with FG_TRANSFER_LEN as parameter.
Ticket ID TFS 207873

Cognex Adapter#

Summary Cognex VisionPro Must Be Started with Admin User Rights
Description Cognex VisionPro must be started with Admin user rights to access the frame grabber.
Affected OS Windows and Linux
Workaround No workaround is available.
Ticket ID TFS 187245
Summary Limited Memory Leads to Failed Acquisition for Large Images
Description When setting up a large ROI (i.e 4096 x 3000), starting the acquisition may fail with the message "The acquisition failed abnormally. (Adapter image pool full.)"
This happens, because VisionPro limits the memory that can be used by the vendor-specific adapters.
Affected OS Windows
Workaround To avoid this, increase the limit via the Windows Registry as described in the Basler Cognex VisionPro Adapter Manual
Ticket ID TFS 203605

GenTL Producer#

Summary Camera Parameters Changed after Image Acquisition Start Are Not Reflected In the Frame Grabber
Description When camera parameters are changed during image acquisition, the change isn't reflected in the frame grabber. This is so, because the GenTL Producer enquires the relevant parameters (width, height, image format, etc.) before starting the acquisition and synchronizes these with the frame grabber.
Affected OS Windows and Linux
Workaround No workaround is available.
Ticket ID TFS 195482
Summary BUFFER_INFO_DATA_SIZE Contains Number of Transferred Bytes Instead of Frame Size
Description The buffer property BUFFER_INFO_DATA_SIZE doesn't work as expected: BUFFER_INFO_DATA_SIZE is supposed to contain the configured size of the frame. However, it does contain the actual number of transferred bytes as does BUFFER_INFO_SIZE_FILLED. Therefore, the property BUFFER_INFO_IS_INCOMPLETE will always be false.
Affected OS Windows and Linux
Workaround The intended value of BUFFER_INFO_DATA_SIZE usually equals the image's width * height * pixel size.
Ticket ID TFS 211972
Summary The GenTL Device ID Changes When the Applet Is Changed
Description According to the GenTL standard, the device ID should remain constant between two sessions. However, the GenTL device ID changes when the applet is changed. Therefore, the device ID that was queried with one applet can be used with a different board and a different applet only, if the applet has the same name as the original one with which the device ID was generated.
Affected OS Windows and Linux
Workaround No workaround is available.
Ticket ID
Summary BUFFER_INFO_FRAME_ID Contains a Counter for All Frames Instead of the Source Tag from the CXP Image Header
Description The GenTL BUFFER_INFO_FRAME_ID, that can be queried via DSGetBufferInfo, doesn't contain the source tag from the CXP image header. Instead, it contains a counter for all frames that have been delivered to the computer.
Affected OS Windows and Linux
Workaround No workaround is available.
Ticket ID TFS 197430

microDisplayX#

Summary Setting TriggerState to active May Cause the Acquisition to Time Out
Description Setting the applet parameter TriggerState to active before starting the acquisition on the camera may cause the acquisition to time out without any images being delivered.
Affected OS Windows and Linux
Workaround To avoid this, make sure that TriggerState is only activated after the acquisition has been started.
Ticket ID TFS 191631
Summary On Linux, microDisplayX Might Crash When It Is Being Closed
Description On Linux, microDisplayX might crash when it is being closed. This has no further consequences and can be ignored.
Affected OS Linux
Workaround No workaround is available.
Ticket ID TFS 211811

  1. You can use the following code example to create a buffer that doesn't have this data transfer issue:

    // create a ROI that could trigger the issue (for demonstration purposes only!)
    
        size_t imageWidthPx = 252;
    
        size_t imageHeightPx = 15;
    
        size_t pixelSizeBytes = 1;
    
    // compute the required buffer size for one image
    
    size_t imageSizeBytes = imageWidthPx * imageHeightPx * pixelSizeBytes;
    
    // set the buffer size to the nearest larger size that is divisible by 8
    
    size_t bufferSizeBytes = ((imageSizeBytes + 7) / 8) * 8;
    
    // add 4 more bytes so we can add an offset of 4 bytes if the address ends up being only 4 byte aligned
    
    bufferSizeBytes += 4;
    
    // allocate the buffer
    
    uint8_t* imageBuffer = (uint8_t*)malloc(bufferSizeBytes);
    
    // sanitize the address
    
    uint8_t* sanitizedImageBuffer = (((uintptr_t)(imageBuffer)) % 8 == 0)
    
        ? imageBuffer
    
        : imageBuffer + 4;
    
     /* [use the sanitized buffer] */
    
    // free the original(!) buffer
    
    free(imageBuffer);