CAMCUDA FlexMini 640 Raw Data Output Thermal Camera Module, 4.9 mm angled assembly
|

14-bit RAW Thermal Camera Module: FlexMini 640 vs InfiRay Mini2 640

CAMCUDA / ENGINEERING CASE NOTES

A resolved FlexMini 640 integration issue—and the checks that make a RAW image workflow clear.

FlexMini 640Define the data.
Verify the path.

640×512 LWIR · USB UVC Y16

FlexMini 640 product reference, 4.9 mm assembly. Not the customer’s unit.

Choosing a RAW thermal camera module starts with the acquisition format, not just the image on screen. OEM integration also needs a defined format, an understood image source and a buffer the host can use without confusing display processing with original data.

The CAMCUDA FlexMini 640 Raw Data Output Thermal Camera Module14-bit RAW · Y16 offers a USB UVC Y16 path for matched configurations. The module provides 14-bit RAW grayscale data in a 16-bit Y16 container. Here is a brief customer case, followed by a guide to checking that path.

The integration case: a firmware upgrade resolved the issue

A German customer’s FlexMini 640 RAW/Y16 integration issue was resolved after a firmware upgrade. The outcome illustrates why firmware compatibility belongs alongside hardware and host requirements when planning an evaluation.

The engineering workflow below uses the current FlexMini 640 guides and integration resources. It is not a reconstruction of the customer’s test session, nor a promise that the same upgrade resolves every acquisition problem.

14-bit data. 16-bit storage.

FlexMini 640 provides 14-bit original grayscale data in a 16-bit Y16 container. The original quantization has 16,384 theoretical code levels; the storage uses two bytes per pixel. A native 16-bit signal would have 65,536 theoretical code levels, but the same storage size.

CompareFlexMini 640
14-bit data in Y16
Native 16-bit data
Format comparison only
Original quantization14 bits16 bits
Theoretical code levels16,38465,536
Storage per pixel2 bytes2 bytes
Can use Y16 storageYesYes

Y16 enumeration and a uint16 buffer do not prove 16-bit original precision. Left-shifting 14-bit values by two or multiplying them by four does not add original image detail. Actual imaging performance depends on detector noise, sensitivity and correction; it is not a fourfold gain in image quality or temperature accuracy. See the Linux V4L2 luma-format specification. FlexMini 640 output is non-radiometric grayscale, not calibrated temperature data.

Use the decoding and transport details for the selected RAW mode. A format name alone does not define that mode’s packing or alignment. Do not apply another camera’s temperature-conversion formula to FlexMini 640 RAW image values.

CAMCUDA FlexMini 640 LWIR thermal camera module, 9.1 mm assembly rear connector view
FlexMini 640 rear-interface reference, 9.1 mm assembly. Confirm the selected board revision.

FlexMini 640 VS INFIRAY MINI2 640

RAW data comparison: FlexMini 640 vs InfiRay Mini2 640

Both modules use an uncooled VOx 640×512 detector, 12 μm pixels and an 8–14 μm LWIR waveband. Compare the basic imaging specifications first, then the RAW data access and host-side processing options.

FlexMini 640 vs InfiRay Mini2 640 — specifications and RAW output
Specification / outputCAMCUDA FlexMini 640
14-bit RAW · Y16
InfiRay Mini2 640
Detector / resolutionUncooled VOx / 640×512Uncooled VOx / 640×512
Pixel pitch12 μm12 μm
LWIR waveband8–14 μm8–14 μm
Nominal frame rate50 Hz hardware specification; the Y16 capture mode depends on firmware and host support.30 / 60 Hz detector frame rates.
Published NETD≤30 mK≤40 mK at 25°C, F/1.0, 25 Hz
RAW grayscale outputYes — 14-bit RAW grayscale via USB UVC Y16. The container is 16-bit; the documented grayscale data is 14-bit.No — processed video only. No original RAW grayscale frame output.
Data available to the hostOriginal 14-bit grayscale data in a 16-bit Y16 container. The documented Y16 capture example stores little-endian uint16; keep it separate from the optional 8-bit visual preview.Display-processed video frames, rather than the original RAW grayscale buffer.
RAW source selectionRAW (0), pre-AGC (3) and post-AGC (4), subject to firmware capabilities. After a required Y16 restart, verify the active source.No original RAW grayscale source exposed in the processed-video output.
Host-side image processingRetain the original grayscale samples for your own normalization and image-analysis pipeline.Work with the supplied processed video; original RAW samples are not available.

