The camera has a built-in temperature sensor to read the internal temperature inside the case. The measuring range is -55°C up to 125°C with a resolution of 0.5°C. Temperature may be read out at shell level by the following command:
~ $ cat /proc/temp 36.5 ~ $
Applications should use this file-based mechanism, too. There is no API call to read out temperature.
Using the temperature sensor may be very useful when using the camera in hot surroundings. When reaching temperatures above 75°C the camera should be shut down.
Note, that temperature conversion in the chip takes up to 750ms.
For avoiding that an application is blocked for the ~750ms readout time, the /proc/temp
file can be opened in non blocking mode by use of the O_NONBLOCK
parameter during open(). A call to read() now has the following behavior:
EAGAIN
if there is no temperature value available.EAGAIN
is returned.
The temperature timeout value can be set in seconds by writing a string “temp_timeout=10”
to /proc/temp
. The timeout is adjustable between 1 and 60 seconds and has a default value of 10 seconds.