
Тепловизионный модуль 640x512 USB UVC: премиальное plug-and-play LWIR-решение для интеграции с БПЛА и робототехникой
22 июля 2026 г.
Массивный модуль тепловизионной камеры AMG8833 с питанием по USB: готов ли он к промышленному инфракрасному измерению температуры?
23 июля 2026 г.640x512 Arduino-совместимый UART-модуль тепловизионной камеры: руководство по интеграции высокого разрешения
Подключение высокочувствительного длинноволнового инфракрасного (LWIR) датчика к встраиваемой системе управления раньше было настоящей головной болью. В прежние времена для получения чёткого тепловизионного изображения 640x512 требовались громоздкие, энергоёмкие одноплатные компьютеры под управлением раздутых дистрибутивов Linux или дорогие FPGA-буферы кадров, которые нагревались сильнее, чем измеряемые объекты. При попытке подключить тепловизионную матрицу к маломощному микроконтроллеру вы за считанные минуты сталкивались с зависанием последовательных шин и ошибками нехватки памяти.
Послушайте, современные неохлаждаемые микроболометрические ядра на основе оксида ванадия (VOx) в паре со специализированными процессорными движками на базе ASIC изменили правила игры. Суть вот в чём: современное аппаратное обеспечение переносит сложные вычисления — радиометрические расчёты, коррекцию неоднородности (NUC), пространственную фильтрацию и сжатие динамического диапазона — непосредственно на бортовую ASIC. Это освобождает вашу основную систему для выполнения базовой логики управления без перегрева.
Благодаря разделению обработки на двухканальную архитектуру эти сенсорные ядра обеспечивают лучшее из двух миров. Пока высокоскоростные интерфейсы, такие как RTSP через Ethernet, композитное видео CVBS или MIPI CSI-2, передают живое тепловизионное движение с высокой частотой кадров, низкоскоростные каналы управления и телеметрии спокойно работают через последовательное соединение UART. Такая конфигурация позволяет лёгким микроконтроллерам, таким как Arduino, ESP32 или STM32, извлекать точные температурные матрицы, корректировать значения излучательной способности, запускать повторную калибровку плоского поля и считывать точечную телеметрию с помощью небольших пакетов TTL-последовательного интерфейса — и всё это без переполнения SRAM или зависания контуров управления.