A thermal video stream and a RAW image buffer serve different integration needs. CAMCUDA FlexMini 640 supports 14-bit RAW grayscale data in a 16-bit Y16 container. InfiRay Mini2 640 outputs processed video only, with no original RAW grayscale output.

Choose FlexMini 640 when your project needs RAW data, not just a thermal picture. Access to the original grayscale buffer lets your host application control display normalization and image analysis instead of relying solely on processed video.

The FlexMini 640 RAW path is non-radiometric. Y16 describes the storage format; the documented payload is 14-bit grayscale, not 16 bits of original grayscale information. Bit depth alone does not establish calibrated temperature measurement. Nominal frame rates are not guaranteed host capture rates, and the listed NETD values are not a matched-condition benchmark. Mini2 basic specifications: Mini2 series datasheet, page 2.

Select a supported source, then verify the active source

Start with what the installed firmware actually exposes. Page 4 of the public guide introduces these source selectors; the current FlexMini 640 resources clarify their capability checks. The capability mask determines which can be used on the matched module.

Source selectors for the documented Y16 workflow — source selection does not change the documented bit depth
SelectorData path
0 · RAWEarly ISP-stage detector output; Y14 grayscale in a 16-bit container
3 · Pre-AGCBefore AGC / dynamic-range compression
4 · Post-AGCAfter AGC, described as retaining the 14-bit domain

Separate NUC (1) and SFFC (2) selectors are removed. Their entries in the guide’s explanatory table should not be treated as selectable options.

  1. Read caps_mask and current source status.
  2. Request an available source and inspect selected_source and pending.
  3. If the change is pending, restart the Y16 stream.
  4. Read active_source to verify the effective selection.

Requested is not the same as active. Treat the read-back as the completion check, not merely the successful SET response. Source selection is runtime-only and does not write Flash; do not assume a default source or retention after power cycling.

From a matched upgrade to Linux frame capture

1. Confirm the upgrade package

Before upgrading, agree the module and board revision, interface, host and compatible firmware with CAMCUDA. The public guide shows a Windows upgrade utility and calls for a power cycle if the device has not restarted after completion. A newer filename alone is not a compatibility check.

2. Enumerate the actual video device

The guide uses the following command to list available formats. /dev/video0 is an example path; identify the correct device on your host.

v4l2-ctl -d /dev/video0 --list-formats-ext

Look for Y16 and inspect its advertised sizes and intervals. The guide illustrates 640×512 at 50 fps; sustained receive performance still needs confirmation on the delivered module and host. The Linux API separates format enumeration from format negotiation. Check the driver’s returned format rather than assuming it accepted the request unchanged.

Use three distinct checks: advertised format, active image source and received frames. Seeing Y16 in the list answers the first question. Reading source status answers the second. Capturing on the intended host answers the third. Keeping those checks separate makes a support request more useful than reporting only that an image looks wrong.

3. Use the matching capture example

The Linux example builds with make. The guide then shows this capture invocation:

./raw_y16_grab /dev/video0 frame_y16.raw 640 512 5 frame_y16.pgm 10

This is the guide’s example invocation. Use the matching README for argument definitions and adapt the device path to your host; do not infer each number’s purpose from its position. Confirm the active source and preserve the original buffer before feeding the frames into an algorithm.

Preserve the RAW buffer and troubleshoot the right layer

The supplied capture example stores consecutive little-endian uint16 frames without per-frame headers. For its 640×512 two-byte storage layout, one frame contains 655,360 bytes. That file size is not a transport-throughput measurement or a universal driver-stride rule.

