Kinetix

From: Teledyne Technologies

Class: herosdevices.hardware.teledyne.pvcam.Kinetix

Driver Quality Index: beta

Requires the following packages

pyvcam

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.

pvcam.boss.sh
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_delay is 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 PVCamTest program shipped with the vendor library. If you specify a wrong id, this driver will also log a list of available devices.

config_dict

<class ‘dict’>

Dict of configuration values like shown in the json example above.

default_config

str | None

None

Default key in config_dict to use.

lib_path

str | None

None

Path to vendor library. Can also be set via the environmental variable PVCAM_SDK_PATH

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

Inheritance diagram of herosdevices.hardware.teledyne.pvcam.Kinetix