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.
What happens when a component overheats
The camera firmware continuously checks the projector LED and DMD temperatures before each capture. If either temperature is too high, the firmware rejects the capture instead of running it, and the SDK throws an exception on the capture call. This matches the Error severity reported for these components by the camera health check, which is LED above 70 °C and DMD above 60 °C.
The firmware also applies thermal throttling before either limit is reached. Under a high duty cycle, the camera may automatically pause between acquisitions to cool down and prevent overheating. This is normal behavior and does not raise an exception. See Projector Brightness for details on thermal throttling.
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.