The optional PGM is an 8-bit, percentile-stretched preview: useful for seeing the scene, but different from the original analysis buffer. Keep the RAW file alongside the source status and negotiated format. Otherwise, a display transformation can be mistaken for a change in the acquired data.

For comparison work, retain an untouched acquisition file and record which output each processing stage consumes. A display preview and a RAW frame should not be compared as though they were the same representation. This simple separation helps both the integration team and CAMCUDA discuss the data path without guessing what a screenshot contains.

Practical checks before changing the integration
ObservationNext check
Y16 is not listedConfirm device path, board, installed firmware and matching upgrade support.
Source request succeeds, image appears unchangedInspect pending state, restart Y16 when required, then read active_source.
Preview values differ from the RAW fileCheck whether the compared output has been converted to the 8-bit preview.
Capture does not meet the intended rateCheck negotiated mode, host bandwidth and received frames; nominal settings are not measured delivery.
Pixel decoding is uncertainRequest source-specific alignment and scaling rather than guessing a mask or shift.

Agree acceptance checks around the delivered configuration: source-switch behavior, shutter behavior and received-frame performance on the intended host. Keep a short record of the module and board revision, firmware, selected and active source, mode and output files. These are practical evaluation checks, not a substitute for measuring the configuration you plan to deploy.

CAMCUDA FlexMini 640 at a glance

Use this summary to frame the evaluation, then check the current product page for configuration, optics and ordering options. Hardware specifications and the firmware-dependent acquisition path are listed separately.

CAMCUDA FlexMini 640 product reference
ProductCAMCUDA FlexMini 640 Raw Data Output Thermal Camera Module
14-bit RAW · Y16
Product configurationFlexMini 640
14-bit RAW · Y16
Detector / resolutionUncooled VOx / 640×512
Pixel pitch / waveband12 μm / 8–14 μm
Acquisition path14-bit RAW grayscale data in a 16-bit Y16 container. The documented capture reference uses USB UVC Y16; this is not native 16-bit sampling precision.
Image purposeNon-radiometric grayscale acquisition
Lens options4.1, 4.9, 9.1, 13, 19 and 35 mm; availability and configuration by quotation

Guides, SDK resources and compatibility

The four-page English and German guides bring the upgrade procedure, Linux format check, capture example and source-selector reference into one place.

SDK compatibility: the reviewed control SDK v1.11.0 main header references ir_ctrl_temperature.h, which is absent from that package. Obtain a corrected matching package and confirm header, library and hardware compatibility before build integration. It is not a complete, ready-to-build SDK release. The independent Linux V4L2 capture example is separate from this packaging limitation.

These are current integration resources, not a record of the customer’s historical versions. Confirm the approved package because shared-folder contents can change. Where guide and archive folder labels differ, use the file basenames to identify the relevant tools.

Public FlexMini 640 RAW Y16 guide showing upgrade completion and Linux format enumeration
Public-guide demonstration, not the customer’s test record. 50 fps is the illustrated mode.

Planning an evaluation? Share your host platform, lens, interface, required source and quantity through the FlexMini 640 product page. CAMCUDA can review the requested configuration before you commit to the integration.

Frequently asked questions

Does FlexMini 640 provide native 16-bit precision or calibrated temperature data?

No. Its documented output is 14-bit original grayscale in a 16-bit Y16 container. Y16 and uint16 describe storage; neither establishes 16-bit original precision or calibrated temperature output. Preserve the original buffer separately from display normalization.

What should I check if Y16 is not available on my Linux host?

Check the actual device path and enumerated formats, then confirm the module, interface board and installed firmware. Ask CAMCUDA to review upgrade compatibility for that configuration. Once Y16 is available, verify the negotiated mode and active source as separate steps. Avoid treating a firmware update as a universal capture fix.

How can I confirm that pre-AGC output is active?

Check the capability mask before requesting source 3. Inspect selected_source and pending; restart the Y16 stream when required, then read active_source. The effective source is the useful verification result—not simply a successful setting request.

References

Similar Posts