PVCam Camera¶
From: Teledyne Technologies
Class: herosdevices.hardware.teledyne.pvcam.PvcamCamera
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.
A class to interface with Teledyne PVCam Cameras.
It manages camera configuration, acquisition, and data streaming compatible with the atomiq camera template.
Bold arguments are mandatory. For more information on the listed arguments refer to the class documentation: herosdevices.hardware.teledyne.pvcam.PvcamCamera 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 PvcamCamera using BOSS.
{
"_id": "my-camera",
"classname": "herosdevices.hardware.teledyne.PvcamCamera",
"arguments": {
"cam_id": "pvcamUSB_0",
"default_config": "default",
"config_dict": {
"default": {
"roi": [
1500,
800,
700,
700
],
"exp_mode": "Edge Trigger"
}
}
}
}
from examples/teledyne/pvcam.json
{
"_id": "my_PvcamCamera",
"classname": "herosdevices.hardware.teledyne.pvcam.PvcamCamera",
"arguments": {
"cam_id": "<class 'str'>",
"config_dict": "<class 'dict'>",
"default_config": null,
"lib_path": null
}
}
generated from signature