Kinetix¶
From: Teledyne Technologies
Class: herosdevices.hardware.teledyne.pvcam.Kinetix
Driver Quality Index: beta
Requires the following packages
This device requires additional binary drivers to run.
Warning
The PCIe Driver only works with very specific (and often outdated) kernel versions. If you need the PCIe driver you will likely need to build a docker image yourself or run it without docker.
The following script can be used with BOSS to automatically build and install the driver inside a docker container.
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
# Install prerequisites
apt-get update && apt-get install -y sudo git
# Install the vendor library itself
# We have to agree to some licenses here so we use the "yes" command.
# The EUID=1 is a little hack to trick the installer into thinking we're not root.
/bin/sh -c 'yes | /bin/bash '"${SCRIPT_DIR}"'/pvcam/pvcam__install_helper-Ubuntu.sh'
# Remove build files after installation to make image a bit smaller
rm -rf /pvcam
# We need to point the python api to the correct library path
export PVCAM_SDK_PATH="/opt/pvcam/sdk"
# Install python API
pip install --break-system-packages PyVCAM
Place the pvcam folder from the archive you can download here in the same folder as the script.
Finally, add the following lines to your docker compose file:
environment:
- PVCAM_SDK_PATH=/opt/pvcam/sdk
- PVCAM_UMD_PATH=/opt/pvcam/drivers/user-mode
- PVCAM_VERSION=3.10.2.5 # Adjust this to your version
Important
To access the camera from within the docker container follow this guide.
Note, that pvcam cameras are not linked to a nice name but are only accessible via their usb path like
/dev/bus/usb/004/004. To find this path run
lsusb | grep <NAME> | awk '{ sub(/:/, "", $4); print "/dev/bus/usb/" $2 "/" $4 }'
Replace <NAME> with the name of your device as shown by lsusb.
Driver class for the Kinetix camera.
This class adds the following device specific functionality:
The trigger delay stored in the
Kinetix.trigger_delayis calculated from the user specified trigger delay and the delay from the trigger input to the All Rows condition.
For more information refer to PvcamCamera
Note
It is well possible to that other PVCam cameras that support the fake global shutter concept (e.g. defined All Rows condition) can also be used with this driver.
Bold arguments are mandatory. For more information on the listed arguments refer to the class documentation: herosdevices.hardware.teledyne.pvcam.Kinetix If parameters appear in this list but not in the class definition, please recursively check the linked base classes for the definition of the parameter.
Argument |
Type |
Default Value |
Description |
|---|---|---|---|
cam_id |
<class ‘str’> |
Serial number of the cam. Can be obtained for example from the |
|
config_dict |
<class ‘dict’> |
Dict of configuration values like shown in the json example above. |
|
default_config |
str | None |
None |
Default key in |
lib_path |
str | None |
None |
Path to vendor library. Can also be set via the environmental variable |
The following JSON strings can be used to start a HERO device representation of Kinetix using BOSS.
{
"_id": "my_Kinetix",
"classname": "herosdevices.hardware.teledyne.pvcam.Kinetix",
"arguments": {
"cam_id": "<class 'str'>",
"config_dict": "<class 'dict'>",
"default_config": null,
"lib_path": null
}
}
generated from signature