В цеху мы видим, как инженеры совершают одни и те же ошибки при подключении и настройке протоколов тепловизионных ядер. Это техническое руководство раскрывает лежащую в основе физику, стратегии аппаратного подключения, протоколы последовательной телеметрии и код драйвера на C++, необходимые для надёжного развёртывания arduino-совместимый uart-модуль тепловизионной камеры - 640x512 в промышленных периферийных системах и полезных нагрузках дронов.
Содержание
- 👉 Архитектурный анализ LWIR микроболометрических датчиков 640x512
- 👉 Сопряжение маломощных микроконтроллеров через телеметрию UART
- 👉 Аппаратное подключение, оптимизация питания и гальваническая развязка сигналов
- 👉 Промышленная автоматизация, периферийный ИИ и интеграция полезной нагрузки БПЛА
- 👉 Спецификации и сравнение промышленных модулей тепловизионных камер
- 👉 План внедрения и каркас кода Arduino на C++
- 👉 Углублённые часто задаваемые вопросы (FAQ)
- 👉 Итоговый контрольный список для инженерной интеграции
Архитектурный анализ LWIR микроболометрических датчиков 640x512
Переход от датчиков с низким разрешением (таких как матрица 80x60 или 160x120) к фокальной плоскости матрицы (FPA) 640x512 полностью меняет возможности обнаружения в полевых условиях. Сетка 640x512 даёт вам ровно 327 680 дискретных микроболометрических пикселей. По сравнению со стандартным датчиком 160x120 (который даёт всего 19 200 пикселей), вы получаете 17-кратный скачок пространственной плотности пикселей. Это дополнительное разрешение значительно улучшает соотношение расстояния к размеру пятна (D:S), позволяя снимать точные показания температуры с расстояния в сотни футов.
Неохлаждаемые тепловые датчики работают, улавливая энергию в длинноволновом инфракрасном (LWIR) спектре, который находится в диапазоне от 8 мкм до 14 мкм длин волн. Каждый пиксель в этой сетке 640x512 представляет собой крошечную, чувствительную к теплу микромембрану, подвешенную над кремниевой подложкой — интегральной схемой считывания (ROIC) — на сверхтонких опорных ножках. Когда инфракрасный свет попадает на плёнку из оксида ванадия (VOx) или аморфного кремния (a-Si), материал нагревается и изменяет своё электрическое сопротивление. ROIC построчно считывает эти изменения сопротивления, преобразуя их в уровни сырого напряжения, которые отправляются на бортовую ASIC для оцифровки и фильтрации.
При выборе тепловизионного ядра для аппаратной интеграции внимательно следите за следующими физическими параметрами:
- ⚙️ Шаг пикселя (12 мкм против 17 мкм): Современные ядра 640x512 используют плотный шаг пикселя в 12 микрометров (12 мкм). Уменьшенный шаг пикселя означает, что физическое сенсорное стекло меньше, что позволяет использовать более короткие и лёгкие сборки германиевых линз, сохраняя при этом то же самое поле зрения (FOV). Снижение веса стекла имеет огромное значение, если вы создаёте полезную нагрузку для подвесов дронов или лёгких инспекционных роботов.
- 🌡️ Эквивалентная шуму разность температур (NETD): Измеряемая в милликельвинах (мК), NETD показывает наименьшую разницу температур, которую датчик может уловить на фоне теплового шума. Хорошие ядра промышленного класса имеют NETD ≤40 мК (или ≤30 мК с объективом f/1.0), что означает, что система может стабильно разрешать колебания температуры до 0,03°C.
- 📐 Мгновенное поле зрения (IFOV): IFOV определяет физическую пространственную область, которую видит один пиксель, и рассчитывается как $IFOV = d / f$, где $d$ — шаг пикселя (12 мкм), а $f$ — фокусное расстояние объектива. Матрица 640x512 даёт гораздо более узкое IFOV, чем меньшие датчики с идентичной оптикой, позволяя обнаруживать небольшие цели, такие как горячие электрические соединения или подшипники двигателей, с большого расстояния.
- 🔬 Прецизионные оптические сборки: Направление чистого LWIR-света на широкую матрицу 640x512 требует специализированного стекла, настроенного на пропускание инфракрасного излучения. Линзы, созданные поставщиками оптики, такими как LightPath Technologies используют германий с антибликовым покрытием или халькогенидное стекло для уменьшения сферических аберраций и сохранения равномерной тепловой точности по всему изображению.
Сопряжение маломощных микроконтроллеров через телеметрию UART
При подключении тепловизионного ядра 640x512 к микроконтроллеру необходимо тщательно учитывать тактовую частоту процессора, пропускную способность шины и объём встроенной SRAM. Игнорирование узких мест памяти — самый быстрый способ получить повреждённые последовательные буферы и зависшие микроконтроллеры.
Давайте проведём реальные расчёты попытки передачи полных, несжатых тепловых кадров в память. Стандартные радиометрические тепловизионные датчики выдают значения пикселей как 16-битные беззнаковые целые числа, представляющие сырые шаги теплового АЦП. Объём ОЗУ, необходимый для буферизации всего одного несжатого теплового кадра 640x512, выглядит так:
$$\text{Размер буфера кадра} = 640 \times 512 \times 2 \text{ байта} = 655 360 \text{ байт } (\approx 640 \text{ КБ})$$
Классический 8-битный Arduino Uno (ATmega328P) имеет всего 2 КБ общей SRAM и работает на частоте 16 МГц. 8-битный Arduino Mega 2560 предоставляет 8 КБ SRAM. Даже мощные 32-битные чипы, такие как ESP32 (с 520 КБ внутренней SRAM) или SAMD21 (32 КБ SRAM), не могут разместить один сырой кадр размером 640 КБ в непрерывной памяти без внешних микросхем PSRAM. Кроме того, передача 640 КБ сырых значений пикселей со скоростью 30 кадров в секунду через стандартный последовательный вывод потребовала бы скорости передачи значительно выше 156 мегабит в секунду (Мбит/с) — намного больше, чем могут обеспечить физические аппаратные выводы TTL UART.
Решение заключается в архитектуре, которая позволяет бортовой ASIC камеры выполнять основную работу. ASIC обрабатывает захват изображения, коррекцию неравномерности, шумоподавление, рендеринг цветовой палитры и температурное масштабирование прямо на специализированном видеооборудовании. Он выдает чистое аналоговое композитное видео высокой четкости (CVBS) или цифровые IP-потоки (RTSP) через выделенные видеоинтерфейсы напрямую на дисплеи или процессоры граничного ИИ.
В то же время ядро открывает маломощный командный и телеметрический порт UART. Вместо того чтобы заставлять ваш микроконтроллер обрабатывать массивы кадров по 640 КБ, внутренний ASIC камеры анализирует сцену и отправляет легковесные последовательные пакеты (обычно от 16 до 64 байт) на ваш Arduino. Эти пакеты предоставляют вам полезные данные, не перегружая ваш контур управления:
- 📌 Глобальные радиометрические точечные температуры: Значения с плавающей запятой в реальном времени для максимальной температуры цели, минимальной температуры цели и температуры сцены в центральной точке.
- 🎯 Hotspot Pixel Coordinates: Exact $X, Y$ coordinate vectors mapping the location of the highest heat anomaly in the 640x512 frame.
- 🎨 Dynamic Palette Toggling: Serial commands to flip the video output between Ironbow, White Hot, Black Hot, Rainbow, and Isotherm color spaces on the fly.
- 🔄 Flat-Field Correction (FFC) Controls: Triggers to fire internal mechanical shutters or software NUC routines to keep thermal readings accurate when ambient temperatures shift.
If you want a deeper look into the sensor integration side, check out our engineering write-up on high-precision thermal module integration.
Аппаратное подключение, оптимизация питания и гальваническая развязка сигналов
Wiring up a 640x512 thermal module in an industrial environment takes clean electrical design. Uncooled microbolometers are notoriously sensitive to power rail ripple and electromagnetic noise. Dirty power supplies will cause annoying horizontal lines to crawl across your thermal output.
Most industrial 640x512 thermal modules break out connections using fine-pitch Hirose or Molex ribbon connectors. Here is a standard hardware pinout and wiring setup for an industrial UART/Video thermal core:
| Pin Number | Signal Name | Electrical Specification | Recommended Connection |
|---|---|---|---|
| Pin 1 | VCC (+5V DC) | 5.0V DC ±0.2V (Peak 1.5A during FFC shutter) | Regulated Low-Noise LDO Power Supply |
| Pin 2 | GND | 0V Logic Ground Return | System Common Ground Plane |
| Pin 3 | UART_TX | 3.3V TTL Logic (Transmit Output from Camera) | Arduino RX Pin (via 3.3V/5V Level Shifter if using 5V MCU) |
| Pin 4 | UART_RX | 3.3V TTL Logic (Receive Input to Camera) | Arduino TX Pin (via 3.3V/5V Level Shifter if using 5V MCU) |
| Pin 5 | CVBS+ | 1.0V p-p Composite Analog Video (75Ω) | Analog Video Monitor / FPV Transmitter Core |
| Pin 6 | CVBS- / Shield | Analog Ground / Coaxial Shield | Display Analog Ground Return |
| Pin 7-8 | ETH_TX / RX | Differential Pair (RTSP / IP Video Stream) | RJ45 Magnetic Jack / Ethernet Switch Core |
When laying out power traces and logic runs on custom carrier boards, keep these hardware rules in mind:
- ⚡ Bi-Directional Logic Level Shifting: Standard 8-bit Arduinos (like the Mega 2560 or Uno) run 5.0V TTL logic. Modern thermal camera ASICs use 3.3V CMOS logic on their UART lines. Hooking a 5V TX line directly into a 3.3V camera RX pin will fry the ASIC input stage over time. Always put an active level shifter (like a MOSFET-based BSS138 converter) between your serial pins.
- 🔋 Power Supply Ripple Suppression: Thermal FPAs need ultra-clean power. Running camera cores directly off noisy DC-DC buck converters or motor power rails introduces spatial image noise. Power your thermal core through an independent Low-Dropout (LDO) linear regulator, and place a $100\mu\text{F}$ tantalum capacitor alongside a $0.1\mu\text{F}$ ceramic capacitor right next to the camera power connector.
- 🔌 Ground Plane Isolation: Keep power ground, digital UART signal ground, and high-frequency analog video ground separated on your PCB. Tie them together at a single star-ground point near the primary power terminal to prevent ground loops from ruining your analog video signal.
Промышленная автоматизация, периферийный ИИ и интеграция полезной нагрузки БПЛА
Pairing 640x512 thermal vision with an Arduino-level UART telemetry line opens up reliable system designs across drones, robotics, and factory monitoring.
On airborne drone payloads, keeping weight low and power efficiency high directly impacts overall flight time. Mounting a high-res thermal sensor onto an airframe lets operators run roof scans, solar farm inspections, and power line checks from safe flight distances. An onboard microcontroller reads flight telemetry over MAVLink while continuously checking thermal readings over UART. When target temperatures cross safety limits ($>85^\circ\text{C}$), the microcontroller logs GPS vectors, flips the camera shutter, and broadcasts immediate alert tags to ground crews over telemetry radios. If you are building custom airframes and gimbal assemblies, platforms manufactured by drone builders like OBSETECH offer ruggedized airframes tuned for dual-sensor payloads.
In factory edge automation, dual-processor setups separate heavy visual AI from low-latency safety interlocks. An edge AI board (such as an NVIDIA Jetson Orin Nano or Raspberry Pi 5) ingests high-res RTSP video over Ethernet to run vision models like YOLOv8 for object detection. At the same time, an isolated micro-controller queries the camera over UART. Even if the main AI platform drops frames or suffers software glitches, the dedicated hardware microcontroller keeps reading target temperatures, guaranteeing immediate mechanical relay shutoff if industrial equipment overheats.
For operations needing visual optical context alongside infrared detection, dual-light camera cores—such as our 256 двойной тепловизионный и визуальный сенсорный модуль—offer visible light and thermal channels in one compact enclosure.
Спецификации и сравнение промышленных модулей тепловизионных камер
Selecting the right thermal camera module for an embedded build comes down to evaluating resolution, pixel pitch, interface options, package mass, and telemetry support. Below are technical breakdowns of two featured industrial thermal camera modules.
Product 1: Uncooled Infrared RJ45 CVBS RTSP IP 640*512 Thermal Sensor Camera Module
Built for industrial security, long-range defense systems, and drone integrations, this thermal camera core is built around a 640x512 VOx microbolometer array backed by an onboard ASIC processing engine. It delivers versatile interface options, outputting IP video over RJ45 Ethernet (RTSP), low-latency composite analog video (CVBS) for direct display feeds, and a lightweight TTL UART control interface for real-time telemetry extraction using Arduino or ESP32 hardware. Its compact footprint and low power draw make it ideal for weight-restricted aerial payloads.
| Разрешение | 640 x 512 Pixels |
| Тип детектора | Uncooled VOx Microbolometer Array |
| Шаг пикселя | 12 мкм |
| Интерфейсы | RJ45 Ethernet (RTSP/IP), CVBS Analog Composite, UART Serial |
| Primary Application | UAV Payloads, Long-Range Surveillance, Industrial Security |
Посмотреть детали продукта и цены ➔
Product 2: MD Series 384x288 Uncooled Infrared Thermal Camera Module
The Purpleriver MD Series module brings high thermal precision to localized monitoring, handheld robotics, and embedded equipment inspection. Packing a 12μm uncooled infrared array, it delivers clear thermal frames in a light, micro-sized package. Designed by an engineering team with roots at the Hong Kong University of Science and Technology (HKUST) and former Huawei HiSilicon R&D groups, the MD series supports plug-and-play connections across MIPI, USB, CVBS, and UART outputs. Full OEM customization options let development teams modify lens mounts, connector pinouts, and custom communication protocols for specific system designs.
| Разрешение | 384 x 288 пикселей |
| Тип детектора | Uncooled Infrared Sensor (12μm Pitch) |
| Интерфейсы | MIPI, USB, CVBS Composite, UART Telemetry |
| Engineering Team | HKUST Academic & Former Huawei HiSilicon R&D Team |
| Primary Application | Industrial Predictive Maintenance, OEM System Integration, Robotics |
Посмотреть детали продукта и цены ➔
Сравнение технических характеристик
| Параметр спецификации | 640x512 ASIC IP/CVBS Module | Модуль серии MD 384x288 |
|---|---|---|
| Focal Plane Resolution | 640 x 512 (327,680 Pixels) | 384 x 288 (110,592 Pixels) |
| Шаг пикселя | 12 мкм | 12 мкм |
| Спектральный диапазон | от 8 мкм до 14 мкм (LWIR) | от 8 мкм до 14 мкм (LWIR) |
| Digital/Video Interfaces | RJ45 Ethernet (RTSP/IP), CVBS | MIPI, USB 2.0, CVBS |
| Control & Telemetry | UART TTL Serial Protocol | UART TTL Serial Protocol |
| Form Factor Target | Medium-to-Long Range Aerial Payloads | Compact OEM Robotics & Maintenance Systems |
| Customization Services | Hardware & Software OEM/ODM | Hardware & Software OEM/ODM |
For custom engineering inquiries, head directly to our secure OEM order page.
План внедрения и каркас кода Arduino на C++
The practical C++ implementation below shows how an arduino-совместимый uart-модуль тепловизионной камеры - 640x512 talks to an Arduino host (such as an Arduino Mega 2560 or ESP32 using a dedicated hardware serial port Serial1). The code periodically queries the camera core, decodes returning serial bytes, pulls maximum scene temperatures alongside their exact $X, Y$ pixel coordinates, and monitors temperature alarm thresholds.
/*
* Industrial High-Resolution 640x512 Thermal Camera UART Driver
* Architecture: Non-blocking hexadecimal protocol parser
* Target MCUs: Arduino Mega 2560, ESP32, STM32 (3.3V Logic on Serial1)
*/
#include <Arduino.h>
// Protocol framing definitions for camera ASIC interface
const uint8_t FRAME_HEADER_1 = 0x55;
const uint8_t FRAME_HEADER_2 = 0xAA;
const uint8_t CMD_GET_SPOT_METRICS = 0x81;
const uint8_t FRAME_FOOTER = 0x0D;
struct ThermalTelemetry {
float maxTemperature;
float minTemperature;
uint16_t maxPixelX;
uint16_t maxPixelY;
bool packetValid;
};
// Function Declarations
void sendTelemetryQuery();
ThermalTelemetry processIncomingSerialData();
void setup() {
// Initialize USB Serial Debug Line to Host PC
Serial.begin(115200);
while (!Serial) { ; } // Wait for terminal connection
// Initialize Hardware UART interface connected to Thermal Module
// NOTE: Verify bi-directional logic level shifter is present if using 5V MCU!
Serial1.begin(115200);
Serial.println(F("[SYSTEM OK] Thermal Camera Telemetry Interface Online."));
delay(1000);
}
void loop() {
static unsigned long lastQueryTimestamp = 0;
const unsigned long queryIntervalMs = 250; // Query rate: 4 Hz
// Execute non-blocking timer query
if (millis() - lastQueryTimestamp >= queryIntervalMs) {
lastQueryTimestamp = millis();
sendTelemetryQuery();
}
// Parse incoming serial data from camera module
if (Serial1.available() >= 12) {
ThermalTelemetry metrics = processIncomingSerialData();
if (metrics.packetValid) {
Serial.print(F("[RADIOMETRY] Max Temp: "));
Serial.print(metrics.maxTemperature, 2);
Serial.print(F(" °C at Pixel Vector X: "));
Serial.print(metrics.maxPixelX);
Serial.print(F(" | Y: "));
Serial.println(metrics.maxPixelY);
// System Alarm Condition
if (metrics.maxTemperature > 80.0f) {
Serial.println(F("[ALARM WARNING] Thermal Safety Threshold Exceeded!"));
// Digital relay actuation commands can be triggered here
}
}
}
}
void sendTelemetryQuery() {
// Construct 6-Byte Serial Frame: [HEADER1, HEADER2, LENGTH, CMD, CHECKSUM, FOOTER]
uint8_t packet[6];
packet[0] = FRAME_HEADER_1;
packet[1] = FRAME_HEADER_2;
packet[2] = 0x02; // Payload Byte Count
packet[3] = CMD_GET_SPOT_METRICS;
packet[4] = (uint8_t)(FRAME_HEADER_1 ^ CMD_GET_SPOT_METRICS); // XOR Checksum
packet[5] = FRAME_FOOTER;
Serial1.write(packet, 6);
}
ThermalTelemetry processIncomingSerialData() {
ThermalTelemetry data = {0.0f, 0.0f, 0, 0, false};
// Scan serial buffer for matching double-header frame alignment
if (Serial1.read() == FRAME_HEADER_1) {
if (Serial1.read() == FRAME_HEADER_2) {
uint8_t length = Serial1.read();
uint8_t command = Serial1.read();
if (command == CMD_GET_SPOT_METRICS) {
// Read raw data bytes from camera ASIC
uint8_t rawMaxHigh = Serial1.read();
uint8_t rawMaxLow = Serial1.read();
uint8_t xCoordHigh = Serial1.read();
uint8_t xCoordLow = Serial1.read();
uint8_t yCoordHigh = Serial1.read();
uint8_t yCoordLow = Serial1.read();
uint8_t checksum = Serial1.read();
uint8_t footer = Serial1.read();
if (footer == FRAME_FOOTER) {
// Reconstruct raw 16-bit signed integer and scale to Celsius
int16_t rawSignedTemp = (int16_t)((rawMaxHigh << 8) | rawMaxLow);
data.maxTemperature = rawSignedTemp / 10.0f; // Scale factor: 0.1°C per LSB
data.maxPixelX = (uint16_t)((xCoordHigh << 8) | xCoordLow);
data.maxPixelY = (uint16_t)((yCoordHigh << 8) | yCoordLow);
data.packetValid = true;
}
}
}
}
return data;
}

