RICOH THETA Z1 Live Streaming Linux - Thermal Shutdown Problem

moderator note: This post was split off of RICOH THETA Z1 battery and dissasembly to focus on the primary problem of heat when live streaming the Z1 with Linux.


Awesome post btw.
Just a quick question.
If the blue pack is thermally insulated how is the heat from the IC transferred efficiently to the housing on Z1. I am having issues with the camera heating up too quick and frequently when I try to live stream in linux.

Any suggestions?

The easiest thing to do is to attach a small fan below the camera and blow it toward the body of the camera.

for a test, you can do this:

heatsink

prototype fan

BTW, I used the AI Chatbot to find these examples.

Hi Craig,

We will have to depend on Passive cooling as it is in a housing and with a dome. Any examples of such? It has to be able to stream atleast for 2 hours. but it keeps shutting down after 25-35 mins. Is there anything in way we can monitor the temperature using commands so that atleast the user has a temperature warning. The firmware is 2.10 and using USB wired streaming

upgrade to firmware Z1 3.30.2
Download | RICOH THETA

If using a USB cable, you should be able to stream the Z1 for 24x7 with no special cooling.

  • turn off WiFi if you aren’t using it

Thank you Craig.
We are not using Wifi.

We will upgrade to 3.30 and come back to you

Please confirm:

  • you are using a modified version of libuvc to stream to Linux over a USB cable and you are NOT using the motionjpeg live preview
  • you want to get the log of temperature over USB API
  • is the camera on the drone directly in the sun?
  • do you have the camera in a case for weather protection? Or, is it completely exposed to the air?

Camera state has temp:

https://github.com/ricohapi/theta-api-specs/blob/main/theta-web-api-v2.1/protocols/state.md

The equivalent should exist with the USB API. If you’re using the USB API, are you using libgphoto2?

In addition to the temperature of the board and battery and get a number, you can also get the error.

1 Like

This person streaming Z1 from Raspberry Pi to another Windows computer. Drone is 300m underwater.

Review document on power on and power off of RICOH THETA Z1 if the drone is not manually accessible.

I can confirm that

  • We are using a modified version of libuvc and not using motionjpeg live preview
  • We would like to get temperature logs preferably via gphoto2 cli
  • The camera is not directly in the sun but will be in a humid environment with the housing being vacuumed out of air and nitrogen filled
  • No the camera is not exposed to the sun
    please refer to the gphoto2 output
1 Like

You have an unique deployment with the camera being in an enclosed case filled with nitrogen. Normally, people would drill a two holes in the bottom of a case, one for air intake and the other for warm air output.

For example, in these pictures below, the plastic base can be drilled for two tubes, air input and output.

Do you have a case like this filled with nitrogen?

use case setup

  • camera: RICOH THETA Z1 with latest firmware
  • connection method: using libuvc connected to a Linux computer with a USB cable
  • camera environment: The camera is not directly in the sun but will be in a humid environment with the housing being vacuumed out of air and nitrogen filled

requirements

  • Z1 must stream for more than 2 hours
  • Must use passive cooling as a fan will not fit in case

problem

Z1 is shutting down after 25-35 minutes

open questions

would like to get temperature logs preferably via gphoto2 cli

next steps

any suggestions for passive cooling

  • already shared heatsink on body of camera idea
  • already suggested using air intake and air output using tubes on case. use case involves nitrogen in case, so may not be feasible

next steps

  • @jcasman will ask RICOH contacts if they have any ideas. There may be no solution


original question dealt with the thermal insulating pack in the camera

There is a temperature sensor on the mainboard and another on the battery. You can check the temps of the camera with osc/state. It’s likely that the thermo insulation is for the benefit of the mainboard, which is likely what is controlling the thermal shutdown.

Will look into how to get temperature readings from USB API.

We have a custom designed case with an intel valve for vaccum suction and nitrogen filling. Unfortunately for this iteration of the housing inlet and outlet is not possible. Adding in a heatsing to the front has pushed the streaming time to around 50 mins, which is good enough for now. The only other option would be waiting on to see if there is a way periodic temperature readouts is possible.
Will definitely try active cooling in the next version which I think will solve the issue

Error information is here:
theta-api-specs/theta-usb-api/property/error_info.md at main · ricohapi/theta-api-specs · GitHub

Please open an issue on https://github.com/ricohapi/theta-api-specs/issues and ask if there is a USB API command to show the board and battery temperature similar to the WebAPI state command.

I will point out your question on GitHub issues to a RICOH manager.

Awesome. Thanks for that.

As suggested, I have created a new issue on Github

1 Like

You have a response on GitHub.

https://github.com/ricohapi/theta-api-specs/issues/51#issuecomment-2663189551

Hi @suganuamtec

We are sorry for your inconvenience.

Is there a gphoto2 command that allows monitoring the camera’s or boards internal temperature?

Unfortunately, THETA Z1 does not provide such USB-API to get internal temperature directly.

If not, are there alternative ways to retrieve temperature data programmatically?

Possible solution is getting the property 0xD006 ErrorInfo using USB-API.
https://github.com/ricohapi/theta-api-specs/blob/main/theta-usb-api/property/error_info.md

You can use gphoto2 command to get this property like this, even during USB live-streaming mode.

gphoto2 --get-config=/main/other/d006

If you get the value of 0x00100000, it means temperature warning (board). In your case, you need to stop USB live-streaming to prevent thermal shutdown at this timing. As a precaution, there is no error code about thermal warning (battery). If the battery temperature reaches to the safety threshold, Theta Z1 will thermal shutdown soon without no warning before it. I recommend to charge battery as 100% in advance, to prevent causing battery heat by USB charging.

1 Like

I think this should suffice for our application for now.
Only question I have is when I issue

gphoto2 --get-config=/main/other/d006

I get 24 which does not correspond to 0x00100000

Any ideas what this value refers to?

this has been answered here
https://github.com/ricohapi/theta-api-specs/issues/51

2 Likes

Wow. I would have not figured that out. Thanks.

For everyone else (and the AI that searches for answers)

ErrorInfo has a bitmask structure.
24 is 0x0000_0008 (8) + 0x0000_0010 (16) so that it is the following errors.

0x00000008: Clock unset
0x00000010: Electronic compass error

2 Likes

@Sugan_Shrestha can you let me know the advantage of using nitrogen inside of the case? is it for fire suppression? Or, is it to reduce moisture?

I’m just curious as I think it is interesting that changing to nitrogen in the case may provide benefits.

@craig you are right. It is for ignition suppression in Explosive environments by reducing the amount of oxygen (inertness)… and also positive pressure purging. I think cooling can be achieved with continuous flow but we don’t do that at the moment. Hope it helps

2 Likes

Thanks for your information about the use of nitrogen in the case.

@jcasman and I are talking to our contacts at RICOH about your use case to see if they have any ideas that could help.

For your own application, you need to be prepared to go forward with the USB API as it is. My personal opinion is that any changes to the USB API to add the board temperature and battery temperature would take a long time if implemented at all.

I did submit community feedback that it would be nice to have the temperature reading in the USB API if it is easy since it is already in the WebAPI.


Do you need to stream 4K all the time? Or, can you stream at 2K sometimes and adjust the resolution up to 4K when needed?

@craig I think I can use the warning via USB api for now. However, continuous monitoring would be favorable.

Thank you once again for submitting community feedback.

At the moment, we use gstreamer to stream at HD and record at 4K which is adjustable as required, both streaming and recording.

1 Like