DALSA Xtium-CLHS PX8

Has anyone tried to read a camera via the Xtium-CLHS PX8 frame grabber card?

My code fails with an error that says essentially, “camera not found”.

See my code below…

import cvb

device = cvb.DeviceFactory.open(‘C:/Program Files/STEMMER IMAGING/Common Vision Blox/Drivers/CVXtiumCLHSPX8.vin’)

And the resulting error is:

RuntimeError: {C-API call failed} ({LoadImageFileW})

Many Thanks,
Brijen

Hi Brijen,

can you load the driver/camera in a CVB tutorial application?
I want to exclude that a misconfiguration of the CVB driver causes the error.

Regards,
Martin

Hi Martin,

After your suggestion, I tried running an example from the \Common Vision Blox\Tutorial\GEVServer\CvbPy\QmlGevServer directory called QmlGevServer.py and that application also comes up with an error message saying “Failed to load new device”. Do you know of any other tutorial paths that allow a simple loading of the camera driver? I see a lot of CVB tutorials with various image manipulation but not many that allow to load and run a connected camera.

I have installed “CommonVisionBlox DALSA Xtium-CLHS PX8 Driver (x64)” driver thinking that my 64 bit Windows10 OS, along with Sapera Wow64 server might be compatible with this version of the driver. Maybe I should try to install the other available alternative driver, “xtium-clhs_px8_111000285”?

Thanks Brijen

Hi Brijen,

it’s probably the mix of installed versions which causes the error.

The CVB Dalsa Xtium-CLHS PX8 driver (x64) is ok for Win10 x64 OS, but Sapera Wow64 is a 32 Bit application for 64 Bit OS, you might install the x64 version of Sapera.

Are you able to load the camera in Sapera CamExpert, and save the configuration of your framegrabber as a .ccf? This configfile is needed in the “XtiumCLHSPX8.ini” file (located in the %CVBDATA%\Drivers directory).

For testing purpose of the driver, I recommend the Display tutorial based on the new wrapper:

%CVB%\Tutorial\Image Manager\Cvb.Net\Display\bin\Release

Best regards,
Martin

Hi Martin,

Thanks for your help. After reading your notes above I decided to clean reset my Windows10 operating system to clean up the Registry entries that were getting mixed up the 32-bit Sapera WoW64 SDK install (at this point my camera was working with the Sapera CamExpert from SDK but not with CVB)

Here are my short notes that might help another user who wishes to acquire images through XTIUM-CLHS PX8 card.

(1) Assuming the starting point is a PC with Windows10 OS (64 bit) and a compatible PCIe x8 gen2 or higher/newer FREE slot, the installation below should work.

(2) First Install the frame grabber card physically by opening the PC.
(3) Download Common Vision Blox software 64 BIT package from https://www.commonvisionblox.com/en/download-cvb-windows-32-bit-and-64-bit/
(4) Next download the 64 BIT card driver from https://www.commonvisionblox.com/en/software/cvb-driver/dalsa-xtium-cl-px8/

(5) Install the CVB package first (mine is called, in abbreviated form, CVB_CamSuite_13.02.000 (x64).exe)

At this point the installed card will show a blue light, meaning it is not yet recognised by the system.

(6) Install the card driver by unzipping the downloaded file, mine is called CVB-Driver-Teledyne-DALSA-xtium-clhs-px8-x64. During install you will get some warnings that you are missing several packages, but the drive installation will add the missing s/w.

(7) After a restart - if the camera is connected to the card but not switched on - you should see a flashing green light on the card, meaning the card is now functional.

(7.1) Open the CamExpert shortcut on the desktop and with the camera switched on and booted up (takes a while), the camExpert should recognise the camera.

(7.2) Select bit depth, frame rate and other parameters of interest and save the configuration file from the File–>Save menu.

(7.3) Close CamExpert.

(8) Now head to location %CVBDATA%Drivers and open (using Notepad++ or similar editor) the XtiumCLHSPX8.ini file and edit the file name on board0 to match that of the .ccf file saved from above steps.

After all this my code works.

Thanks,
Brijen
(PS. more questions follow soon)

2 Likes

I managed to acquire image in the form of type ‘RingBuffer’. My code is:

import cvb
device = cvb.DeviceFactory.open("C:/Program Files/STEMMER IMAGING/Common Vision Blox/Drivers/CVXtiumCLHSPX8.vin", port=0)
stream = device.stream
stream.start()
try:
    for i in range(0 ,10):
        image, status = stream.wait_for(1000)
        if status == cvb.WaitStatus.Ok:
            print("Acquired image " + str(i) + " into buffer " + 
               str(image.buffer_index) + ".")
        else:
            raise RuntimeError("timeout during wait" 
                if status == cvb.WaitStatus.Timeout else 
                    "acquisition aborted")
except:
    pass 
finally:
    stream.try_abort()

And I get the output messages correctly…

Acquired image 0 into buffer 0. 
Acquired image 1 into buffer 2. 
Acquired image 2 into buffer 1. 
Acquired image 3 into buffer 0. 
Acquired image 4 into buffer 2. 
..
Acquired image 9 into buffer 0.