Углублённые часто задаваемые вопросы (FAQ)
Can an 8-bit Arduino process full 640x512 thermal video frames directly?
The key to making low-power microcontrollers work with 640x512 thermal modules is leaning on the camera's onboard ASIC. The ASIC handles non-uniformity correction (NUC), image processing, and temperature math right on the camera, outputting visual video over hardware channels (like RTSP Ethernet or CVBS analog). At the same time, the camera sends compact telemetry bytes (16 to 32 bytes) over UART to your Arduino. This architecture lets your microcontroller track target hot-spots, trigger alerts, and run control logic without touching a video buffer.
Why is bi-directional logic level shifting critical when connecting an Arduino to a camera UART interface?
Even on the receiving side, while a 3.3V signal from the camera might trigger a high logic level on a 5V MCU, signal noise in industrial environments will lead to dropped serial packets and framing errors. Installing an active bi-directional level shifter (like a BSS138 MOSFET driver) cleanly maps signals between 5.0V and 3.3V, keeping your hardware safe and your serial bus stable.
How do ambient temperature shifts affect microbolometer calibration, and how is it managed over UART?
To keep readings accurate, thermal camera modules perform Flat-Field Correction (FFC), also known as Non-Uniformity Correction (NUC). During an FFC cycle, an internal shutter drops in front of the sensor (or a digital algorithm runs) to give the array a uniform thermal baseline. The camera ASIC recalculates gain and offset parameters for every pixel in the 640x512 matrix. You can send serial commands over UART from your Arduino to trigger FFC cycles whenever ambient conditions swing.
Итоговый контрольный список для инженерной интеграции
Before deploying your thermal camera setup in the field, double-check your build against this integration checklist:
- ✅ Voltage Logic Compliance: Active bi-directional logic level shifters installed between 5.0V microcontroller serial pins and 3.3V camera ASIC I/O lines.
- ✅ Regulated Power Supply: Dedicated 5V Low-Dropout regulator rated for at least 2.0A peak current to handle transient surges during mechanical shutter fires.
- ✅ Filtering Capacitors: Decoupling capacitor pair ($100\mu\text{F}$ tantalum + $0.1\mu\text{F}$ ceramic) soldered right next to the camera power connector pins.
- ✅ Common Grounding: Single-point ground path set up across power supply, microcontroller, level shifters, and external video display boards.
- ✅ Non-Blocking Code Structure: Embedded code relies on timer offsets (`millis()`) and frame headers to parse serial bytes without halting safety control loops.
- ✅ Lens Selection: Anti-reflective Germanium or Chalcogenide glass selected to match your target Field-of-View (FOV) and operating distance requirements.
📚 Ссылки и дополнительная литература
- Optical Engineering: LightPath Technologies Precision Thermal Optics Solutions
- UAV Hardware Platforms: OBSETECH Tactical Drone & Gimbal Hardware Systems
- Technical Integration Guide: High Precision Thermal Module Integration Best Practices
- Dual Thermal & Visual Product: 256 Dual Thermal and Visual Sensor Camera Core
- Procurement & Custom Ordering: Thermal Sensor Engineering Procurement Portal














