Skip to content

Troubleshooting (Frame Grabbers)#

This topic contains solutions for common problems when working with Basler frame grabbers.

imaWorx CXP-12 Quad#

Camera Discovery Issues#

If you experience problems using camera discovery using the Framegrabber API library siso_genicam or the tool microDisplay X, you can fine-tune the discovery behavior via re-setting specific environment variables:

Variable Name Default Value Definition
SISO_CXP_COMMAND_ACK_TIMEOUT 200 ms Max. time the Framegrabber SDK waits for camera response after sending a command.

The default value of 200 ms is the value required by the CXP 1.1 standard.

If you tend to get log messages reporting acknowledgment (ACK) timeouts, you can increase this value.
SISO_CXP_WAIT_AFTER_LINKRESET 300 ms Time in milliseconds the Framegrabber SDK waits after a link reset command has been sent on a single channel. At discovery, the Framegrabber SDK sends link reset commands on all channels. The link resets are carried out one after the other. The Framegrabber SDK waits after each link reset SISO_CXP_WAIT_AFTER_LINKRESET ms before carrying out the next link reset.

The CXP 1.1 standard requires 200 ms but is unclear about whether the link reset command should be sent on all channels simultaneously or separately. The Framegrabber SDK allows to configure the behavior through three environment variables: SISO_CXP_WAIT_AFTER_LINKRESET, SISO_CXP_WAIT_AFTER_LINKRESET_AT_DISCOVERY and SISO_CXP_WAIT_AFTER_LINKRESET_OF_ALL_PORTS. The default values have been chosen to support most cameras on the market.

If you encounter log messages that say that link locking was successful, but camera communication failed during discovery, you can try to either increase the values of SISO_CXP_WAIT_AFTER_LINKRESET and/or SISO_CXP_WAIT_AFTER_LINKRESET_AT_DISCOVERY, or you can try to set SISO_CXP_WAIT_AFTER_LINKRESET to 0 and SISO_CXP_WAIT_AFTER_LINKRESET_AT_DISCOVERY to a value of 200 or more.
SISO_CXP_WAIT_AFTER_LINKRESET_AT_DISCOVERY 200 ms Additional time the Framegrabber SDK waits after all channels have received the link reset command.

For further comments, see SISO_CXP_WAIT_AFTER_LINKRESET.
SISO_CXP_WAIT_AFTER_LINKRESET_OF_ALL_PORTS 0 ms Additional time the Framegrabber SDK waits after the channel link lock was established on all lockable channels.

Usually, the user doesn't have to change the default value of 0. If both (SISO_CXP_WAIT_AFTER_LINKRESET and SISO_CXP_WAIT_AFTER_LINKRESET_AT_DISCOVERY have been set to 0, the value of SISO_CXP_WAIT_AFTER_LINKRESET_OF_ALL_PORTS must be set to 200 or higher.)

For further comments, see SISO_CXP_WAIT_AFTER_LINKRESET.
SISO_CXP_WAIT_AFTER_CAMERACONFIG_DONE 750 ms Time the Framegrabber SDK waits after sending a link configuration command.

The CXP 1.1 standard requires 200 ms. However, in the Framegrabber SDK the default value is 750 ms as some cameras require more time to recover after a link configuration change.

If you experience a loss of communication with the camera after a configuration change, you can increase this value.
SISO_CXP_RECEIVE_ACK_PACKET_ON_LINKCONFIG Off The CXP 1.1 standard requires cameras to acknowledge link configuration change after applying the change. However, most cameras don't send an acknowledge after link configuration change.

To enforce waiting for the acknowledgement by the camera, set this value to ON.
SISO_CXP_SKIP_REGISTER_CHECK_ON_LINKCONFIG Off To ensure camera communication is working after link configuration change, the Framegrabber SDK attempts a register read after the change has been applied.

To suppress this behavior, set this value to ON.

microEnable 5 Frame Grabber#

Activating Applet Causes Blue Screen#

During FPGA live reconfiguration (which starts when you activate an applet), the frame grabber disappears from the PCI bus for a short time. However, the disappearance of a device from the PCI bus isn't supported by all motherboards. For more information, see Crash Protection (microDiagnostics).

If your computer doesn't support live reconfiguration of the FPGA, you can disable FPGA live configuration.

Info

The following chipsets support FPGA live configuration without reboot in some mainboards:

  • Intel X58 Express
  • Intel X79 Express
  • Intel Z87 (Z99)

Basler doesn't guarantee FPGA live configuration with the aforementioned chipsets.

You can always disable the live reconfiguration of the FPGA. After disabling, you will need to power cycle (cold-boot) after flashing new firmware on.

To disable the live reconfiguration of the FPGA:

  1. Add the following system environment variable to your system: SISO_ENABLE_RECONFIGURATION
  2. Set it to NO: SISO_ENABLE_RECONFIGURATION=NO

