Troubleshooting
Error codes
Error Code |
Value |
Description |
---|---|---|
VmbErrorSuccess |
0 |
No error |
VmbErrorInternalFault |
-1 |
Unexpected fault in VmbC or driver |
VmbErrorApiNotStarted |
-2 |
VmbStartup() was not called before the current command |
VmbErrorNotFound |
-3 |
The designated instance (camera, feature, etc.) |
VmbErrorBadHandle |
-4 |
The given handle is not valid |
VmbErrorDeviceNotOpen |
-5 |
Device was not opened for usage |
VmbErrorInvalidAccess |
-6 |
Operation is invalid with the current access mode |
VmbErrorBadParameter |
-7 |
One of the parameters is invalid (usually an illegal pointer) |
VmbErrorStructSize |
-8 |
Given struct size is not valid for this API version |
VmbErrorMoreData |
-9 |
More data available in a string/list than space is provided |
VmbErrorWrongType |
-10 |
Wrong feature type for this access function |
VmbErrorInvalidValue |
-11 |
The value is not valid; either out of bounds or not an |
VmbErrorTimeout |
-12 |
Timeout during wait |
VmbErrorOther |
-13 |
Other error |
VmbErrorResources |
-14 |
Resources not available (e.g. memory) |
VmbErrorInvalidCall |
-15 |
Call is invalid in the current context (e.g. callback) |
VmbErrorNoTL |
-16 |
No transport layers are found |
VmbErrorNotImplemented |
-17 |
API feature is not implemented |
VmbErrorNotSupported |
-18 |
API feature is not supported |
VmbErrorIncomplete |
-19 |
The current operation was not completed (e.g. a multiple |
VmbErrorIO |
-20 |
Low level IO error in transport layer |
VmbErrorValid |
-21 |
The valid value set could not be retrieved, |
VmbError |
-22 |
Unspecified GenTL runtime error |
VmbErrorUnspecified |
-23 |
Unspecified runtime error |
VmbErrorBusy |
-24 |
The responsible module/entity is busy executing actions |
VmbErrorNoData |
-25 |
The function has no data to work on |
VmbErrorParsing |
-26 |
Unspecified GenTL runtime error |
VmbErrorInUse |
-27 |
Something is already in use |
VmbErrorUnknown |
-28 |
Error condition unknown |
VmbErrorXml |
-29 |
Error parsing XML |
VmbErrorNotAvailable |
-30 |
Something is not available |
VmbErrorNotInitialized |
-31 |
Something is not initialized |
VmbErrorInvalidAddress |
-32 |
Given address is out of range or invalid for internal reasons |
VmbErrorAlready |
-33 |
Something has already been done |
VmbErrorNoChunkData |
-34 |
A frame expected to contain chunk data does not contain it |
VmbErrorUser |
-35 |
A callback provided by the user threw an exception |
VmbError |
-36 |
The XML for the module is currently not loaded; the module |
VmbErrorTLNotFound |
-37 |
A required transport layer could not be found or loaded |
VmbErrorAmbiguous |
-38 |
An entity cannot be uniquely identified based on |
VmbErrorRetriesExceeded |
-39 |
Something could not be accomplished |
VmbError |
-40 |
The operation requires more buffers |
VmbErrorCustom |
1 |
The minimum error code to use for user defined error codes |
General issues
Transport layer not found
If the transport layer cannot be found:
Check if the transport layer is deactivated, see the SDK Manual, chapter TL activation and deactivation.
Check the string of
ctiPathsAndSettingsUsage()
Linux: see Typical Linux issues
Feature not usable
Install the latest camera firmware.
Vimba X only supports GenICam-compliant features, see About Vimba X.
Payloadsize issue
Stream features may contain additional Payloadsize information. For proper handling, use convenience function VmbPayloadSizeGet().
Vimba system functions
Vimba - Vimba X migration: To ensure GenICam compliance of Vimba X, most system functions of the Vimba SDK (such as GEV discovery, ForceIP, and Action Commands) are now TL (system) functions in Vimba X.
DeviceReset
Some cameras provide the DeviceReset feature. After each Device Reset, a device discovery is necessary.
After executing the DeviceReset command feature, the Camera handle and the related stream
and local device handles become invalid.
To reopen the camera and get a new valid handle, call VmbCameraClose()
for this camera and
call VmbCameraOpen()
.
After executing the DeviceReset command feature, the Camera object and the related stream
and local device objects become invalid.
To reopen the camera and get a new valid Camera object, call Close()
for the invalid Camera
object and query a new Camera object from the API.
After executing the DeviceReset command feature, the Camera object and the related stream and local device objects become invalid. To reopen the camera, close the Camera context and query a new Camera instance from VmbSystem.
All APIs:
It may take a few seconds until the device reset is completed and the camera can be discovered again.
The Extended ID of a camera remains the same, no matter how many times the camera has been reopened with VmbCameraClose and VmbCameraOpen.
GigE: The corresponding interface handle (or object) may become invalid. If you work with the Interface GenTL module, you need to query the current handle (or object) from the API.
MIPI CSI-2: In some cases, rebooting the board is necessary.
Issues by camera interface
GigE cameras
If the camera is not listed: See Camera not detected.
To use your GigE camera with best possible performance, follow the instructions in the User Guide of your camera.
We recommend using the Filter Driver of Vimba X. To check if the correct Filter driver is in use:
Open your camera with Vimba X Viewer.
Open the All tab and expand Stream 0.
In the Settings, check that GVSP Driver Selector uses Filter.
Expand Info and check that GVSP Filter Compatibility is “Matching”. If it is not Matching, use Vimba Driver Installer in the Vimba X install directory to install the latest Fiter Driver.
5 GigE Vision cameras
To get your 5 GigE Vision camera up and running, see the user guide/manual for your camera.
PacketSize
Make sure to set the PacketSize feature of GigE cameras to a value supported by your network card. If you use more than one camera on one interface, the available bandwidth has to be shared between the cameras.
GVSPAdjustPacketSize
configures GigE cameras to use the largest possible packets.DeviceThroughputLimit
enables to configure the individual bandwidth if multiple cameras are used.The maximum packet size might not be available on all connected cameras. Try to reduce the packet size.
Other issues
Access Mode “Config” is not available in this SDK. Please use IP Config instead.
By default, the Allied Vision GigE TL is set to Broadcast (instead of Discovery Once), which constantly consumes bandwidth. For a higher bandwidth, use Discovery Once every time you connect a GigE camera.
If the GigE Filter Driver installation via Driver Installer is not possible, please install it manually to your NIC.
USB cameras
Under Windows, make sure the correct driver is applied.
MIPI CSI-2 cameras
Compatible boards and driver
The camera driver must be installed before using Vimba. It is available for selected ARM boards and SOMS at https://github.com/alliedvision
Camera list
MIPI CSI-2 is not a plug and play interface. To update the cameras list, reboot the board.
Image acquisition
Make sure you use the latest firmware version. If you already have installed Vimba, you can use the included Firmware Updater. Or download it from https://www.alliedvision.com/en/support/software-downloads/
Typical Linux issues
Installation
Installation instructions are listed in doc:about. Note that the script for installing the transport layers has changed.
To install Vimba X for Linux, you need tar and the C runtime library glibc6 (version 2.27 or higher).
Transport layers not found
Note that the script for installing the transport layers has changed. Read the installation instructions in doc:about.
In most cases, Install.sh automatically registers the GENICAM_GENTL64_PATH environment variables in /etc/profile.d, so that every GenICam GenTL consumer can access the Vimba transport layers. If the transport layers are not found:
If multiple users work with the system, make sure all users can access /etc/profile.d.
If your display manager doesn’t support the install script (for example, lightdm and wdm): Please add the required environment variables to the /etc/environment file.
If login shell is not supported, Install.sh in /etc/profile.d will not be loaded for X-Session. In this case, please copy the following line into the ~/.bashrc file and reboot.
export GENICAM_GENTL64_PATH=$GENICAM_GENTL64_PATH: "/PATH_TO_VIMBAXFOLDER/cti/Set_GenTL_Path.sh"
Compiling
To compile the examples and the C++ API, you need:
CMake (>= 3.21)
make
g++ (>= 8.4.0)
Qt (5.15.x)
Typical macOS issues
Installation
Vimba X comes as a .dmg file. Do not drag & drop it into the Applications folder.
To install Vimba X:
Double-click the .dmg file to mount it.
Open Vimba X installer.pkg and follow the instructions. If you get an error message, go to Settings → Privacy & Security, select “App Store and identified developers” and click “Open Anyway” for “Vimba X Installer.pkg”.
Please log out and then log in again. Please make sure to quit the Terminal app if it is still open, so that it can find the new environment variable when you open it again. Opening a new Terminal window without quitting the application is not sufficient.
TL not found
Before rebooting, please close all Vimba X related applications and Terminal windows.
Safari
Safari has built-in security policies that prevent using the “back” button from external URLs. As a workaround, click “back” twice or open links in a separate tab. Or use another browser (for example, Chrome or Firefox).
Technical support
Allied Vision provides technical support if you use Allied Vision cameras. We don’t offer technical support if a non-Allied Vision camera or a non-Allied Vision TL is used.
To get technical support for your Allied Vision camera, please go to:
https://www.alliedvision.com/en/about-us/contact-us/technical-support-repair-/-rma/
To get technical support for cameras from other manufacturers, please address the camera manufacturer.