Control Z1 HDR, NR and ISO with USB API?

Hello there, I have installed a Z1 one which is running quite happily on a Pi4b.

I am now refining the image quality and I am wondering if it is possible to control ISO, NR or enable the HDR remotely via GPhoto2 or PTP ?

Many thanks


API specification

theta-api-specs/theta-usb-api at main · ricohapi/theta-api-specs · GitHub

HDR, Noise Reduction, DR

Adjust filter settings.

theta-api-specs/ at main · ricohapi/theta-api-specs · GitHub


ISO step 1 - exposure program

first set exposure program mode to manual or ISO priority.

theta-api-specs/ at main · ricohapi/theta-api-specs · GitHub

ISO step 2 - exposure index

then set the exposure index

theta-api-specs/ at main · ricohapi/theta-api-specs · GitHub


this article has several examples:

It was written for a Jetson, but the examples are the same on RPi. Current recommendation is to use gphoto2 as it is newer with more recent updates compared to ptpcam.


I remember that you were having problems with keeping the THETA charged. I’ve recently learned that the THETA X requires Power Delivery at 18w, not the BC 1.2 specification for the Z1.

Is there a way to enable HDR permanently on USB API on a Theta Z1? As in, to make it capture any subsequent image taken over USB in HDR mode even after sleeping.

Can you set the _filter every time prior to taking a picture with the USB API?

I thought the HDR filter would be saved when it wakes up from sleep.
theta-api-specs/ at main · ricohapi/theta-api-specs · GitHub

To be safe, you can set the filter prior to every picture. The easiest thing to do set a short delay such as 200ms after setting the option and before taking a picture. A more standard way is to check the status of the camera.

theta-api-specs/ at main · ricohapi/theta-api-specs · GitHub

Does your application requirements not allow you to set the filter prior to every shot?

This doesn’t seem to be the case using the command “ptpcam --set-property=[propcode] --[value]”

That’s what we’re currently doing. It works most of time, but the script got stuck while taking the picture a couple of times which never happened before HDR was added. I tried increasing the delay and it hasn’t failed since so it may be fine as is, but I wanted to look into alternate options.
Thanks for all your help!

what delay do you have it set to?

Another option is to check the camera status prior to taking the picture and if the camera status is not {"state": "done}, then check the status again.

saving settings

Did you try saving the _filter : hdr settings to MySettings?

I have not tested it, but I think if you save the hdr in mysettings, it will be preserved

Thank you this has been most helpful

1 Like