After each flashing, you will now be prompted to power cycle (cold-boot) your computer:

microDisplay X: Message Power Cycle

To power cycle your computer:

  1. Click Shut Down to shut down your computer completely (the Restart option isn't enough).
  2. After the computer is completely off, wait for some seconds.
  3. Start the host computer again.

FPGA Fall-Back Configuration#

FPGAs lose their configuration at power down. The configuration is reloaded at each cold start, or optionally at a later time. On the frame grabber, the FPGA loads its configuration from a BPI flash memory.

The BPI flash memory is divided into 8 partitions. One of partitions 1–7 contains the configuration the user wants to use (boot configuration and/or active configuration). To ensure the frame grabber is working reliably also in exceptional cases, partition 0 contains a fall-back configuration (SAVE Configuration 1). The SAVE Configuration is loaded automatically in cases the intended configuration (boot configuration or active configuration) can't be used for FPGA configuration.

This way, you always have software access to the FPGA, i.e., you can always configure the frame grabber with a fully functional configuration (applet).

When Do Such Situations Occur?#

The most common cause why the intended configuration can't be loaded is that the frame grabber is disconnected from power while the BPI flash memory is loaded. Disconnection from power leaves the loading process unfinished. Afterwards, the FPGA can't use the (incomplete) content of the BPI flash memory for configuration. The FPGA uses the SAVE Configuration instead.

Configuration Switch#

Any time, you can activate the SAVE Configuration via the configuration switch which is located directly on the board. This is the ultimate fall-back alternative in the very unlikely case the SAVE Configuration isn't loaded automatically.

configuration switch on the frame grabber:

Configuration Switch

To use the configuration switch:

  1. Press the configuration switch.
  2. Reload the frame grabber's device driver, or re-start the host computer (warm start).
Re-Configuring/Re-Flashing the Frame Grabber#

When the SAVE Configuration is successfully activated (automatically or via switch), the according SAVE LED turns red. This indicates the frame grabber is available via software. You can now re-configure or re-flash the frame grabber with a fully functional version of the applet you want to use for image acquisition. For flashing, you use the software tool microDiagnostics (see Flashing).

Loading a New Applet (Flashing) gets not Completed#

If you experience problems while flashing an applet onto an mE5 frame grabber, i.e., if the flashing process doesn’t come to an end:

  1. Keep the frame grabber powered. DON’T switch off the frame grabber.
  2. Contact the Basler Technical Support Team.

Disabling FPGA Live Reconfiguration#

During FPGA live reconfiguration (which starts when you activate an applet), the frame grabber disappears from the PCI bus for a short time. However, the disappearance of a device from the PCI bus isn't supported by all motherboards. (See also Crash Protection.)

If your computer does not support live reconfiguration of the FPGA, you may want to generally disable FPGA live configuration.

Note

High-end mainboards with server level chipset support FPGA live configuration. The following chipsets are known to support FPGA live configuration without reboot in some mainboards:

  • Intel X58 Express
  • Intel X79 Express
  • Intel Z87 (Z99)

Basler doesn't guarantee FPGA live configuration with the aforementioned chipsets. For further details, see Flashing.

You can always disable the live reconfiguration of the FPGA. After disabling, you will need to power cycle (cold-boot) your computer after flashing the frame grabber.

To disable the live reconfiguration of the FPGA:

  1. Add the following system environment variable to your system: SISO_ENABLE_RECONFIGURATION
  2. Set it to NO: SISO_ENABLE_RECONFIGURATION=NO

After each flashing, you will now be prompted to power cycle (cold-boot) your computer:

Message After Flashing Power Cycle

To power cycle your computer:

  1. Click Shut Down to shut down your computer completely (the Restart option isn't enough).
  2. After the computer is completely off, wait for some seconds.
  3. Start the host computer again.

Frame Grabber Not Available After Flashing#

If you flash a microEnable 5 frame grabber with a *.hap file and the frame grabber isn't recognized afterwards by the Windows device manager and microDisplay X, then the *.hap file you have flashed onto the frame grabber is erroneous (timing violations, etc.).

In this case, the SAVE Configuration isn't automatically used for FPGA configuration.

To activate the SAVE Configuration, use the configuration switch that is located directly on the frame grabber:

Configuration Switch

To use the configuration switch:

  1. Press the Configuration switch.
  2. Reload the frame grabber's device driver, or re-start the host computer (warm start).

When SAVE Configuration is activated successfully (automatically or via switch), the according SAVE LED turns red. This indicates that the frame grabber is available via software. You can now re-configure or re-flash the frame grabber with a fully functional version of the applet you want to use for image acquisition. For flashing, you use the software tool microDiagnostics.

Open microDiagnostics and load the applet you want to use (in a fully functional version) on the frame grabber as described in Flashing.