Kinetix - Heros Devices 0.10.3 documentation

Skip to content
Back to top
View this page

# 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.

Arguments

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`

Example JSON for BOSS

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