YAVTA – Low-level camera tests & RAW capture
With our Ezpire building block for YAVTA (Yet Another V4L2 Test Application) offers you the perfect tool for hardware-level camera evaluations on PHYTEC hardware. The compact YAVTA test applications and corresponding shell scripts are already integrated into our phytec-vision-image. Whether system debugging, sensor calibration, or full-resolution RAW image acquisition – YAVTA gives you direct control over the V4L2 interface.
What is YAVTA?
YAVTA (Yet Another V4L2 Test Application) is an extremely lightweight C program originally developed by the maintainer of the Linux V4L2 subsystem. Its primary purpose is to test video interfaces at the kernel level and to read image data (frames) directly, without going through large multimedia frameworks (such as GStreamer or OpenCV).
In the PHYTEC context, YAVTA is the "Swiss Army knife" for embedded vision developers. It is ideally suited for validating the basic function of a phyCAM camera module, reading formats, or saving unaltered RAW images (8, 10, or 12-bit) directly from the camera sensor to the internal memory.
Our service: YAVTA out-of-the-box
We have already integrated YAVTA and its associated configurations into our phytec-vision-images (Vision-BSPs). You receive a ready-to-use environment with pre-built scripts for the most common low-level use cases:
Pre-compiled C binary: The native YAVTA program is already available in an executable form on the file system of your PHYTEC module.
RAW image capture: Simply save RAW files directly at the sensor's maximum resolution using predefined scripts.
Variable image formats: Use our pre-made scripts to capture images in different resolutions and bit depths (e.g. 10-bit or 12-bit RAW).
Direct V4L2 integration: In addition to YAVTA, we also integrate the tool v4l2-ctl, which allows you to configure the camera hardware and controller interface directly via the console before image capture.
Full documentation: In the "YAVTA Examples" section of our phyCAM Getting Started Guide, you will find all commands explained in detail.
Technical Deep Dive
Unlike GStreamer, YAVTA does not build a complex pipeline. It simply opens the device node (e.g., /dev/video0) and requests the necessary information via... Memory Mapping (mmap) buffers the kernel, starts the video stream, and saves the raw data to the hard drive. This makes the tool extremely fast and immune to errors in higher software layers.
Before YAVTA can read image data, the camera sensor and the processor's V4L2 interface (zBiMX 8M Plus or i.MX 93) must be configured. In our BSPs, this is done using the v4l2-ctl tool.
A typical, direct access (without a shell script wrapper) works as follows: You select the desired V4L2 device (e.g., the first camera device), start a single capture pass via a memory-mapped stream mechanism, and write exactly one captured frame as a RAW file to the file system (e.g., under a freely selectable filename such as raw_image1.raw).
Our provided yavta-capture... scripts are designed to natively capture the respective Bayer pattern (e.g., GRBG, RGGB) and bit depth of the connected phyCAM (VM-x16, VM-x20, etc.). These raw, uncompressed *.raw or *.bin files are perfectly suited for offline analysis on a PC (e.g., with tools like ImageJ or dedicated RAW viewers) to evaluate the exact sensor characteristics and lens properties before using ISPs.
Recommended Hardware
To evaluate our System on Modules and phyCAM modules in practice, we offer tailored Vision Development Kits. These bundles contain everything you need to get started: System on Module (SoM), baseboard, camera, lens, and a pre-installed Vision BSP with all YAVTA examples.
For demanding video applications, we particularly recommend these platforms:
Our benchmark for embedded vision – with dual ISP and dedicated AI unit (NPU) for high-performance multi-camera setups.
The next generation of architecture, equipped with massive AI computing power and the latest MIPI-CSI interfaces for high-resolution streaming.
You can find more Vision setups for other SoCs and form factors on our website. Imaging Kit Overview Page.
The PHYTEC phyCAM portfolio
YAVTA integration unfolds its full potential through our Extensive range of industrial-grade camera modules (phyCAM series)Whether rolling shutter or global shutter, monochrome or color, 1 megapixel to 4k resolutions – our hardware and software drivers are perfectly matched.
Which setup best suits your requirements? Camera modules, for example, can be easily exchanged via the standardized phyCAM interface. Talk to us – We will gladly help you choose the right hardware.
Links & Resources
All YAVTA demo scripts are integrated into our phytec-vision-image. Here's how to get started in just a few steps:
Using a PHYTEC Vision Development Kit: The Vision image is pre-installed at the factory. You can boot directly and get started.
With standard kits or SBCs: Download the phytec-vision image yourself. To do this, go to the product page of your board (e.g., eBiMX 8M Plus) and switch to the tab. Downloads.
Here's how to find the YAVTA instructions:
On your board's product page, navigate to Downloads > Image Processing > Quick Start Guides with cameras.
Open the Getting Started Guide phyCAM.
In the section YAVTA Examples (e.g., section 11.2) you will find detailed instructions and all pre-configured YAVTA scripts for your setup.