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 does not comply with the CXP standard regarding the distribution of the image data over the links, no correct images are delivered to the PC. 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(s) 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 here.
Ticket-ID:
Summary: Displaying Images with High Frame Rates May Lead to Slow Reactions to User Input
Description: When using the SDK 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 PC.
Affected OS: Windows
Workaround: No workaround is available.
Ticket-ID:
Summary: Linux Drivers Cannot 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 is not 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 CXP12-IC-1C Card
Description: Due to an issue in the PCIe communication module of the CXP12-IC-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 PC'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: CXP12-IC-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 is not 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

CXP12-IC-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 does not 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 do not 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 is not 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 does not 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, does not contain the source tag from the CXP image header. Instead, it contains a counter for all frames that have been delivered to the PC.
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 does not 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);
    

     

Back to top