Monitoring Camera Temperature
Introduction
Zivid cameras expose the temperatures of several internal components through the
camera state (Camera::state()).
You do not need to monitor these temperatures to protect the camera. The camera firmware has built-in thermal protection and keeps the camera within safe operating conditions on its own.
When to monitor temperatures
A typical use case is when the camera is integrated into a custom enclosure or protective housing, for example an air-conditioned housing that lets the camera operate in an environment that is otherwise outside its specified temperature range (too hot or too cold). In such a setup, the camera’s temperature sensors can be used as feedback to regulate the air conditioning and keep the camera within its operating range.
The following temperatures are available:
Component |
Description |
|---|---|
DMD |
Temperature of the DMD (the projector chip). |
General |
General internal temperature of the camera. |
LED |
Temperature of the projector LED. |
Lens |
Temperature near the camera lens. |
PCB |
Temperature of the main printed circuit board. |
Note
The temperatures are reported in degrees Celsius.
Note
None of these temperatures are the ambient (room) temperature. They are temperatures of internal camera components, so it is normal and expected that they read higher than the ambient temperature. The operating temperature range in the datasheet (for example 0–40 °C or 0–45 °C) refers to the ambient temperature, and should not be compared directly against these component temperatures.
Reading the temperatures
The temperatures are read from the camera state, so no capture is required.
After connecting to the camera, read each temperature from
camera.state().temperature():
const auto temperature = camera.state().temperature();
std::cout << "Temperatures:" << std::endl;
std::cout << " DMD: " << temperature.dmd().value() << " °C" << std::endl;
std::cout << " LED: " << temperature.led().value() << " °C" << std::endl;
std::cout << " Lens: " << temperature.lens().value() << " °C" << std::endl;
std::cout << " PCB: " << temperature.pcb().value() << " °C" << std::endl;
std::cout << " General: " << temperature.general().value() << " °C" << std::endl;
var temperature = camera.State.Temperature;
Console.WriteLine("Temperatures:");
Console.WriteLine(" DMD: {0} °C", temperature.DMD);
Console.WriteLine(" LED: {0} °C", temperature.LED);
Console.WriteLine(" Lens: {0} °C", temperature.Lens);
Console.WriteLine(" PCB: {0} °C", temperature.PCB);
Console.WriteLine(" General: {0} °C", temperature.General);
Printing the full camera state (camera.state()) also includes these
temperatures, alongside the camera’s connection and network information.
Note
To get the status of the camera’s temperatures (and other health indicators) as an aggregated, easy-to-interpret report rather than raw values, see the Camera Health Check.