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():

Go to source

source

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;
Go to source

source

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);
Go to source

source

temperature = camera.state.temperature
print("Temperatures:")
print(f"  DMD:     {temperature.dmd} °C")
print(f"  LED:     {temperature.led} °C")
print(f"  Lens:    {temperature.lens} °C")
print(f"  PCB:     {temperature.pcb} °C")
print(f"  General: {temperature.general} °C")

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.