When I print the data shape after converting to a np_array

np_array = cvb.as_array(image, copy=False)
np_array.shape

I get

(1024, 16384)

The camera has 10720 (H) x 8064 (V) pixels. How do I read the entire image?

Thanks,
Brijen

The framegrabber also has an opinion on the size of the image; is the size in the framegrabber set correctly to match the image size of the camera?

How to set the size in the framegrabber? The %CVBDATA%Drivers/XtiumCLHSPX8 only seems to have an entry for the camera settings.ccf but not framegrabber.ccf.

I cannot access any node maps properties, I get a blank dictionary with code below

import cvb

device = cvb.DeviceFactory.open("C:/Program Files/STEMMER IMAGING/Common Vision Blox/Drivers/CVXtiumCLHSPX8.vin", port=0)

node_map = device.node_maps
node_map.keys() # response = dict_keys([]) 
device.close()

Needless to say, I couldn’t run Andreas’ Configure a Device example in Getting Started with CVBpy as the dictionary is empty.

Any help appreciated.

Thanks,
Brijen

After having another go at saving a ccf file (this time I just opened one instance of camExpert and selected camera and link in turn) , the image format has sorted out.
But there is an artefact near the top right. Any idea of how to get rid of it? Must be something in the ccf file. Though I do not get the artefact on the camExpert.camera_artefacts

Hi @bghtech,
the artifact you see in the top right is the Common Vision Blox watermark, which indicates that you do not have a license for the image acquisition (Image Manager license). You can request a 30day trial license of CVB via the License Manager.
But the artifact does not mean that you have a configuration error.

Regards,
Tim

1 Like

I don’t know how to configure the CVB Management Console such that the XTIUM PX8 card can appear as the GenICam. I know I need a .cti file for the transport layer, but not sure how to get it o generate a cti file for the XTIUM PX8 card.

At present I cannot access node_map properties. All I want to do is to be able to adjust the ExposureTime

Thanks,
Brijen

Is there an alternative way (to node_map) of setting the ExposureTime via CVB?

Or if someone has found a way of making node_map accessible for the Xtium Px8 then please do let me know.

Thanks,
Brijen

Hi Brijen,

sorry for the late reply. Dalsa is working on a transportlayer, and I got a version of the Xtium PX8 driver which provides the .cti file (it is not officially released). You can download the driver from our ftp-server:

ftp://ftp.imaging.de/docmanagertemp/Xtium-CXP_PX8_1.30.01.0509.zip

The .cti file is located in the C:\Program Files\Teledyne DALSA\Xtium-CXP PX8\GenTL\cti\X64 directory. Copy this file to the CVB directory:

C:\Program Files\STEMMER IMAGING\Common Vision Blox\GenICam\bin\win64_x64\TLIs

Access to the nodemap should be possible now. In parallel, I will be testing this setup too.

Best regards,
Martin

Hi Martin,

The CVB driver version I am using at the moment is from the weblink

https://www.commonvisionblox.com/en/software/cvb-driver/dalsa-xtium-cl-px8/

It is over 168MB. The version I downloaded from the ftp link below is only 69.5MB .

To update my installation of CVB driver, do you want me to simply run the new file over my current installation, or to uninstall from Windows Add/Remove programs
interface and then re-install the new smaller file. Does this have a newer Sapera CamExpert version packed in? previous was Sapera 8.00 (with current Sapera LT version being 8.41) .

Thanks,

Brijen

Hi Brijen,

the driver I put on the ftp-server is not the CVB driver, it’s the driver from Dalsa for the framegrabber which provides the transport layer.

Please uninstall the “Teledyne Dalsa Xtium-CXP PX8” driver first, afterwards install the new driver for the framegrabber. You should not have to uninstall/install the CVB Xtium driver.

It is only the driver for the framegrabber, installed version of Sapera LT/CamExpert is not changed.

Best regards,
Martin

Hi Martin,

As a general point, after I installed the CVB (version 13.02), I started off with a download from the weblink:
https://www.commonvisionblox.com/en/software/cvb-.driver/dalsa-xtium-cl-px8/
. On installing this file, I had Sapera CamExpert 8.0 installed . The current Sapera version is 8.41 so I was wondering if there is a way of upgrading Sapera to its current version whilst maintaining compatibility with CVB?

Thanks,

Brijen

Hi Brijen,

upgrading Sapera to the latest version 8.41 is no problem, it is compatible with CVB.

The latest version can be downloaded from the Teledyne Dalsa homepage.

Best regards,
Martin

Hi Martin,

I am wondering if the CXP_PX8 driver you sent me via ftp is a suitable replacement for my CLHS_PX8 card ? I can give it a try and see what happens, I’ve got
the original xtium-clhs_px8_111000285 driver.

I can certainly confirm that the xtium-clhs_px8_111000285 driver cannot see the node_map.

Thanks,

Brijen

I can confirm that the CXP-PX8 driver does not detect the CLHS-PX8 card.