This repository contains the manifest files for building the Allied Vision Alvium reference image for the i.MX 8M Plus Evaluation Kit.
This release is tested with:
- i.MX 8M Plus EVK
- Alvium MIPI CSI-2 cameras with firmware 12
The release is based on the i.MX Yocto Project BSP Rev. 5.15.71-2.2.0 and contains the V4L2Viewer 2.2.0. You can use 2 Alvium cameras at the same time if resolution of each camera is less than 4 MP. This is a restriction of the SOM's hardware. The CSI2 clock frequency is configured to 681250000 Hz.
This release supports v4l2 and GenICam for CSI2 access. For GenICam for CSI2 access, Vimba X 2023-2 is required.
- i.MX 8M Plus EVK
- Host PC: See NXP's requirements for i.MX Yocto Project BSP Rev. 5.15.71-2.2.0 in the i.MX Yocto Project User's Guide
- Alvium camera with Firmware 12
- SD Card 8 GB
Tip: For the prebake image, skip steps 1-4 and start with step 5.
To install the driver and layer:
- Install the repo tool
mkdir -p ~/.bin export PATH="${HOME}/.bin:${PATH}" curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo chmod a+rx ~/.bin/repo echo "export PATH=\"\${HOME}/.bin:\${PATH}\"" >> ~/.bashrc
- Initialize project directory
mkdir -p imx8mpevk-yocto cd imx8mpevk-yocto repo init https://github.com/alliedvision/alvium-manifest-imx8mpevk repo sync
- Prepare yocto build
source setup-avt-release.sh
- Build the AVT Image with the command:
bitbake avs-image-alvium-validation
- Flash the image to the SD card. If you have built the image with yocto, you can find the image here: <build_dir>/tmp/deploy/images/imx8mpevk/avs-image-alvium-validation-imx8mpevk.rootfs.wic.bz2
- Boot the board.
- Check if the camera firmware version is 12 or higher. If the camera has an earlier firmware, perform an update with Vimba X Firmware Updater.
Tip: For the prebake image, skip step 1 - 2 and start with step 3.
- Perform steps 1 - 3 from previous instructions.
- Build the SDK installer with the command:
bitbake avs-image-alvium-validation -c populate_sdk
- Install the SDK on your system by running the installer script. If you have built the sdk, you can find it here: <build_dir>/tmp/deploy/sdk/fsl-imx-xwayland-glibc-x86_64-avs-image-alvium-validation-armv8a-imx8mpevk-toolchain-5.15-kirkstone.sh
- If you have installed the sdk to the default location. You can setup the build environment by running:
source /opt/fsl-imx-xwayland/5.15-kirkstone/environment-setup-armv8a-poky-linux
The image contains three different device tree configuration.
- Two cameras connected to the board. Maximum width of both cameras is 2048. The camera on port CSI1 will be listed as "/dev/video3" and the camera on port CSI2 as "/dev/video4".
- One camera connected to CSI1. Maximum width of the cameras is 4096. The camera will be listed as "/dev/video3".
- One camera connected to CSI2. Maximum width of the cameras is 4096. The camera will be listed as "/dev/video3".
The active configuration can easily be changed by using the tool "avt-board-config"
All available configurations can be listed using the command:
avt-board-config -l
The current configuration can be changed with:
avt-board-config -s <index>
The index parameter for each configration is returned by the list all configurations command. After you have changed the configuration, a reboot is required.
- Maximum width of an image: 4096 pixels when only port 1 is used. Maximum width with both ports: 2048 pixels.
- When streaming with the pixelformat "AR24", the v4l2 control "Alpha component" must be set before the stream is started. If the value of the v4l2 control is zero, no image will be visible.
- For changing the camera feature via v4l2 controls, the v4l2 subdevice node of the cameras must be used. In many cases this is "/dev/v4l-subdev2".
- The digital binning is activated by changing the width and height. You can enter any value for the width and height but the size will be adjusted to the nearest binning configuration.
- The VIDIOC_G/S_PARM v4l2-compliance test is expected to fail
- The V4L2Viewer does not support all formats that the hardware supports.
- The payload size is limited to 66838560 when one of the single camera configurations is used and 33419280 for the two camera configuration. To test if the streaming with a configuration is possible, please use the following formula to calculate the payload size:
payload size = <image width> * <image height> * <bytes per pixel>
- When using the weston terminal, you have to manually set the GenICam TL search environment variable.
export GENICAM_GENTL64_PATH=<path to VimbaX directory>/cti
e.g. for Alvium 1500 C-500c on Port CSI1 of imx8mp-evk:
v4l2-ctl -d /dev/v4l-subdev2 --set-ctrl exposure=20000000,gain=100,brightness=0 --set-subdev-selection top=0,left=0,width=1920,height=1080
gst-launch-1.0 v4l2src device=/dev/video3 ! video/x-raw,width=1920,height=1080,framerate=30/1,io-mode=dmabuf ! waylandsink sync=false -v
To get get your Alvium CSI-2 camera and Vimba X up and running, read: Getting Started with GenICam for CSI-2 and Vimba X
Please be aware that all code revisions not explicitly listed in the Github Release section are considered a Beta Version.
For Beta Versions, the following applies in addition to the BSD 3-Clause License:
THE SOFTWARE IS PRELIMINARY AND STILL IN TESTING AND VERIFICATION PHASE AND IS PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS AND IS BELIEVED TO CONTAIN DEFECTS. THE PRIMARY PURPOSE OF THIS EARLY ACCESS IS TO OBTAIN FEEDBACK ON PERFORMANCE AND THE IDENTIFICATION OF DEFECTS IN THE SOFTWARE, HARDWARE AND DOCUMENTATION.