Controlling Theta Z1 via USB from a Windows Native Application

Hi, new to the forum sorry if this has been asked before.

We are developing a native Windows 10 Application (C++), and need to control the Theta Z1 camera to:

  1. Power up
  2. Take still shots and record videos
  3. Transfer the media to a PC
  4. Delete media from the SD card
  5. Put camera to sleep

The hardware setup is unattended, it must perform those operations without any human interaction (button presses, etc). Can we do that? I saw some web/JSON-based interfaces, which I suppose we could use from under Windows as well. Is there documentation on those APIs/Interfaces? Any sample code would also be greatly appreciate.


You must either power cycle the USB ports of the Windows computer or turn the Windows computer on and off. see below for Rasbperry Pi.

Can you use sleep and awake instead?

Use MTP on Windows.

0x100E InitiateCapture

0x101C InitiateOpenCapture

all the above are possible.

Power On is unsupported with the API. You must power cycle the USB ports.

11 video playlist

1 Like

Thanks so much, Craig. We can control power on the windows port, yes, and sleep / awake might be just just as good as powering it down. As long as it does not wear out the camera in any way, etc.

Never used MTP on Windows, but will start looking. Are any code sample that use Ricoh cams we can start with?

If your use case allows the use of sleep and awake, it is better to use sleep and awake as the API is listed on the RICOH site.

We don’t have any sample applications with Windows MTP.

You may be able to use gphoto2 on Windows as well.

There are more examples using Linux with libptp2 because people are often using a Raspberry Pi due to low cost and size.

Are you using the Windows machine to control the camera because you want to show the boat passengers the pictures and you’re using the Windows machine form something else as well? Maybe you already have a Windows machine on the boat?

BTW, I’m just curious, but would you be able to post a picture of the boat? I used to fish a lot with my son when he was younger.

Re:sleep / awake
Sure, that’s a good option. We are fine with sleep/awake.

Re: gphoto2
Does not look like there is a windows version, in any event, this is a commercial setting, I dont think GNU GPL would be acceptable

Re: Why Windows?
Yes, we need the capture to happen on a Windows machine because that’s where the rest of our extensive software stack is, from processing and biz logic, to communication and remote mgmt.

Re: Picture of the boat.
Sure! Once (if) we succeed with integration. Now leaning towards X

Suggest you buy the camera from a place with a return policy. It’s possible that the X may generate more heat than the Z1 with the current firmware. Even if you turn off the LCD screen of the X, it may still be a bit hot. There has not been as much long-term testing with the X, especially inside of an enclosed case.

I did test the USB API of the X and it worked fine in my limited tests.

I believe the Windows MTP extensions work without any issues.

There are 192 clicks on the MTP extension link on our forum and people haven’t reported problems.


This is the tip from MattWymore.

  1. The correct way to do this is to use
    the parameters and Op Code for image capture and then send that command. Take a look at this
    example from Microsoft for setting things up. Basically you just need to change the Op Code to
    0x100E (for initiate capture) and change the StorageID to 0x0 (as documented in the Theta v2
    USB API) and you are ready to go.

It’s likely that people are using the MTP commands from Windows and because there are no problems, there is no discussion on the forum about it.

Once you have a few basic commands working, suggest you take the camera out in the sun inside the weatherproof case to simulate the use case of mounting it to the boat. You may need to circulate air inside the case.

It’s possible that X may run cooler if you take out the battery as the power charger for the battery likely generates heat. The X can run without a battery in it.