THETA X firmware 2.20.1 - Improved Battery Life, New API features for Web, Plugin, and Bluetooth Developers

THETA X firmware v2.20.1 (2023.07.25)

THETA X firmware 2.20.1 is now available. The update adds improved battery life due to power consumption reduction during interval shooting and changes to power consumption based on shooting settings.

Changes For Developers

For developers, there are new features to the WebAPI, Bluetooth-API and Plugin API.

Upgrade Methods

There are three ways to update the firmware:

  1. directly from the body of the camera
  2. using desktop app and a USB cable
  3. using official mobile app from RICOH and WiFi

The easiest upgrade in my experience is to use the touchscreen on the body of the camera. The camera needs to be connected to the Internet with Client Mode.

Example Upgrade Process Using Body of Camera

When the camera is connected in client mode, you will see a blue dot next to Update firmware.

image

Pressing on Update firmware checks if a firmware update is available. It looks like my camera is behind.

image

The installation process took several minutes. An progress bar supplied me with a status of the upgrade process.

image

The camera will eventually indicate that the update is completed.

image

Download - Firmware | RICOH THETA X

  • The camera operation during interval shooting has been reviewed to reduce power consumption.
  • The degree of power consumption reduction varies depending on the shooting settings.

WebAPI

  • State : Update new options “_externalGpsInfo”, “_internalGpsInfo”, “_boardTemp”, and “_batteryTemp”

Bluetooth-API

Plugin

  • Broadcast Intent : Update new intent com.theta360.plugin.ACTION_BATTERY_CHARGING_SUSPEND(RESUME)

Testing API

curl --request GET \
  --url http://192.168.1.1/osc/info

image

New Temperature Readings

curl --request POST \
  --url http://192.168.1.1/osc/state

image

It’s interesting that the battery temp is 2 degree C hotter than the board.

New GPS Info

With GPS disabled.

		"_externalGpsInfo": {},
		"_function": "normal",
		"_internalGpsInfo": {},

With GPS enabled and GPS satellite searching (GPS arrow is outline)

		"_externalGpsInfo": {},
		"_function": "normal",
		"_internalGpsInfo": {
			"gpsInfo": {
				"_altitude": 0,
				"_dateTimeZone": "",
				"_datum": "",
				"lat": 65535,
				"lng": 65535
			}
		},

With GPS satellite locked

		"_internalGpsInfo": {
			"gpsInfo": {
				"_altitude": -7.199999999999999,
				"_dateTimeZone": "2023:07:25 13:01:14-04:00",
				"_datum": "WGS84",
				"lat": 37.xx6856,
				"lng": -122.xx887833333334
			}

Checking File Format

Request

curl --request POST \
  --url http://192.168.1.1/osc/commands/execute \
  --header 'Content-Type: application/json;charset=utf-8' \
  --data '{
	"name": "camera.getOptions",
	"parameters": {
		"optionNames": [
			"videoStitching",
			"captureMode",
			"fileFormat"
		]
	}
}'

Response

{
	"results": {
		"options": {
			"videoStitching": "ondevice",
			"captureMode": "video",
			"fileFormat": {
				"_codec": "H.264/MPEG-4 AVC",
				"_frameRate": 10,
				"height": 3840,
				"type": "mp4",
				"width": 7680
			}
		}
	},
	"name": "camera.getOptions",
	"state": "done"
}

As the camera cannot take 8K video using the WiFi API, the camera state shows an error. This is working as expected.

		"_cameraError": [
			"CANNOT_RECORDING"
		],

Battery Temp After about 15 Minutes

image

Heat Test Using Streaming

Streaming on Linux

After about 10 minutes, the battery temp went up to 46C (114F)

image