From 81b8fba5af4d65508cdd2a1d76ce42e59b41c5f8 Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 12 Jun 2023 20:49:26 +0000 Subject: [PATCH] Github Pages build from Action ddf3e343aa0a63d93347a20641d5fc4257670ff3 --- assets/js/lunr/lunr-store.js | 10 +- ble_2_0.html | 142 +- contribution.html | 32 +- demos/bash/ota_update.html | 6 +- demos/c_c++/GoProC_C++Demo.html | 6 +- demos/c_c++/GoProStreamDemo.html | 6 +- demos/csharp/GoProCSharpSample.html | 6 +- demos/csharp/webcam.html | 6 +- demos/python/multi_webcam.html | 6 +- demos/python/sdk_wireless_camera_control.html | 6 +- demos/swift/EnableWiFiDemo.html | 6 +- feed.xml | 2 +- http_2_0.html | 271 +- protos.html | 18 +- sitemap.xml | 30 +- specs/capabilities.json | 6916 +++++++++++++++++ specs/capabilities.xlsx | 4 +- tutorials/ble-queries.html | 92 +- tutorials/camera-media-list.html | 46 +- tutorials/connect-ble.html | 60 +- tutorials/connect-wifi.html | 58 +- tutorials/parse-ble-responses.html | 160 +- tutorials/send-ble-commands.html | 96 +- tutorials/send-wifi-commands.html | 96 +- 24 files changed, 7532 insertions(+), 549 deletions(-) diff --git a/assets/js/lunr/lunr-store.js b/assets/js/lunr/lunr-store.js index cf9d5a73..51f6697f 100644 --- a/assets/js/lunr/lunr-store.js +++ b/assets/js/lunr/lunr-store.js @@ -1,7 +1,7 @@ var store = [ { "title": "Bluetooth Low Energy (BLE) Specification v2.0: ", - "excerpt": "About This Page This page describes the format, capabilities, and use of Bluetooth Low Energy (BLE) as it pertains to communicating with GoPro cameras. Messages are sent using either TLV or Protobuf format. General Communicating with a GoPro camera via Bluetooth Low Energy involves writing to Bluetooth characteristics and, typically, waiting for a response notification from a corresponding characteristic. The camera organizes its Generic Attribute Profile (GATT) table by broad features: AP control, control & query, etc. Note: All byte ordering is in Big Endian unless otherwise noted. Supported Cameras Below is a table of cameras that support GoPro's public BLE API: Model ID Model Code Marketing Name Minimal Firmware Version 60 H22.03 HERO11 Black Mini v01.10.00 58 H22.01 HERO11 Black v01.10.00 57 H21.01 HERO10 Black v01.10.00 55 HD9.01 HERO9 Black v01.70.00 Services and Characteristics Note: GP-XXXX is shorthand for GoPro's 128-bit UUIDs: b5f9xxxx-aa8d-11e3-9046-0002a5d5c51b Service UUID Service Characteristic UUID Description Permissions GP-0001 GoPro WiFi Access Point GP-0002 WiFi AP SSID Read / Write GP-0003 WiFi AP Password Read / Write GP-0004 WiFi AP Power Write GP-0005 WiFi AP State Read / Indicate GP-0090 GoPro Camera Management GP-0091 Network Management Command Write GP-0092 Network Management Response Notify FEA6 Control & Query GP-0072 Command Write GP-0073 Command Response Notify GP-0074 Settings Write GP-0075 Settings Response Notify GP-0076 Query Write GP-0077 Query Response Notify Packet Headers The Bluetooth Low Energy protocol limits messages to 20 bytes per packet. To accommodate this limitation, GoPro cameras use the packet header format below. All lengths are in bytes. Messages sent to and received from the camera are expected to be packetized and sent in 20 byte chunks. Messages received from the camera will always use the header with the smallest possible message length. For example, a three byte response will use the 5-bit General header, not the 13-bit or 16-bit Extended headers. Messages sent to the camera can use either the 5-bit General header or the 13-bit Extended header. Packet Header Format Byte 1 Byte 2 (optional) Byte 3 (optional) 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 0: Start 00: General Message Length: 5 bits 0: Start 01: Extended (13-bit) Message Length: 13 bits 0: Start 10: Extended (16-bit) Message Length: 16 bits 0: Start 11: Reserved 1: Continuation Counter (4-bit) Note: Continuation packet counters start at 0x0 and reset after 0xF. Example: Packetizing a 5-bit General Message Message Length: 17 bytes Message: 01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11 Packet Type Byte(s) Description 1 Header 11 (0) start packet (00) 5-bit General message (10001) message length: 17 Payload 01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11 Message Example: Packetizing a 13-bit Extended Message Message Length: 50 bytes Message: 01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13:14:15:16:17:18:19:1A:1B:1C:1D:1E:1F:20:21:22:23:24:25:26:27:28:29:2A:2B:2C:2D:2E:2F:30:31:32 Packet Type Byte(s) Description 1 Header 20:32 (0) start packet (01) 13-bit Extended message (0000000110010) message length: 50 Payload 01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12 Message (chunk 1 of 3) 2 Header 80 (0) continuation packet (000) ignored (0000) counter: 0 Payload 13:14:15:16:17:18:19:1A:1B:1C:1D:1E:1F:20:21:22:23:24:25 Message (chunk 2 of 3) 3 Header 81 (0) continuation packet (000) ignored (0001) counter: 1 Payload 26:27:28:29:2A:2B:2C:2D:2E:2F:30:31:32 Message (chunk 3 of 3) Example: Depacketizing a Mutli-Packet Message Packets Received: 5 Once the packet headers are identified and removed from each packet, the complete response message can be assembled by concatenating the remaining packet data in the order it was received. Packet Byte(s) Header 1 20:57:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12 20:57 (0) start packet (01) 13-bit Extended message (0000001010111) message length: 87 2 80:13:14:15:16:17:18:19:1A:1B:1C:1D:1E:1F:20:21:22:23:24:25 80 (1) continuation packet (000) ignored (0000) counter: 0 3 81:26:27:28:29:2A:2B:2C:2D:2E:2F:30:31:32:33:34:35:36:37:38 81 (1) continuation packet (000) ignored (0001) counter: 1 4 82:39:3A:3B:3C:3D:3E:3F:40:41:42:43:44:45:46:47:48:49:4A:4B 82 (1) continuation packet (000) ignored (0010) counter: 2 5 83:4C:4D:4E:4F:50:51:52:53:54:55:56:57 83 (1) continuation packet (000) ignored (0011) counter: 3 Discovery, Connection and Pairing Advertisements The camera will send BLE advertisements while it is ON and for the first 8 hours after the camera is put to sleep. During this time, the camera is discoverable and can be connected to. If the camera is in sleep mode, connecting to it will cause the camera to wake and boot up. Pairing In order to communicate with a GoPro camera via BLE, a client must first be paired with the camera. The pairing procedure must be done once for each new client. If the camera is factory reset, all clients will need to pair again. To pair with the camera, use the UI to put it into pairing mode, connect via BLE and then initiate pairing. The camera will whitelist the client so subsequent connections do not require pairing. Steps Discovery of and connection to the GoPro camera can be done as follows: Put the camera into pairing mode Scan to discover peripherals (which can be narrowed by limiting to peripherals that advertise service FEA6) Connect to the peripheral Finish pairing with the peripheral Discover all advertised services and characteristics Subscribe to notifications from all characteristics that have the notify flag set Sending and Receiving Messages In order to enable two-way communication with a GoPro camera, clients must connect to the camera and subscribe to characteristics that have the notify flag set. Messages are sent to the camera by writing to a write-enabled UUID and then waiting for a notification from the corresponding response UUID. Response notifications indicate whether the message was valid and will be (asynchronously) processed. For example, to send a camera control command, a client should write to GP-0072 and then wait for a response notification from GP-0073. Depending on the camera's state, it may not be ready to accept specific commands. This ready state is dependent on the System Busy and the Encoding Active status flags. For example: System Busy flag is set while loading presets, changing settings, formatting sdcard, ... Encoding Active flag is set while capturing photo/video media If the system is not ready, it should reject an incoming command; however, best practice is to always wait for the System Busy and Encode Active flags to be unset before sending messages other than get status/setting queries. Parsing Responses In order to communicate fully with the camera, the user will need to be able to parse response and event notifications in TLV or Protobuf format as needed. TLV and Protobuf responses have very different formats. Parsing TLV data requires a parser to be written locally. Parsing Protobuf data can be done using code generated from Protobuf files linked in this document. Typically, the camera will send TLV responses/events for commands sent in TLV format and Protobuf responses/events for commands sent in Protobuf format. The pseudocode and flowcharts below refer to the following tables: Protobuf IDs Table Protobuf Commands Table Command Response Format Settings Response Format Query Response Format Pseudocode Below is pseudocode describing how to determine whether a respose is TLV or Protobuf and then parse it appropriately. Camera sends response R (array of bytes) from UUID U (string) with payload P (array of bytes) // Is it a Protobuf response? for each row in the Protobuf IDs table { F (int) = Feature ID A (array of int) = Action IDs if P[0] == F and P[1] in A { R is a protobuf message Match Feature ID P[0] and Action ID P[1] to a Response message in the Protobuf Commands Table Use matched Response message to parse payload into useful data structure Exit } } // Nope. It is a TLV response if U == GP-0072 (Command) { Parse using Command Response Format table } else if U == GP-0074 (Settings) { Parse using Settings Response Format table } else if U == GP-0076 (Query) { Parse using Query Response Format table } Exit Flowchart Below is a flowchart describing how to determine whether a respose is TLV or Protobuf and then parse it appropriately. Receive response RExtract payload P&160;P[0] == Feature ID from row N of Protobuf IDs TableANDP[1] in Action IDs list from row N of Protobuf IDs Table&160;yesnoR is a protobuf messageR is a TLV messageResponse RResponse UUIDR is a Command responseR is a Settings responseR is a Query responseParse accordinglyFeature ID = P[0]Action ID = P[1]Use: Protobuf Commands TableParse using appropriate protobuf messageKnowledge!GP-0072(Control)GP-0076(Query)GP-0074(Settings)TLV messageProtobuf message Keep Alive In order to maximize battery life, GoPro cameras automatically go to sleep after some time. This logic is handled by a combination of an Auto Power Down setting which most (but not all) cameras support and a Keep Alive message that the user can regularly send to the camera. The camera will automatically go to sleep if both timers reach zero. The Auto Power Down timer is reset when the user taps the LCD screen, presses a button on the camera or programmatically (un)sets the shutter, sets a setting, or loads a Preset. The Keep Alive timer is reset when the user sends a keep alive message. The best practice to prevent the camera from inadvertently going to sleep is to start sending Keep Alive messages every 3.0 seconds after a connection is established. Command UUID Write Response UUID Response GP-0074 03:5B:01:42 GP-0075 02:5B:00 Limitations HERO11 Black Mini The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings HERO11 Black The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings HERO10 Black The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings HERO9 Black The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings General Unless changed by the user, GoPro cameras will automatically power off after some time (e.g. 5min, 15min, 30min). The Auto Power Down watchdog timer can be reset by sending periodic keep-alive messages to the camera. It is recommended to send a keep-alive at least once every 120 seconds. In general, querying the value for a setting that is not associated with the current preset/core mode results in an undefined value. For example, the user should not try to query the current Photo Digital Lenses (FOV) value while in Standard preset (Video mode). Type Length Value GoPro's BLE protocol comes in two flavors: TLV (Type Length Value) and Protobuf. This section describes TLV style messaging. Note: All TLV messages (payloads) must be packetized and wrapped with Packet Headers as outlined in this document. Commands The table below contains command IDs supported by Open GoPro. Command messages are sent to GP-0072 and responses/notifications are received on GP-0073. Command ID Description 0x01 Set shutter 0x05 Sleep 0x0D Set Date/Time 0x0E Get Date/Time 0x0F Set Local Date/Time 0x10 Get Local Date/Time 0x15 Set Livestream Mode 0x17 AP Control 0x18 Media: HiLight Moment 0x3C Get Hardware Info 0x3E Presets: Load Group 0x40 Presets: Load 0x50 Analytics 0x51 Open GoPro Command Format Header/Length Command ID Parameter Length Parameter Value 1-2 bytes 1 byte 1 byte Variable length Command Response The GoPro camera sends responses to most commands received, indicating whether the command was valid and will be processed or not. Unless indicated otherwise in the Quick Reference table below, command responses use the format below. Command Response Format Header/Length Command ID Response Code Response 1-2 bytes 1 byte 1 byte Variable length Command Response Error Codes Error Code Description 0 Success 1 Error 2 Invalid Parameter 3..255 Reserved Commands Quick Reference Below is a table of commands that can be sent to the camera and how to send them. ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ ID Command Description Request Response HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 0x01 Set shutter Shutter: off 03:01:01:00 02:01:00 ✔ ✔ ✔ ✔ 0x01 Set shutter Shutter: on 03:01:01:01 02:01:00 ✔ ✔ ✔ ✔ 0x05 Sleep Put camera to sleep 01:05 02:05:00 ✔ ✔ ✔ ✔ 0x0D Set Date/Time Set date/time to 2023-01-31 03:04:05 09:0D:07:07:E7:01:1F:03:04:05 02:0D:00 ✔ ✔ ✔ ✔ 0x0E Get Date/Time Get date/time 01:0E Complex ✔ ✔ ✔ ✔ 0x0F Set Local Date/Time Set local date/time to: 2023-01-31 03:04:05 (utc-02:00) (dst: on) 0C:0F:0A:07:E7:01:1F:03:04:05:FF:88:01 02:0F:00 ✔ ✔ ❌ ❌ 0x10 Get Local Date/Time Get local date/time 01:10 Complex ✔ ✔ ❌ ❌ 0x15 Set Livestream Mode Set live stream mode: url: xxx, encode: true, window size: windowsize.size_720, cert: none 20:15:F1:79:0A:03:78:78:78:10:01:18:07:38:7B:40:95:06:48:C8:80:03:50:00 02:15:00 ✔ ✔ ✔ ✔ 0x17 AP Control WiFi AP: off 03:17:01:00 02:17:00 ✔ ✔ ✔ ✔ 0x17 AP Control WiFi AP: on 03:17:01:01 02:17:00 ✔ ✔ ✔ ✔ 0x18 Media: HiLight Moment Hilight moment during encoding 01:18 02:18:00 ✔ ✔ ✔ ✔ 0x3C Get Hardware Info Get camera hardware info 01:3C Complex ✔ ✔ ✔ ✔ 0x3E Presets: Load Group Video 04:3E:02:03:E8 02:3E:00 ✔ ✔ ✔ ✔ 0x3E Presets: Load Group Photo 04:3E:02:03:E9 02:3E:00 ❌ ✔ ✔ ✔ 0x3E Presets: Load Group Timelapse 04:3E:02:03:EA 02:3E:00 ❌ ✔ ✔ ✔ 0x40 Presets: Load Example preset id: 0x1234ABCD 06:40:04:12:34:AB:CD 02:40:00 ✔ ✔ ✔ ✔ 0x50 Analytics Set third party client 01:50 02:50:00 ✔ ✔ ✔ ✔ 0x51 Open GoPro Get version 01:51 Complex ✔ ✔ ✔ ✔ Complex Command Inputs Set Local Date/Time The timezone is a two byte UTC offset in minutes and must be sent in Two's Complement form. Complex Command Responses Below are clarifications for complex camera responses Get Hardware Info Response Packet Response Byte(s) Description 1 20 Start packet 51 Response length 3C:00 Command 3C sent successfully 04 Length of model number 00:00:00:37 Model ID 0B Length of model id 48:45:52:4F:58:20:42:6C:61:63 \"HEROX Blac\" 2 80 Continuation packet 6B \"k\" 04 Length of board type 30:78:30:35 \"0x05\" 0F Length of firmware version 48:44:58:2E:58:58:2E:58:58:2E:58:58 \"HDX.XX.XX.XX\" 3 81 Continuation packet (1) 2E:58:58 \".XX\" 0E Length of serial number 58:58:58:58:58:58:58:58:58:58:58:58:58:58 \"XXXXXXXXXXXXXX\" 0A Length of AP SSID 4 82 Continuation packet (2) 47:50:32:34:35:30:58:58:58:58 \"GP2450XXXX\" 0C AP MAC Address length 58:58:58:58:58:58:58:58 \"XXXXXXXX\" 5 83 Continuation packet (3) 58:58:58:58 \"XXXX\" Open GoPro Version Given the response 06:51:00:01:01:01:00, the Open GoPro version would be vXX.YY. Response Byte(s) Description 06 Packet length 51 Command ID 00 Status (OK) 01 Length of major version 01 Major version: 1 01 Length of minor version 00 Minor version: 0 Get Date/Time Given the response 0B:0E:00:08:07:E5:01:02:03:04:05:06, the date/time would be 2022-01-02 03:04:05 (Saturday). Response Byte(s) Description 0B Packet length 0E Command ID 00 Status (OK) 08 Date length (bytes) 07:E6 Year 01 Month 02 Day 03 Hour 04 Minute 05 Second 06 Day of the week (Sun=0, Sat=6) Get Local Date/Time (with Timezone and DST) Given the response 0D:10:00:0A:07:E6:01:02:03:04:05:FE:20:01, the date/time would be 2022-01-02 03:04:05-0800 (DST: ON). Response Byte(s) Description 0D Packet length 10 Command ID 00 Status (OK) 0A Date length (bytes) 07:E6 Year 01 Month 02 Day 03 Hour 04 Minute 05 Second FE:20 UTC offset in minutes (Two's Complement) 01 DST: ON Settings GoPro settings can be configured using the GP-Settings (GP-0074) UUID. Setting status is returned on GP-Settings-Status (GP-0075) UUID. Settings Request Format This will configure a setting on the camera. Only one setting may be sent on a packet (GATT notify or write-no-response), although multiple packets may be sent back-to-back. Request Length Setting ID Setting Value Length Setting Value 1-2 bytes 1 byte 1 byte (variable length) Settings Response Format Response Length Setting ID Response Code 1 byte 1 byte 1 byte Settings Quick Reference All settings are sent to UUID GP-0074. All values are hexadecimal and length are in bytes. ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ Setting ID Setting Option Request Response HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 2 Resolution Set video resolution (id: 2) to 4k (id: 1) 03:02:01:01 02:02:00 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 2.7k (id: 4) 03:02:01:04 02:02:00 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 2.7k 4:3 (id: 6) 03:02:01:06 02:02:00 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 1440 (id: 7) 03:02:01:07 02:02:00 ❌ ❌ ❌ ✔ 2 Resolution Set video resolution (id: 2) to 1080 (id: 9) 03:02:01:09 02:02:00 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 4k 4:3 (id: 18) 03:02:01:12 02:02:00 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 5k (id: 24) 03:02:01:18 02:02:00 ❌ ❌ ❌ ✔ 2 Resolution Set video resolution (id: 2) to 5k 4:3 (id: 25) 03:02:01:19 02:02:00 ❌ ❌ ✔ ❌ 2 Resolution Set video resolution (id: 2) to 5.3k 8:7 (id: 26) 03:02:01:1A 02:02:00 ✔ ✔ ❌ ❌ 2 Resolution Set video resolution (id: 2) to 5.3k 4:3 (id: 27) 03:02:01:1B 02:02:00 ✔ ✔ ❌ ❌ 2 Resolution Set video resolution (id: 2) to 4k 8:7 (id: 28) 03:02:01:1C 02:02:00 ✔ ✔ ❌ ❌ 2 Resolution Set video resolution (id: 2) to 5.3k (id: 100) 03:02:01:64 02:02:00 ✔ ✔ ✔ ❌ 3 Frames Per Second Set video fps (id: 3) to 240 (id: 0) 03:03:01:00 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 120 (id: 1) 03:03:01:01 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 100 (id: 2) 03:03:01:02 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 60 (id: 5) 03:03:01:05 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 50 (id: 6) 03:03:01:06 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 30 (id: 8) 03:03:01:08 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 25 (id: 9) 03:03:01:09 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 24 (id: 10) 03:03:01:0A 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 200 (id: 13) 03:03:01:0D 02:03:00 ✔ ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to never (id: 0) 03:3B:01:00 01:3B:00 \\>= v02.10.00 ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 1 min (id: 1) 03:3B:01:01 01:3B:00 \\>= v02.10.00 \\>= v02.01.00 ❌ ❌ 59 Auto Power Down Set auto power down (id: 59) to 5 min (id: 4) 03:3B:01:04 01:3B:00 \\>= v02.10.00 ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 15 min (id: 6) 03:3B:01:06 01:3B:00 ❌ ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 30 min (id: 7) 03:3B:01:07 01:3B:00 ❌ ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 8 seconds (id: 11) 03:3B:01:0B 01:3B:00 \\>= v02.10.00 ❌ ❌ ❌ 59 Auto Power Down Set auto power down (id: 59) to 30 seconds (id: 12) 03:3B:01:0C 01:3B:00 \\>= v02.10.00 ❌ ❌ ❌ 121 Video Digital Lenses Set video digital lenses (id: 121) to wide (id: 0) 03:79:01:00 02:79:00 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to narrow (id: 2) 03:79:01:02 02:79:00 ❌ ❌ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to superview (id: 3) 03:79:01:03 02:79:00 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to linear (id: 4) 03:79:01:04 02:79:00 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to max superview (id: 7) 03:79:01:07 02:79:00 \\>= v02.00.00 ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to linear + horizon leveling (id: 8) 03:79:01:08 02:79:00 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to hyperview (id: 9) 03:79:01:09 02:79:00 ✔ ✔ ❌ ❌ 121 Video Digital Lenses Set video digital lenses (id: 121) to linear + horizon lock (id: 10) 03:79:01:0A 02:79:00 ✔ ✔ ❌ ❌ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to narrow (id: 19) 03:7A:01:13 02:7A:00 ❌ ❌ ✔ ✔ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to max superview (id: 100) 03:7A:01:64 02:7A:00 ❌ ✔ ✔ ✔ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to wide (id: 101) 03:7A:01:65 02:7A:00 ❌ ✔ ✔ ✔ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to linear (id: 102) 03:7A:01:66 02:7A:00 ❌ ✔ ✔ ✔ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to narrow (id: 19) 03:7B:01:13 02:7B:00 ❌ ❌ ✔ ✔ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to max superview (id: 100) 03:7B:01:64 02:7B:00 ❌ ✔ ✔ ❌ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to wide (id: 101) 03:7B:01:65 02:7B:00 ❌ ✔ ✔ ✔ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to linear (id: 102) 03:7B:01:66 02:7B:00 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to time lapse video (id: 13) 03:80:01:0D 02:80:00 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to time lapse photo (id: 20) 03:80:01:14 02:80:00 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to night lapse photo (id: 21) 03:80:01:15 02:80:00 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to night lapse video (id: 26) 03:80:01:1A 02:80:00 ❌ ✔ ✔ ✔ 134 Anti-Flicker Set setup anti flicker (id: 134) to 60hz (id: 2) 03:86:01:02 02:86:00 ✔ ✔ ✔ ✔ 134 Anti-Flicker Set setup anti flicker (id: 134) to 50hz (id: 3) 03:86:01:03 02:86:00 ✔ ✔ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to off (id: 0) 03:87:01:00 02:87:00 ✔ ✔ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to on (id: 1) 03:87:01:01 02:87:00 ✔ ✔ ❌ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to high (id: 2) 03:87:01:02 02:87:00 ❌ ❌ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to boost (id: 3) 03:87:01:03 02:87:00 ✔ ✔ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to auto boost (id: 4) 03:87:01:04 02:87:00 ✔ ✔ ❌ ❌ 135 Hypersmooth Set video hypersmooth (id: 135) to standard (id: 100) 03:87:01:64 02:87:00 ❌ ❌ ✔ ❌ 150 Horizon Leveling Set video horizon levelling (id: 150) to off (id: 0) 03:96:01:00 02:96:00 \\>= v02.00.00 ✔ ❌ ❌ 150 Horizon Leveling Set video horizon levelling (id: 150) to on (id: 1) 03:96:01:01 02:96:00 \\>= v02.00.00 ❌ ❌ ❌ 150 Horizon Leveling Set video horizon levelling (id: 150) to locked (id: 2) 03:96:01:02 02:96:00 ❌ ✔ ❌ ❌ 151 Horizon Leveling Set photo horizon levelling (id: 151) to off (id: 0) 03:97:01:00 02:97:00 ❌ ✔ ❌ ❌ 151 Horizon Leveling Set photo horizon levelling (id: 151) to locked (id: 2) 03:97:01:02 02:97:00 ❌ ✔ ❌ ❌ 162 Max Lens Set max lens (id: 162) to off (id: 0) 03:A2:01:00 02:A2:00 ❌ ✔ \\>= v01.20.00 ✔ 162 Max Lens Set max lens (id: 162) to on (id: 1) 03:A2:01:01 02:A2:00 ❌ ✔ \\>= v01.20.00 ✔ 173 Video Performance Mode Set video performance mode (id: 173) to maximum video performance (id: 0) 03:AD:01:00 02:AD:00 ❌ ❌ \\>= v01.16.00 ❌ 173 Video Performance Mode Set video performance mode (id: 173) to extended battery (id: 1) 03:AD:01:01 02:AD:00 ❌ ❌ \\>= v01.16.00 ❌ 173 Video Performance Mode Set video performance mode (id: 173) to tripod / stationary video (id: 2) 03:AD:01:02 02:AD:00 ❌ ❌ \\>= v01.16.00 ❌ 175 Controls Set controls (id: 175) to easy (id: 0) 03:AF:01:00 02:AF:00 ✔ ✔ ❌ ❌ 175 Controls Set controls (id: 175) to pro (id: 1) 03:AF:01:01 02:AF:00 ✔ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (id: 0) 03:B0:01:00 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (id: 1) 03:B0:01:01 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (id: 2) 03:B0:01:02 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (low light) (id: 3) 03:B0:01:03 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (ext. batt) (id: 4) 03:B0:01:04 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (ext. batt) (id: 5) 03:B0:01:05 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (ext. batt, low light) (id: 6) 03:B0:01:06 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (50hz) (id: 7) 03:B0:01:07 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (50hz) (id: 8) 03:B0:01:08 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (50hz) (id: 9) 03:B0:01:09 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (low light, 50hz) (id: 10) 03:B0:01:0A 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (ext. batt, 50hz) (id: 11) 03:B0:01:0B 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (ext. batt, 50hz) (id: 12) 03:B0:01:0C 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (ext. batt, low light, 50hz) (id: 13) 03:B0:01:0D 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (ext. batt) (id: 14) 03:B0:01:0E 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (ext. batt, 50hz) (id: 15) 03:B0:01:0F 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (long. batt) (id: 16) 03:B0:01:10 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (long. batt) (id: 17) 03:B0:01:11 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (long. batt) (id: 18) 03:B0:01:12 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 1x (long. batt, low light) (id: 19) 03:B0:01:13 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (long. batt, 50hz) (id: 20) 03:B0:01:14 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (long. batt, 50hz) (id: 21) 03:B0:01:15 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (long. batt, 50hz) (id: 22) 03:B0:01:16 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 1x (long. batt, low light, 50hz) (id: 23) 03:B0:01:17 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (4k) (id: 24) 03:B0:01:18 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (2.7k) (id: 25) 03:B0:01:19 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (4k, 50hz) (id: 26) 03:B0:01:1A 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (2.7k, 50hz) (id: 27) 03:B0:01:1B 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 177 Enable Night Photo Set enable night photo (id: 177) to off (id: 0) 03:B1:01:00 02:B1:00 ❌ ✔ ❌ ❌ 177 Enable Night Photo Set enable night photo (id: 177) to on (id: 1) 03:B1:01:01 02:B1:00 ❌ ✔ ❌ ❌ 178 Wireless Band Set wireless band (id: 178) to 2.4ghz (id: 0) 03:B2:01:00 02:B2:00 ✔ ✔ ❌ ❌ 178 Wireless Band Set wireless band (id: 178) to 5ghz (id: 1) 03:B2:01:01 02:B2:00 ✔ ✔ ❌ ❌ 179 Trail Length Set trail length (id: 179) to short (id: 1) 03:B3:01:01 02:B3:00 ✔ ✔ ❌ ❌ 179 Trail Length Set trail length (id: 179) to long (id: 2) 03:B3:01:02 02:B3:00 ✔ ✔ ❌ ❌ 179 Trail Length Set trail length (id: 179) to max (id: 3) 03:B3:01:03 02:B3:00 ✔ ✔ ❌ ❌ 180 Video Mode Set video mode (id: 180) to highest quality (id: 0) 03:B4:01:00 02:B4:00 ❌ ✔ ❌ ❌ 180 Video Mode Set video mode (id: 180) to extended battery (id: 1) 03:B4:01:01 02:B4:00 ❌ ✔ ❌ ❌ 180 Video Mode Set video mode (id: 180) to extended battery (green icon) (id: 101) 03:B4:01:65 02:B4:00 ❌ \\>= v02.01.00 ❌ ❌ 180 Video Mode Set video mode (id: 180) to longest battery (green icon) (id: 102) 03:B4:01:66 02:B4:00 ❌ \\>= v02.01.00 ❌ ❌ Camera Capabilities Camera capabilities usually change from one camera to another and often change from one release to the next. Below are documents that detail whitelists for basic video settings for every supported camera release. Note about Dependency Ordering and Blacklisting Capability documents define supported camera states. Each state is comprised of a set of setting options that are presented in dependency order. This means each state is guaranteed to be attainable if and only if the setting options are set in the order presented. Failure to adhere to dependency ordering may result in the camera's blacklist rules rejecting a set-setting command. Example Camera Command 1 Command 2 Command 3 Command 4 Command 5 Guaranteed Valid? HERO10 Black Res: 1080 Anti-Flicker: 60Hz (NTSC) FPS: 240 FOV: Wide Hypersmooth: OFF ✔ HERO10 Black FPS: 240 Anti-Flicker: 60Hz (NTSC) Res: 1080 FOV: Wide Hypersmooth: OFF ❌ In the example above, the first set of commands will always work for basic video presets such as Standard. In the second example, suppose the camera's Video Resolution was previously set to 4K. If the user tries to set Video FPS to 240, it will fail because 4K/240fps is not supported. Capability Documents Documents Product Release capabilities.xlsx capabilities.json HERO11 Black Mini v02.20.00 v02.10.00 v02.00.00 v01.10.00 HERO11 Black v02.10.00 v02.01.00 v01.20.00 v01.12.00 v01.10.00 HERO10 Black v01.50.00 v01.46.00 v01.42.00 v01.40.00 v01.30.00 v01.20.00 v01.16.00 v01.10.00 HERO9 Black v01.72.00 v01.70.00 Spreadsheet Format The capabilities spreadsheet contains worksheets for every supported release. Each row in a worksheet represents a whitelisted state and is presented in dependency order as outlined above. JSON Format The capabilities JSON contains a set of whitelist states for every supported release. Each state is comprised of a list of objects that contain setting and option IDs necessary to construct set-setting commands and are given in dependency order as outlined above. Below is a simplified example of the capabilities JSON file; a formal schema is also available here: capabilities_schema.json { \"(PRODUCT_NAME)\": { \"(RELEASE_VERSION)\": { \"states\": [ [ {\"setting_name\": \"(str)\", \"setting_id\": (int), \"option_name\": \"(str)\", \"option_id\": (int)}, ... ], ... ], }, ... }, ... } Query The camera provides two basic types of state information: Camera status and settings. Camera status info includes information such as the current preset/mode, whether the system is busy or encoding, remaining sdcard space, etc. Settings info gives the currently selected option for each setting; for example, this includes the current video resolution, frame rate, digital lens (FOV), etc. Queries are sent to to GP-0076 and responses are received on GP-0077. Query Command Format Header/Length Query ID Array of IDs 1-2 bytes 1 byte Variable Length Query Commands Note: omitting :xx:... from any (un)register command will result in being (un)registered for all associated values. Query ID Query Request Notes 0x12 Get setting value(s) nn:12:xx:... nn -> message length xx -> setting ID 0x12 Get all setting values 01:12 0x13 Get status value(s) nn:13:xx:... nn -> message length xx -> status ID 0x13 Get all status values 01:13 0x32 Get available option IDs for setting(s) nn:32:xx:... nn -> message length xx -> setting ID 0x32 Get available option IDs for all settings 01:32 0x52 Register for setting(s) value updates nn:52:xx:... nn -> message length xx -> setting ID 0x53 Register for status value updates nn:53:xx:... nn -> message length xx -> status ID 0x62 Register for available option updates for setting(s) nn:62:xx:... nn -> message length xx -> setting ID 0x72 Unregister for setting updates nn:72:xx:... nn -> message length xx -> setting ID 0x73 Unregister for status updates nn:73:xx:... nn -> message length xx -> status ID 0x82 Unregister for available option updates for setting(s) nn:82:xx:... nn -> message length xx -> setting ID 0x92 Async notification when setting changes 0x93 Async notification when status changes 0xA2 Async notification when available option(s) changed Query Response Format There are two types of response notifications: Type 1: Notfication sent in direct response to a get-value or register command Type 2: Notification sent in response to data changing (must be registered to receive) Message Length Query ID Command Status Status ID Status Value Length Status Value 1-2 bytes 1 byte 1 byte 1 byte 1 byte 1-255 bytes Multi-Value Responses When receiving a query response that contains information about more than one setting/status the Status ID, Status Value Length, and Status Value fields become collectively repeatable. Example: [MESSAGE LENGTH]:[QUERY ID]:[COMMAND STATUS]:[ID1]:[LENGTH1]:[VALUE1]:[ID2]:[LENGTH2]:[VALUE2]:... Query ID in Notifications In order to discern between a Type 1 and a Type 2 response, the camera changes the Query ID for Type 2: Query Query ID in Command Query ID in Notification Register for setting(s) value updates 0x52 0x92 Register for status value updates 0x53 0x93 Register for available option updates for setting(s) 0x62 0xA2 Status IDs Below is a table of supported status IDs. ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ Status ID Name Description Type Values HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 1 Internal battery present Is the system's internal battery present? boolean 0: False 1: True ✔ ✔ ✔ ✔ 2 Internal battery level Rough approximation of internal battery level in bars integer 0: Zero 1: One 2: Two 3: Three ✔ ✔ ✔ ✔ 6 System hot Is the system currently overheating? boolean 0: False 1: True ✔ ✔ ✔ ✔ 8 System busy Is the camera busy? boolean 0: False 1: True ✔ ✔ ✔ ✔ 9 Quick capture active Is Quick Capture feature enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 10 Encoding active Is the system encoding right now? boolean 0: False 1: True ✔ ✔ ✔ ✔ 11 Lcd lock active Is LCD lock active? boolean 0: False 1: True ✔ ✔ ✔ ✔ 13 Video progress counter When encoding video, this is the duration (seconds) of the video so far; 0 otherwise integer * ✔ ✔ ✔ ✔ 17 Enable Are Wireless Connections enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 19 State The pairing state of the camera integer 0: Never Started 1: Started 2: Aborted 3: Cancelled 4: Completed ✔ ✔ ✔ ✔ 20 Type The last type of pairing that the camera was engaged in integer 0: Not Pairing 1: Pairing App 2: Pairing Remote Control 3: Pairing Bluetooth Device ✔ ✔ ✔ ✔ 21 Pair time Time (milliseconds) since boot of last successful pairing complete action integer * ✔ ✔ ✔ ✔ 22 State State of current scan for WiFi Access Points. Appears to only change for CAH-related scans integer 0: Never started 1: Started 2: Aborted 3: Canceled 4: Completed ✔ ✔ ✔ ✔ 23 Scan time msec The time, in milliseconds since boot that the WiFi Access Point scan completed integer * ✔ ✔ ✔ ✔ 24 Provision status WiFi AP provisioning state integer 0: Never started 1: Started 2: Aborted 3: Canceled 4: Completed ✔ ✔ ✔ ✔ 26 Remote control version Wireless remote control version integer * ✔ ✔ ✔ ✔ 27 Remote control connected Is a wireless remote control connected? boolean 0: False 1: True ✔ ✔ ✔ ✔ 28 Pairing Wireless Pairing State integer * ✔ ✔ ✔ ✔ 29 Wlan ssid Provisioned WIFI AP SSID. On BLE connection, value is big-endian byte-encoded int string * ✔ ✔ ✔ ✔ 30 Ap ssid Camera's WIFI SSID. On BLE connection, value is big-endian byte-encoded int string * ✔ ✔ ✔ ✔ 31 App count The number of wireless devices connected to the camera integer * ✔ ✔ ✔ ✔ 32 Enable Is Preview Stream enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 33 Sd status Primary Storage Status integer -1: Unknown 0: OK 1: SD Card Full 2: SD Card Removed 3: SD Card Format Error 4: SD Card Busy 8: SD Card Swapped ✔ ✔ ✔ ✔ 34 Remaining photos How many photos can be taken before sdcard is full integer * ❌ ✔ ✔ ✔ 35 Remaining video time How many minutes of video can be captured with current settings before sdcard is full integer * ✔ ✔ ✔ ✔ 36 Num group photos How many group photos can be taken with current settings before sdcard is full integer * ❌ ✔ ✔ ✔ 37 Num group videos Total number of group videos on sdcard integer * ✔ ✔ ✔ ✔ 38 Num total photos Total number of photos on sdcard integer * ✔ ✔ ✔ ✔ 39 Num total videos Total number of videos on sdcard integer * ✔ ✔ ✔ ✔ 41 Ota status The current status of Over The Air (OTA) update integer 0: Idle 1: Downloading 2: Verifying 3: Download Failed 4: Verify Failed 5: Ready 6: GoPro App: Downloading 7: GoPro App: Verifying 8: GoPro App: Download Failed 9: GoPro App: Verify Failed 10: GoPro App: Ready ✔ ✔ ✔ ✔ 42 Download cancel request pending Is there a pending request to cancel a firmware update download? boolean 0: False 1: True ✔ ✔ ✔ ✔ 45 Camera locate active Is locate camera feature active? boolean 0: False 1: True ✔ ✔ ✔ ✔ 49 Multi shot count down The current timelapse interval countdown value (e.g. 5...4...3...2...1...) integer * ✔ ✔ ✔ ✔ 54 Remaining space Remaining space on the sdcard in Kilobytes integer * ✔ ✔ ✔ ✔ 55 Supported Is preview stream supported in current recording/mode/secondary-stream? boolean 0: False 1: True ✔ ✔ ✔ ✔ 56 Wifi bars WiFi signal strength in bars integer * ✔ ✔ ✔ ✔ 58 Num hilights The number of hilights in encoding video (set to 0 when encoding stops) integer * ✔ ✔ ✔ ✔ 59 Last hilight time msec Time since boot (msec) of most recent hilight in encoding video (set to 0 when encoding stops) integer * ✔ ✔ ✔ ✔ 60 Next poll msec The min time between camera status updates (msec). Do not poll for status more often than this integer * ✔ ✔ ✔ ✔ 64 Remaining timelapse time How many min of Timelapse video can be captured with current settings before sdcard is full integer * ✔ ✔ ✔ ✔ 65 Exposure select type Liveview Exposure Select Mode integer 0: Disabled 1: Auto 2: ISO Lock 3: Hemisphere ❌ ✔ ✔ ✔ 66 Exposure select x Liveview Exposure Select: y-coordinate (percent) percent 0-100 ❌ ✔ ✔ ✔ 67 Exposure select y Liveview Exposure Select: y-coordinate (percent) percent 0-100 ❌ ✔ ✔ ✔ 68 Gps status Does the camera currently have a GPS lock? boolean 0: False 1: True ✔ ✔ ✔ ✔ 69 Ap state Is the WiFi radio enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 70 Internal battery percentage Internal battery level (percent) percent 0-100 ✔ ✔ ✔ ✔ 74 Acc mic status Microphone Accesstory status integer 0: Microphone mod not connected 1: Microphone mod connected 2: Microphone mod connected and microphone plugged into Microphone mod ✔ ✔ ✔ ✔ 75 Digital zoom Digital Zoom level (percent) percent 0-100 ✔ ✔ ✔ ✔ 76 Wireless band Wireless Band integer 0: 2.4 GHz 1: 5 GHz 2: Max ✔ ✔ ✔ ✔ 77 Digital zoom active Is Digital Zoom feature available? boolean 0: False 1: True ✔ ✔ ✔ ✔ 78 Mobile friendly video Are current video settings mobile friendly? (related to video compression and frame rate) boolean 0: False 1: True ✔ ✔ ✔ ✔ 79 First time use Is the camera currently in First Time Use (FTU) UI flow? boolean 0: False 1: True ❌ ❌ ✔ ✔ 81 Band 5ghz avail Is 5GHz wireless band available? boolean 0: False 1: True ✔ ✔ ✔ ✔ 82 System ready Is the system ready to accept commands? boolean 0: False 1: True ✔ ✔ ✔ ✔ 83 Batt okay for ota Is the internal battery charged sufficiently to start Over The Air (OTA) update? boolean 0: False 1: True ✔ ✔ ✔ ✔ 85 Video low temp alert Is the camera getting too cold to continue recording? boolean 0: False 1: True ✔ ✔ ✔ ✔ 86 Actual orientation The rotational orientation of the camera integer 0: 0 degrees (upright) 1: 180 degrees (upside down) 2: 90 degrees (laying on right side) 3: 270 degrees (laying on left side) ✔ ✔ ✔ ✔ 88 Zoom while encoding Is this camera capable of zooming while encoding (static value based on model, not settings) boolean 0: False 1: True ✔ ✔ ✔ ✔ 89 Current mode Current flatmode ID integer * ✔ ✔ ✔ ✔ 93 Active video presets Current Video Preset (ID) integer * ✔ ✔ ✔ ✔ 94 Active photo presets Current Photo Preset (ID) integer * ❌ ✔ ✔ ✔ 95 Active timelapse presets Current Timelapse Preset (ID) integer * ✔ ✔ ✔ ✔ 96 Active presets group Current Preset Group (ID) integer * ✔ ✔ ✔ ✔ 97 Active preset Current Preset (ID) integer * ✔ ✔ ✔ ✔ 98 Preset modified Preset Modified Status, which contains an event ID and a preset (group) ID integer * ✔ ✔ ✔ ✔ 99 Remaining live bursts How many Live Bursts can be captured before sdcard is full integer * ❌ ✔ ✔ ✔ 100 Num total live bursts Total number of Live Bursts on sdcard integer * ❌ ✔ ✔ ✔ 101 Capture delay active Is Capture Delay currently active (i.e. counting down)? boolean 0: False 1: True ✔ ✔ ✔ ✔ 102 Media mod mic status Media mod State integer 0: Media mod microphone removed 2: Media mod microphone only 3: Media mod microphone with external microphone ✔ ✔ ✔ ✔ 103 Timewarp speed ramp active Time Warp Speed integer 0: 15x 1: 30x 2: 60x 3: 150x 4: 300x 5: 900x 6: 1800x 7: 2x 8: 5x 9: 10x 10: Auto 11: 1x (realtime) 12: 1/2x (slow-motion) ✔ ✔ ✔ ✔ 104 Linux core active Is the system's Linux core active? boolean 0: False 1: True ❌ ❌ ✔ ✔ 105 Camera lens type Camera lens type (reflects changes to setting 162) integer 0: Default 1: Max Lens ✔ ✔ ✔ ✔ 106 Video hindsight capture active Is Video Hindsight Capture Active? boolean 0: False 1: True ❌ ✔ ✔ ✔ 107 Scheduled preset Scheduled Capture Preset ID integer * ❌ ✔ ✔ ✔ 108 Scheduled enabled Is Scheduled Capture set? boolean 0: False 1: True ❌ ✔ ✔ ✔ 110 Media mod status Media Mode Status (bitmasked) integer 0: 000 = Selfie mod: 0, HDMI: 0, Media Mod Connected: False 1: 001 = Selfie mod: 0, HDMI: 0, Media Mod Connected: True 2: 010 = Selfie mod: 0, HDMI: 1, Media Mod Connected: False 3: 011 = Selfie mod: 0, HDMI: 1, Media Mod Connected: True 4: 100 = Selfie mod: 1, HDMI: 0, Media Mod Connected: False 5: 101 = Selfie mod: 1, HDMI: 0, Media Mod Connected: True 6: 110 = Selfie mod: 1, HDMI: 1, Media Mod Connected: False 7: 111 = Selfie mod: 1, HDMI: 1, Media Mod Connected: True ❌ ✔ ✔ ✔ 111 Sd rating check error Does sdcard meet specified minimum write speed? boolean 0: False 1: True ✔ ✔ ✔ ❌ 112 Sd write speed error Number of sdcard write speed errors since device booted integer * ✔ ✔ ✔ ❌ 113 Turbo transfer Is Turbo Transfer active? boolean 0: False 1: True ✔ ✔ ✔ ✔ 114 Camera control status Camera control status ID integer 0: Camera Idle: No one is attempting to change camera settings 1: Camera Control: Camera is in a menu or changing settings. To intervene, app must request control 2: Camera External Control: An outside entity (app) has control and is in a menu or modifying settings ✔ ✔ ✔ ❌ 115 Usb connected Is the camera connected to a PC via USB? boolean 0: False 1: True ✔ ✔ ✔ ❌ 116 Allow control over usb Camera control over USB state integer 0: Disabled 1: Enabled ✔ ✔ \\>= v01.30.00 ❌ 117 Total sd space kb Total SD card capacity in kilobytes integer * ✔ ✔ ❌ ❌ Protobuf In order to maximize BLE bandwidth, some messages and their corresponding notifications utilize Google Protobuf (Protocol Buffers). Open GoPro currently uses Protocol Buffers Version 2. Note: All Protobuf messages (i.e. payloads, which are serialized protobuf objects) must be packetized and wrapped with Packet Headers as outlined in this document. Protobuf Message Format Protobuf communications with the camera differ from TLV-style communications. Rather than having a Type, Length, and Value, GoPro protobuf messages utilize the following: Feature ID: Indicates command type (e.g. command, setting, query) Action ID: Specific camera action; value indicates whether message was sent or an (aync) notification was received Value: Serialized protobuf object Requests Sent Message Length Feature ID Action ID Protobuf Bytestream 1-2 bytes 1 byte 1 byte Variable Length Notifications Received Message Length Feature ID Response Action ID Protobuf Bytestream 1-2 bytes 1 byte 1 byte Variable Length See Parsing Responses for details on how to detect and parse a protobuf response. Protobuf IDs Below is a table that links Protobuf Feature/Action IDs together with the UUIDs to write to and Response UUIDs to read notifications from. For additional details, see Services and Characteristics. Feature Feature ID Action IDs UUID Response UUID Network Management 0x02 0x02, 0x03, 0x04, 0x05, 0x0B, 0x0C, 0x82, 0x83, 0x84, 0x85 GP-0091 GP-0092 Command 0xF1 0x69, 0x6B, 0x78, 0x79, 0xE9, 0xEB, 0xF8, 0xF9 GP-0072 GP-0073 Query 0xF5 0x72, 0x74, 0xF2, 0xF3, 0xF4, 0xF5 GP-0076 GP-0077 Protobuf Commands Below is a table of protobuf commands that can be sent to the camera and their expected response. ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ Feature ID Action ID Response Action ID Description Request Response HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 0x02 0x02 0x82 Start scan RequestStartScan ResponseStartScanning ✔ ✔ ✔ ✔ 0x0B Async status update NotifStartScanning ✔ ✔ ✔ ✔ 0x03 0x83 Get ap entries RequestGetApEntries ResponseGetApEntries ✔ ✔ ✔ ✔ 0x04 0x84 Connect RequestConnect ResponseConnect ✔ ✔ ✔ ✔ 0x0C Async status update ResponseConnect ✔ ✔ ✔ ✔ 0x05 0x85 Connect new RequestConnectNew ResponseConnectNew ✔ ✔ ✔ ✔ 0x0C Async status update NotifProvisioningState ✔ ✔ ✔ ✔ 0xF1 0x69 0xE9 Request set camera control status RequestSetCameraControlStatus ResponseGeneric ✔ ✔ \\>= v01.20.00 ❌ 0x6B 0xEB Request set turbo active RequestSetTurboActive ResponseGeneric ✔ ✔ ✔ ✔ 0x78 0xF8 Request release network RequestReleaseNetwork ResponseGeneric ✔ ✔ ✔ ✔ 0x79 0xF9 Request set live stream RequestSetLiveStreamMode ResponseGeneric ✔ ✔ ✔ ✔ 0xF5 0x72 0xF2 Request get preset status RequestGetPresetStatus NotifyPresetStatus ✔ ✔ ✔ ✔ 0xF3 Async status update NotifyPresetStatus ✔ ✔ ✔ ✔ 0x74 0xF4 Request get live stream status RequestGetLiveStreamStatus NotifyLiveStreamStatus ✔ ✔ ✔ ✔ 0xF5 Async status update NotifyLiveStreamStatus ✔ ✔ ✔ ✔ Features Below are details about Open GoPro features. Presets The camera organizes modes of operation into presets. A preset is a logical wrapper around a specific camera mode, title, icon, and a set of settings that enhance different styles of capturing media. Depending on the camera's state, different collections of presets will be available for immediate loading and use. Below is a table of settings that affect the current preset collection and thereby which presets can be loaded: ID Setting 162 Max Lens 173 Video Performance Mode 175 Controls 177 Enable Night Photo 180 Video Mode To determine which presets are available for immediate use, get Preset Status. Preset Status All cameras support basic query and subscription mechanics that allow the user to: Get hierarchical data describing the Preset Groups, Presets, and Settings that are available in the camera's current state (Un)register to be notified when a Preset is modified (e.g. resolution changes from 1080p to 4K) or a Preset Group is modified (e.g. presets are reordered/created/deleted) Preset Status should not be confused with camera status: Preset Status contains information about current preset groups and presets Camera status contains numerous statuses about current settings and camera system state Preset Groups Each Preset Group contains an ID, whether additional presets can be added, and an array of existing Presets. Presets Each Preset contains information about its ID, associated core mode, title, icon, whether it's a user-defined preset, whether the preset has been modified from its factory-default state (for factory-default presets only) and an array of Settings associated with the Preset. Important Note: The Preset ID is required to load a Preset via the Presets: Load command. For details on which cameras are supported and how to get Preset Status, see Protobuf Commands. Global Behaviors In order to prevent undefined behavior between the camera and a connected app, simultaneous use of the camera and a connected app is discouraged. Best practice for synchronizing user/app control is to use the Set Camera Control Status command and corresponding Camera Control Status (CCS) camera statuses in alignment with the finite state machine below: IDLEControl Status: IdleCAMERA_CONTROLControl Status: Camera ControlEXTERNAL_CONTROLControl Status: External ControlApp sets CCS: IdleUser interacts with cameraUser returns camera to idle screenApp sets CCS: IdleApp sets CCS: External ControlApp sets CCS: IdleUser interacts with cameraUser interacts with cameraApp sets CCS: External ControlUser interacts with camera Control Status ID IDLE 0 CONTROL 1 EXTERNAL_CONTROL 2 Set Camera Control Status This command is used to tell the camera that the app (i.e. External Control) wishes to claim control of the camera. This causes the camera to immediately exit any contextual menus and return to the idle screen. Any interaction with the camera's physical buttons will cause the camera to reclaim control and update control status accordingly. If the user returns the camera UI to the idle screen, the camera updates control status to Idle. Note: The entity currently claiming control of the camera is advertised in camera status 114 Information about whether the camera is in a contextual menu or not is advertised in camera status 63. For details on which cameras are supported and how to set Camera Control Status, see Protobuf Commands. Interface with Access Points The camera supports connecting to access points in Station Mode (STA). This is necessary for features such as Live Streaming, where the camera needs an Internet connection. While in this mode, HTTP command and control of the camera is not available on some cameras. Scanning for Access Points In order to scan for Access Points, use the flow below. See Protobuf Commands for command details. CentralCentralGP-0091GP-0091GP-0092GP-0092RequestStartScanResponseStartScanningscanning_state: EnumScanning.SCANNING_STARTEDloop[until scanning_state == EnumScanning.SCANNING_SUCCESS]Indicates scan is completeSave scan_id, total_entriesNotifStartScanningRequestGetApEntriesUse scan_id, total_entriesResponseGetApEntriesEach ScanEntry contains SSID, signal strength, freq Scan Results The ResponseGetApEntries message contains information about each discovered device. This information includes the success of the scan, the scan id used in the original request, and a ScanEntry message, whose definition is nested inside ResponseGetApEntries. A ScanEntry includes information about a discovered device including its SSID, relative signal strength, signal frequency, and a bitmasked scan_entry_flags value whose individual bits are defined by EnumScanEntryFlags. Note: When scan_entry_flags contains SCAN_FLAG_CONFIGURED, it is an indication that this network has already been provisioned. Connect to a New Access Point To provision and connect the camera to a new Access Point, use RequestConnectNew. Note: This should only be done once to provision the AP; subsequent connections should use RequestConnect. CentralCentralGP-0091GP-0091GP-0092GP-0092Scan for Access PointsRequestConnectNewResponseConnectNewprovisioning_state: EnumProvisioning.PROVISIONING_STARTEDloop[until provisioning_state == EnumProvisioning.PROVISIONING_SUCCESS_NEW_AP]NotifProvisionState Connect to a Provisioned Access Point To connect the camera to a provisioned Access Point, scan for Access Points and connect using RequestConnect: CentralCentralGP-0091GP-0091GP-0092GP-0092Scan for Access PointsRequestConnectResponseConnectprovisioning_state: EnumProvisioning.PROVISIONING_STARTEDloop[until provisioning_state == EnumProvisioning.PROVISIONING_SUCCESS_NEW_AP]NotifProvisionState Disconnect from an Access Point To disconnect from a connected Access Point and return the camera to AP mode, use RequestReleaseNetwork. CentralCentralGP-0091GP-0091GP-0092GP-0092Scan for Access PointsConnect to a New/Provisioned Access Point(Camera: STA Mode)RequestReleaseNetworkResponseGeneric(Camera: AP Mode) Turbo Transfer Some cameras support Turbo Transfer mode, which allows media to be downloaded over WiFi more rapidly. This is done by temporarily modifying low-level settings in the OS to prioritize WiFi offload speeds. When Turbo Transfer is active, theh camera displays an OSD indicating that media is being transferred in order to prevent the user from inadvertently changing settings or capturing media. Turbo Transfer should only be used during media offload. It is recommended that the user check for and--if necessary--disable Turbo Transfer on connect. Developers can query whether the camera is currently in Turbo Transfer Mode from camera status 113. Note: Pressing MODE/POWER or Shutter buttons on the camera will deactivate Turbo Transfer feature. Some cameras are already optimized for WiFi transfer and do not gain additional speed from this feature. For details on which cameras are supported and how to enable and disable Turbo Transfer, see Protobuf Commands. Live Streaming The camera supports the ability to stream to social media platforms such as Twitch, YouTube, and Facebook or any other site that accepts RTMP URLs. For additional details about getting started with RTMP, see How to Stream. Overview Live streaming with camera is accomplished as follows: Put the camera into Station Mode and connect it to an access point (see Interface With Access Points) Set the Live Stream Mode Poll for Live Stream Status until the camera indicates it is ready Set any desired settings (e.g. Hypersmooth) Set the shutter to begin live streaming Unset the shutter to stop live streaming Live Streaming Sequence CentralCentralGP-0091GP-0091GP-0092GP-0092GP-0072GP-0072GP-0073GP-0073GP-0074GP-0074GP-0075GP-0075GP-0076GP-0076GP-0077GP-0077Set Live Stream ModeRequestSetLiveStreamModeResponseGenericPoll Live Stream Status until readyloop[until LIVE_STREAM_STATE_READY]RequestGetLiveStreamStatusNotifyLiveStreamStatusSet desired settingsloop[until Desired camera state attained]Set settingResponseStart live streaming!Set shutterresponseStop live streamingUnset shutterresponse Set Live Stream Mode Setting the live stream mode is accomplished by sending a RequestSetLiveStreamMode command. Command and enum details are available in Protobuf Comands. Parameter Type Description url string RTMP url used to stream. Set to empty string to invalidate/cancel stream encode bool Whether to encode video to sdcard while streaming or not window_size EnumWindowSize Streaming video resolution cert string Certificate from a trusted root for streaming services that use encryption minimum_bitrate int32 Desired minimum streaming bitrate (min possible: 800) maximum_bitrate int32 Desired maximum streaming bitrate (max possible: 8000) starting_bitrate int32 Initial streaming bitrate (honored if 800 <= value <= 8000) lens EnumLens Streaming Field of View Get Live Stream Status Current status of the live stream is obtained by sending a RequestGetLiveStreamStatus command to the camera. This command serves two purposes: Get current state of the live stream (Un)register to be notified when live stream state changes Responses and notifications come as a NotifyLiveStreamStatus message with properties outlined in the table below. Command and enum details are available in Protobuf Comands. Parameter Type Description live_stream_status EnumLiveStreamStatus Basic streaming state (idle, ready, streaming, failed, etc) live_stream_error EnumLiveStreamError Error codes for specific streaming errors live_stream_encode bool Whether camera is encoding video to sdcard while encoding or not live_stream_bitrate int32 Current streaming bitrate (Kbps) live_stream_window_size_supported_array EnumWindowSize Defines supported streaming resolutions live_stream_encode_supported bool Does this camera support encoding while streaming? live_stream_max_lens_unsupported bool Does camera lack support for streaming with Max Lens feature? live_stream_minimum_stream_bitrate int32 Minimum possible bitrate (static) (Kbps) live_stream_maximum_stream_bitrate int32 Maximum possible bitrate (static) (Kbps) live_stream_lens_supported bool Does camera support multiple streaming FOVs? live_stream_lens_supported_array EnumLens Defines supported Field of View values", + "excerpt": "About This Page This page describes the format, capabilities, and use of Bluetooth Low Energy (BLE) as it pertains to communicating with GoPro cameras. Messages are sent using either TLV or Protobuf format. General Communicating with a GoPro camera via Bluetooth Low Energy involves writing to Bluetooth characteristics and, typically, waiting for a response notification from a corresponding characteristic. The camera organizes its Generic Attribute Profile (GATT) table by broad features: AP control, control & query, etc. Note: All byte ordering is in Big Endian unless otherwise noted. Supported Cameras Below is a table of cameras that support GoPro's public BLE API: Model ID Model Code Marketing Name Minimal Firmware Version 60 H22.03 HERO11 Black Mini v01.10.00 58 H22.01 HERO11 Black v01.10.00 57 H21.01 HERO10 Black v01.10.00 55 HD9.01 HERO9 Black v01.70.00 Services and Characteristics Note: GP-XXXX is shorthand for GoPro's 128-bit UUIDs: b5f9xxxx-aa8d-11e3-9046-0002a5d5c51b Service UUID Service Characteristic UUID Description Permissions GP-0001 GoPro WiFi Access Point GP-0002 WiFi AP SSID Read / Write GP-0003 WiFi AP Password Read / Write GP-0004 WiFi AP Power Write GP-0005 WiFi AP State Read / Indicate GP-0090 GoPro Camera Management GP-0091 Network Management Command Write GP-0092 Network Management Response Notify FEA6 Control & Query GP-0072 Command Write GP-0073 Command Response Notify GP-0074 Settings Write GP-0075 Settings Response Notify GP-0076 Query Write GP-0077 Query Response Notify Packet Headers The Bluetooth Low Energy protocol limits messages to 20 bytes per packet. To accommodate this limitation, GoPro cameras use the packet header format below. All lengths are in bytes. Messages sent to and received from the camera are expected to be packetized and sent in 20 byte chunks. Messages received from the camera will always use the header with the smallest possible message length. For example, a three byte response will use the 5-bit General header, not the 13-bit or 16-bit Extended headers. Messages sent to the camera can use either the 5-bit General header or the 13-bit Extended header. Packet Header Format Byte 1 Byte 2 (optional) Byte 3 (optional) 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 0: Start 00: General Message Length: 5 bits 0: Start 01: Extended (13-bit) Message Length: 13 bits 0: Start 10: Extended (16-bit) Message Length: 16 bits 0: Start 11: Reserved 1: Continuation Counter (4-bit) Note: Continuation packet counters start at 0x0 and reset after 0xF. Example: Packetizing a 5-bit General Message Message Length: 17 bytes Message: 01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11 Packet Type Byte(s) Description 1 Header 11 (0) start packet (00) 5-bit General message (10001) message length: 17 Payload 01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11 Message Example: Packetizing a 13-bit Extended Message Message Length: 50 bytes Message: 01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12:13:14:15:16:17:18:19:1A:1B:1C:1D:1E:1F:20:21:22:23:24:25:26:27:28:29:2A:2B:2C:2D:2E:2F:30:31:32 Packet Type Byte(s) Description 1 Header 20:32 (0) start packet (01) 13-bit Extended message (0000000110010) message length: 50 Payload 01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12 Message (chunk 1 of 3) 2 Header 80 (0) continuation packet (000) ignored (0000) counter: 0 Payload 13:14:15:16:17:18:19:1A:1B:1C:1D:1E:1F:20:21:22:23:24:25 Message (chunk 2 of 3) 3 Header 81 (0) continuation packet (000) ignored (0001) counter: 1 Payload 26:27:28:29:2A:2B:2C:2D:2E:2F:30:31:32 Message (chunk 3 of 3) Example: Depacketizing a Mutli-Packet Message Packets Received: 5 Once the packet headers are identified and removed from each packet, the complete response message can be assembled by concatenating the remaining packet data in the order it was received. Packet Byte(s) Header 1 20:57:01:02:03:04:05:06:07:08:09:0A:0B:0C:0D:0E:0F:10:11:12 20:57 (0) start packet (01) 13-bit Extended message (0000001010111) message length: 87 2 80:13:14:15:16:17:18:19:1A:1B:1C:1D:1E:1F:20:21:22:23:24:25 80 (1) continuation packet (000) ignored (0000) counter: 0 3 81:26:27:28:29:2A:2B:2C:2D:2E:2F:30:31:32:33:34:35:36:37:38 81 (1) continuation packet (000) ignored (0001) counter: 1 4 82:39:3A:3B:3C:3D:3E:3F:40:41:42:43:44:45:46:47:48:49:4A:4B 82 (1) continuation packet (000) ignored (0010) counter: 2 5 83:4C:4D:4E:4F:50:51:52:53:54:55:56:57 83 (1) continuation packet (000) ignored (0011) counter: 3 Discovery, Connection and Pairing Advertisements The camera will send BLE advertisements while it is ON and for the first 8 hours after the camera is put to sleep. During this time, the camera is discoverable and can be connected to. If the camera is in sleep mode, connecting to it will cause the camera to wake and boot up. Pairing In order to communicate with a GoPro camera via BLE, a client must first be paired with the camera. The pairing procedure must be done once for each new client. If the camera is factory reset, all clients will need to pair again. To pair with the camera, use the UI to put it into pairing mode, connect via BLE and then initiate pairing. The camera will whitelist the client so subsequent connections do not require pairing. Steps Discovery of and connection to the GoPro camera can be done as follows: Put the camera into pairing mode Scan to discover peripherals (which can be narrowed by limiting to peripherals that advertise service FEA6) Connect to the peripheral Finish pairing with the peripheral Discover all advertised services and characteristics Subscribe to notifications from all characteristics that have the notify flag set Sending and Receiving Messages In order to enable two-way communication with a GoPro camera, clients must connect to the camera and subscribe to characteristics that have the notify flag set. Messages are sent to the camera by writing to a write-enabled UUID and then waiting for a notification from the corresponding response UUID. Response notifications indicate whether the message was valid and will be (asynchronously) processed. For example, to send a camera control command, a client should write to GP-0072 and then wait for a response notification from GP-0073. Depending on the camera's state, it may not be ready to accept specific commands. This ready state is dependent on the System Busy and the Encoding Active status flags. For example: System Busy flag is set while loading presets, changing settings, formatting sdcard, ... Encoding Active flag is set while capturing photo/video media If the system is not ready, it should reject an incoming command; however, best practice is to always wait for the System Busy and Encode Active flags to be unset before sending messages other than get status/setting queries. Parsing Responses In order to communicate fully with the camera, the user will need to be able to parse response and event notifications in TLV or Protobuf format as needed. TLV and Protobuf responses have very different formats. Parsing TLV data requires a parser to be written locally. Parsing Protobuf data can be done using code generated from Protobuf files linked in this document. Typically, the camera will send TLV responses/events for commands sent in TLV format and Protobuf responses/events for commands sent in Protobuf format. The pseudocode and flowcharts below refer to the following tables: Protobuf IDs Table Protobuf Commands Table Command Response Format Settings Response Format Query Response Format Pseudocode Below is pseudocode describing how to determine whether a respose is TLV or Protobuf and then parse it appropriately. Camera sends response R (array of bytes) from UUID U (string) with payload P (array of bytes) // Is it a Protobuf response? for each row in the Protobuf IDs table { F (int) = Feature ID A (array of int) = Action IDs if P[0] == F and P[1] in A { R is a protobuf message Match Feature ID P[0] and Action ID P[1] to a Response message in the Protobuf Commands Table Use matched Response message to parse payload into useful data structure Exit } } // Nope. It is a TLV response if U == GP-0072 (Command) { Parse using Command Response Format table } else if U == GP-0074 (Settings) { Parse using Settings Response Format table } else if U == GP-0076 (Query) { Parse using Query Response Format table } Exit Flowchart Below is a flowchart describing how to determine whether a respose is TLV or Protobuf and then parse it appropriately. Receive response RExtract payload P&160;P[0] == Feature ID from row N of Protobuf IDs TableANDP[1] in Action IDs list from row N of Protobuf IDs Table&160;yesnoR is a protobuf messageR is a TLV messageResponse RResponse UUIDR is a Command responseR is a Settings responseR is a Query responseParse accordinglyFeature ID = P[0]Action ID = P[1]Use: Protobuf Commands TableParse using appropriate protobuf messageKnowledge!GP-0072(Control)GP-0076(Query)GP-0074(Settings)TLV messageProtobuf message Keep Alive In order to maximize battery life, GoPro cameras automatically go to sleep after some time. This logic is handled by a combination of an Auto Power Down setting which most (but not all) cameras support and a Keep Alive message that the user can regularly send to the camera. The camera will automatically go to sleep if both timers reach zero. The Auto Power Down timer is reset when the user taps the LCD screen, presses a button on the camera or programmatically (un)sets the shutter, sets a setting, or loads a Preset. The Keep Alive timer is reset when the user sends a keep alive message. The best practice to prevent the camera from inadvertently going to sleep is to start sending Keep Alive messages every 3.0 seconds after a connection is established. Command UUID Write Response UUID Response GP-0074 03:5B:01:42 GP-0075 02:5B:00 Limitations HERO11 Black Mini The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings HERO11 Black The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings HERO10 Black The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings HERO9 Black The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings General Unless changed by the user, GoPro cameras will automatically power off after some time (e.g. 5min, 15min, 30min). The Auto Power Down watchdog timer can be reset by sending periodic keep-alive messages to the camera. It is recommended to send a keep-alive at least once every 120 seconds. In general, querying the value for a setting that is not associated with the current preset/core mode results in an undefined value. For example, the user should not try to query the current Photo Digital Lenses (FOV) value while in Standard preset (Video mode). Type Length Value GoPro's BLE protocol comes in two flavors: TLV (Type Length Value) and Protobuf. This section describes TLV style messaging. Note: All TLV messages (payloads) must be packetized and wrapped with Packet Headers as outlined in this document. Commands The table below contains command IDs supported by Open GoPro. Command messages are sent to GP-0072 and responses/notifications are received on GP-0073. Command ID Description 0x01 Set shutter 0x05 Sleep 0x0D Set Date/Time 0x0E Get Date/Time 0x0F Set Local Date/Time 0x10 Get Local Date/Time 0x15 Set Livestream Mode 0x17 AP Control 0x18 Media: HiLight Moment 0x3C Get Hardware Info 0x3E Presets: Load Group 0x40 Presets: Load 0x50 Analytics 0x51 Open GoPro Command Format Header/Length Command ID Parameter Length Parameter Value 1-2 bytes 1 byte 1 byte Variable length Command Response The GoPro camera sends responses to most commands received, indicating whether the command was valid and will be processed or not. Unless indicated otherwise in the Quick Reference table below, command responses use the format below. Command Response Format Header/Length Command ID Response Code Response 1-2 bytes 1 byte 1 byte Variable length Command Response Error Codes Error Code Description 0 Success 1 Error 2 Invalid Parameter 3..255 Reserved Commands Quick Reference Below is a table of commands that can be sent to the camera and how to send them. * Indicates that item is experimental ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ ID Command Description Request Response HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 0x01 Set shutter Shutter: off 03:01:01:00 02:01:00 ✔ ✔ ✔ ✔ 0x01 Set shutter Shutter: on 03:01:01:01 02:01:00 ✔ ✔ ✔ ✔ 0x05 Sleep Put camera to sleep 01:05 02:05:00 ✔ ✔ ✔ ✔ 0x0D Set Date/Time Set date/time to 2023-01-31 03:04:05 09:0D:07:07:E7:01:1F:03:04:05 02:0D:00 ✔ ✔ ✔ ✔ 0x0E Get Date/Time Get date/time 01:0E Complex ✔ ✔ ✔ ✔ 0x0F Set Local Date/Time Set local date/time to: 2023-01-31 03:04:05 (utc-02:00) (dst: on) 0C:0F:0A:07:E7:01:1F:03:04:05:FF:88:01 02:0F:00 ✔ ✔ ❌ ❌ 0x10 Get Local Date/Time Get local date/time 01:10 Complex ✔ ✔ ❌ ❌ 0x15 Set Livestream Mode Set live stream mode: url: xxx, encode: true, window size: windowsize.size_720, cert: none 20:15:F1:79:0A:03:78:78:78:10:01:18:07:38:7B:40:95:06:48:C8:80:03:50:00 02:15:00 ✔ ✔ ✔ ✔ 0x17 AP Control Ap mode: off 03:17:01:00 02:17:00 ✔ ✔ ✔ ✔ 0x17 AP Control Ap mode: on 03:17:01:01 02:17:00 ✔ ✔ ✔ ✔ 0x18 Media: HiLight Moment Hilight moment during encoding 01:18 02:18:00 ✔ ✔ ✔ ✔ 0x3C Get Hardware Info Get camera hardware info 01:3C Complex ✔ ✔ ✔ ✔ 0x3E Presets: Load Group Video 04:3E:02:03:E8 02:3E:00 ✔ ✔ ✔ ✔ 0x3E Presets: Load Group Photo 04:3E:02:03:E9 02:3E:00 ❌ ✔ ✔ ✔ 0x3E Presets: Load Group Timelapse 04:3E:02:03:EA 02:3E:00 ❌ ✔ ✔ ✔ 0x40 Presets: Load Example preset id: 0x1234ABCD 06:40:04:12:34:AB:CD 02:40:00 ✔ ✔ ✔ ✔ 0x50 Analytics Set third party client 01:50 02:50:00 ✔ ✔ ✔ ✔ 0x51 Open GoPro Get version 01:51 Complex ✔ ✔ ✔ ✔ Complex Command Inputs Set Local Date/Time The timezone is a two byte UTC offset in minutes and must be sent in Two's Complement form. Complex Command Responses Below are clarifications for complex camera responses Get Hardware Info Response Packet Response Byte(s) Description 1 20 Start packet 51 Response length 3C:00 Command 3C sent successfully 04 Length of model number 00:00:00:37 Model ID 0B Length of model id 48:45:52:4F:58:20:42:6C:61:63 \"HEROX Blac\" 2 80 Continuation packet 6B \"k\" 04 Length of board type 30:78:30:35 \"0x05\" 0F Length of firmware version 48:44:58:2E:58:58:2E:58:58:2E:58:58 \"HDX.XX.XX.XX\" 3 81 Continuation packet (1) 2E:58:58 \".XX\" 0E Length of serial number 58:58:58:58:58:58:58:58:58:58:58:58:58:58 \"XXXXXXXXXXXXXX\" 0A Length of AP SSID 4 82 Continuation packet (2) 47:50:32:34:35:30:58:58:58:58 \"GP2450XXXX\" 0C AP MAC Address length 58:58:58:58:58:58:58:58 \"XXXXXXXX\" 5 83 Continuation packet (3) 58:58:58:58 \"XXXX\" Open GoPro Version Given the response 06:51:00:01:01:01:00, the Open GoPro version would be vXX.YY. Response Byte(s) Description 06 Packet length 51 Command ID 00 Status (OK) 01 Length of major version 01 Major version: 1 01 Length of minor version 00 Minor version: 0 Get Date/Time Given the response 0B:0E:00:08:07:E5:01:02:03:04:05:06, the date/time would be 2022-01-02 03:04:05 (Saturday). Response Byte(s) Description 0B Packet length 0E Command ID 00 Status (OK) 08 Date length (bytes) 07:E6 Year 01 Month 02 Day 03 Hour 04 Minute 05 Second 06 Day of the week (Sun=0, Sat=6) Get Local Date/Time (with Timezone and DST) Given the response 0D:10:00:0A:07:E6:01:02:03:04:05:FE:20:01, the date/time would be 2022-01-02 03:04:05-0800 (DST: ON). Response Byte(s) Description 0D Packet length 10 Command ID 00 Status (OK) 0A Date length (bytes) 07:E6 Year 01 Month 02 Day 03 Hour 04 Minute 05 Second FE:20 UTC offset in minutes (Two's Complement) 01 DST: ON Settings GoPro settings can be configured using the GP-Settings (GP-0074) UUID. Setting status is returned on GP-Settings-Status (GP-0075) UUID. Settings Request Format This will configure a setting on the camera. Only one setting may be sent on a packet (GATT notify or write-no-response), although multiple packets may be sent back-to-back. Request Length Setting ID Setting Value Length Setting Value 1-2 bytes 1 byte 1 byte (variable length) Settings Response Format Response Length Setting ID Response Code 1 byte 1 byte 1 byte Settings Quick Reference All settings are sent to UUID GP-0074. All values are hexadecimal and length are in bytes. * Indicates that item is experimental ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ Setting ID Setting Option Request Response HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 2 Resolution Set video resolution (id: 2) to 4k (id: 1) 03:02:01:01 02:02:00 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 2.7k (id: 4) 03:02:01:04 02:02:00 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 2.7k 4:3 (id: 6) 03:02:01:06 02:02:00 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 1440 (id: 7) 03:02:01:07 02:02:00 ❌ ❌ ❌ ✔ 2 Resolution Set video resolution (id: 2) to 1080 (id: 9) 03:02:01:09 02:02:00 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 4k 4:3 (id: 18) 03:02:01:12 02:02:00 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 5k (id: 24) 03:02:01:18 02:02:00 ❌ ❌ ❌ ✔ 2 Resolution Set video resolution (id: 2) to 5k 4:3 (id: 25) 03:02:01:19 02:02:00 ❌ ❌ ✔ ❌ 2 Resolution Set video resolution (id: 2) to 5.3k 8:7 (id: 26) 03:02:01:1A 02:02:00 ✔ ✔ ❌ ❌ 2 Resolution Set video resolution (id: 2) to 5.3k 4:3 (id: 27) 03:02:01:1B 02:02:00 ✔ ✔ ❌ ❌ 2 Resolution Set video resolution (id: 2) to 4k 8:7 (id: 28) 03:02:01:1C 02:02:00 ✔ ✔ ❌ ❌ 2 Resolution Set video resolution (id: 2) to 5.3k (id: 100) 03:02:01:64 02:02:00 ✔ ✔ ✔ ❌ 3 Frames Per Second Set video fps (id: 3) to 240 (id: 0) 03:03:01:00 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 120 (id: 1) 03:03:01:01 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 100 (id: 2) 03:03:01:02 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 60 (id: 5) 03:03:01:05 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 50 (id: 6) 03:03:01:06 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 30 (id: 8) 03:03:01:08 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 25 (id: 9) 03:03:01:09 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 24 (id: 10) 03:03:01:0A 02:03:00 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 200 (id: 13) 03:03:01:0D 02:03:00 ✔ ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to never (id: 0) 03:3B:01:00 01:3B:00 \\>= v02.10.00 ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 1 min (id: 1) 03:3B:01:01 01:3B:00 \\>= v02.10.00 \\>= v02.01.00 ❌ ❌ 59 Auto Power Down Set auto power down (id: 59) to 5 min (id: 4) 03:3B:01:04 01:3B:00 \\>= v02.10.00 ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 15 min (id: 6) 03:3B:01:06 01:3B:00 ❌ ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 30 min (id: 7) 03:3B:01:07 01:3B:00 ❌ ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 8 seconds (id: 11) 03:3B:01:0B 01:3B:00 \\>= v02.10.00 ❌ ❌ ❌ 59 Auto Power Down Set auto power down (id: 59) to 30 seconds (id: 12) 03:3B:01:0C 01:3B:00 \\>= v02.10.00 ❌ ❌ ❌ 121 Video Digital Lenses Set video digital lenses (id: 121) to wide (id: 0) 03:79:01:00 02:79:00 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to narrow (id: 2) 03:79:01:02 02:79:00 ❌ ❌ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to superview (id: 3) 03:79:01:03 02:79:00 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to linear (id: 4) 03:79:01:04 02:79:00 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to max superview (id: 7) 03:79:01:07 02:79:00 \\>= v02.00.00 ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to linear + horizon leveling (id: 8) 03:79:01:08 02:79:00 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to hyperview (id: 9) 03:79:01:09 02:79:00 ✔ ✔ ❌ ❌ 121 Video Digital Lenses Set video digital lenses (id: 121) to linear + horizon lock (id: 10) 03:79:01:0A 02:79:00 ✔ ✔ ❌ ❌ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to narrow (id: 19) 03:7A:01:13 02:7A:00 ❌ ❌ ✔ ✔ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to max superview (id: 100) 03:7A:01:64 02:7A:00 ❌ ✔ ✔ ✔ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to wide (id: 101) 03:7A:01:65 02:7A:00 ❌ ✔ ✔ ✔ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to linear (id: 102) 03:7A:01:66 02:7A:00 ❌ ✔ ✔ ✔ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to narrow (id: 19) 03:7B:01:13 02:7B:00 ❌ ❌ ✔ ✔ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to max superview (id: 100) 03:7B:01:64 02:7B:00 ❌ ✔ ✔ ❌ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to wide (id: 101) 03:7B:01:65 02:7B:00 ❌ ✔ ✔ ✔ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to linear (id: 102) 03:7B:01:66 02:7B:00 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to time lapse video (id: 13) 03:80:01:0D 02:80:00 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to time lapse photo (id: 20) 03:80:01:14 02:80:00 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to night lapse photo (id: 21) 03:80:01:15 02:80:00 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to night lapse video (id: 26) 03:80:01:1A 02:80:00 ❌ ✔ ✔ ✔ 134 Anti-Flicker Set setup anti flicker (id: 134) to 60hz (id: 2) 03:86:01:02 02:86:00 ✔ ✔ ✔ ✔ 134 Anti-Flicker Set setup anti flicker (id: 134) to 50hz (id: 3) 03:86:01:03 02:86:00 ✔ ✔ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to off (id: 0) 03:87:01:00 02:87:00 ✔ ✔ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to on (id: 1) 03:87:01:01 02:87:00 ✔ ✔ ❌ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to high (id: 2) 03:87:01:02 02:87:00 ❌ ❌ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to boost (id: 3) 03:87:01:03 02:87:00 ✔ ✔ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to auto boost (id: 4) 03:87:01:04 02:87:00 ✔ ✔ ❌ ❌ 135 Hypersmooth Set video hypersmooth (id: 135) to standard (id: 100) 03:87:01:64 02:87:00 ❌ ❌ ✔ ❌ 150 Horizon Leveling Set video horizon levelling (id: 150) to off (id: 0) 03:96:01:00 02:96:00 \\>= v02.00.00 ✔ ❌ ❌ 150 Horizon Leveling Set video horizon levelling (id: 150) to on (id: 1) 03:96:01:01 02:96:00 \\>= v02.00.00 ❌ ❌ ❌ 150 Horizon Leveling Set video horizon levelling (id: 150) to locked (id: 2) 03:96:01:02 02:96:00 ❌ ✔ ❌ ❌ 151 Horizon Leveling Set photo horizon levelling (id: 151) to off (id: 0) 03:97:01:00 02:97:00 ❌ ✔ ❌ ❌ 151 Horizon Leveling Set photo horizon levelling (id: 151) to locked (id: 2) 03:97:01:02 02:97:00 ❌ ✔ ❌ ❌ 162 Max Lens Set max lens (id: 162) to off (id: 0) 03:A2:01:00 02:A2:00 ❌ ✔ \\>= v01.20.00 ✔ 162 Max Lens Set max lens (id: 162) to on (id: 1) 03:A2:01:01 02:A2:00 ❌ ✔ \\>= v01.20.00 ✔ 167 Hindsight* Set hindsight (id: 167) to 15 seconds (id: 2) 03:A7:01:02 02:A7:00 ❌ ✔ ✔ ✔ 167 Hindsight* Set hindsight (id: 167) to 30 seconds (id: 3) 03:A7:01:03 02:A7:00 ❌ ✔ ✔ ✔ 167 Hindsight* Set hindsight (id: 167) to off (id: 4) 03:A7:01:04 02:A7:00 ❌ ✔ ✔ ✔ 173 Video Performance Mode Set video performance mode (id: 173) to maximum video performance (id: 0) 03:AD:01:00 02:AD:00 ❌ ❌ \\>= v01.16.00 ❌ 173 Video Performance Mode Set video performance mode (id: 173) to extended battery (id: 1) 03:AD:01:01 02:AD:00 ❌ ❌ \\>= v01.16.00 ❌ 173 Video Performance Mode Set video performance mode (id: 173) to tripod / stationary video (id: 2) 03:AD:01:02 02:AD:00 ❌ ❌ \\>= v01.16.00 ❌ 175 Controls Set controls (id: 175) to easy (id: 0) 03:AF:01:00 02:AF:00 ✔ ✔ ❌ ❌ 175 Controls Set controls (id: 175) to pro (id: 1) 03:AF:01:01 02:AF:00 ✔ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (id: 0) 03:B0:01:00 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (id: 1) 03:B0:01:01 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (id: 2) 03:B0:01:02 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (low light) (id: 3) 03:B0:01:03 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (ext. batt) (id: 4) 03:B0:01:04 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (ext. batt) (id: 5) 03:B0:01:05 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (ext. batt, low light) (id: 6) 03:B0:01:06 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (50hz) (id: 7) 03:B0:01:07 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (50hz) (id: 8) 03:B0:01:08 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (50hz) (id: 9) 03:B0:01:09 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (low light, 50hz) (id: 10) 03:B0:01:0A 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (ext. batt, 50hz) (id: 11) 03:B0:01:0B 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (ext. batt, 50hz) (id: 12) 03:B0:01:0C 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (ext. batt, low light, 50hz) (id: 13) 03:B0:01:0D 02:B0:00 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (ext. batt) (id: 14) 03:B0:01:0E 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (ext. batt, 50hz) (id: 15) 03:B0:01:0F 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (long. batt) (id: 16) 03:B0:01:10 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (long. batt) (id: 17) 03:B0:01:11 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (long. batt) (id: 18) 03:B0:01:12 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 1x (long. batt, low light) (id: 19) 03:B0:01:13 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (long. batt, 50hz) (id: 20) 03:B0:01:14 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (long. batt, 50hz) (id: 21) 03:B0:01:15 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (long. batt, 50hz) (id: 22) 03:B0:01:16 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 1x (long. batt, low light, 50hz) (id: 23) 03:B0:01:17 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (4k) (id: 24) 03:B0:01:18 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (2.7k) (id: 25) 03:B0:01:19 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (4k, 50hz) (id: 26) 03:B0:01:1A 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (2.7k, 50hz) (id: 27) 03:B0:01:1B 02:B0:00 ❌ \\>= v02.01.00 ❌ ❌ 177 Enable Night Photo Set enable night photo (id: 177) to off (id: 0) 03:B1:01:00 02:B1:00 ❌ ✔ ❌ ❌ 177 Enable Night Photo Set enable night photo (id: 177) to on (id: 1) 03:B1:01:01 02:B1:00 ❌ ✔ ❌ ❌ 178 Wireless Band Set wireless band (id: 178) to 2.4ghz (id: 0) 03:B2:01:00 02:B2:00 ✔ ✔ ❌ ❌ 178 Wireless Band Set wireless band (id: 178) to 5ghz (id: 1) 03:B2:01:01 02:B2:00 ✔ ✔ ❌ ❌ 179 Trail Length Set trail length (id: 179) to short (id: 1) 03:B3:01:01 02:B3:00 ✔ ✔ ❌ ❌ 179 Trail Length Set trail length (id: 179) to long (id: 2) 03:B3:01:02 02:B3:00 ✔ ✔ ❌ ❌ 179 Trail Length Set trail length (id: 179) to max (id: 3) 03:B3:01:03 02:B3:00 ✔ ✔ ❌ ❌ 180 Video Mode Set video mode (id: 180) to highest quality (id: 0) 03:B4:01:00 02:B4:00 ❌ ✔ ❌ ❌ 180 Video Mode Set video mode (id: 180) to extended battery (id: 1) 03:B4:01:01 02:B4:00 ❌ ✔ ❌ ❌ 180 Video Mode Set video mode (id: 180) to extended battery (green icon) (id: 101) 03:B4:01:65 02:B4:00 ❌ \\>= v02.01.00 ❌ ❌ 180 Video Mode Set video mode (id: 180) to longest battery (green icon) (id: 102) 03:B4:01:66 02:B4:00 ❌ \\>= v02.01.00 ❌ ❌ Camera Capabilities Camera capabilities usually change from one camera to another and often change from one release to the next. Below are documents that detail whitelists for basic video settings for every supported camera release. Note about Dependency Ordering and Blacklisting Capability documents define supported camera states. Each state is comprised of a set of setting options that are presented in dependency order. This means each state is guaranteed to be attainable if and only if the setting options are set in the order presented. Failure to adhere to dependency ordering may result in the camera's blacklist rules rejecting a set-setting command. Example Camera Command 1 Command 2 Command 3 Command 4 Command 5 Guaranteed Valid? HERO10 Black Res: 1080 Anti-Flicker: 60Hz (NTSC) FPS: 240 FOV: Wide Hypersmooth: OFF ✔ HERO10 Black FPS: 240 Anti-Flicker: 60Hz (NTSC) Res: 1080 FOV: Wide Hypersmooth: OFF ❌ In the example above, the first set of commands will always work for basic video presets such as Standard. In the second example, suppose the camera's Video Resolution was previously set to 4K. If the user tries to set Video FPS to 240, it will fail because 4K/240fps is not supported. Capability Documents Documents Product Release capabilities.xlsx capabilities.json HERO11 Black Mini v02.30.00 v02.20.00 v02.10.00 v02.00.00 v01.10.00 HERO11 Black v02.10.00 v02.01.00 v01.20.00 v01.12.00 v01.10.00 HERO10 Black v01.50.00 v01.46.00 v01.42.00 v01.40.00 v01.30.00 v01.20.00 v01.16.00 v01.10.00 HERO9 Black v01.72.00 v01.70.00 Spreadsheet Format The capabilities spreadsheet contains worksheets for every supported release. Each row in a worksheet represents a whitelisted state and is presented in dependency order as outlined above. JSON Format The capabilities JSON contains a set of whitelist states for every supported release. Each state is comprised of a list of objects that contain setting and option IDs necessary to construct set-setting commands and are given in dependency order as outlined above. Below is a simplified example of the capabilities JSON file; a formal schema is also available here: capabilities_schema.json { \"(PRODUCT_NAME)\": { \"(RELEASE_VERSION)\": { \"states\": [ [ {\"setting_name\": \"(str)\", \"setting_id\": (int), \"option_name\": \"(str)\", \"option_id\": (int)}, ... ], ... ], }, ... }, ... } Query The camera provides two basic types of state information: Camera status and settings. Camera status info includes information such as the current preset/mode, whether the system is busy or encoding, remaining sdcard space, etc. Settings info gives the currently selected option for each setting; for example, this includes the current video resolution, frame rate, digital lens (FOV), etc. Queries are sent to to GP-0076 and responses are received on GP-0077. Query Command Format Header/Length Query ID Array of IDs 1-2 bytes 1 byte Variable Length Query Commands Note: omitting :xx:... from any (un)register command will result in being (un)registered for all associated values. Query ID Query Request Notes 0x12 Get setting value(s) nn:12:xx:... nn -> message length xx -> setting ID 0x12 Get all setting values 01:12 0x13 Get status value(s) nn:13:xx:... nn -> message length xx -> status ID 0x13 Get all status values 01:13 0x32 Get available option IDs for setting(s) nn:32:xx:... nn -> message length xx -> setting ID 0x32 Get available option IDs for all settings 01:32 0x52 Register for setting(s) value updates nn:52:xx:... nn -> message length xx -> setting ID 0x53 Register for status value updates nn:53:xx:... nn -> message length xx -> status ID 0x62 Register for available option updates for setting(s) nn:62:xx:... nn -> message length xx -> setting ID 0x72 Unregister for setting updates nn:72:xx:... nn -> message length xx -> setting ID 0x73 Unregister for status updates nn:73:xx:... nn -> message length xx -> status ID 0x82 Unregister for available option updates for setting(s) nn:82:xx:... nn -> message length xx -> setting ID 0x92 Async notification when setting changes 0x93 Async notification when status changes 0xA2 Async notification when available option(s) changed Query Response Format There are two types of response notifications: Type 1: Notfication sent in direct response to a get-value or register command Type 2: Notification sent in response to data changing (must be registered to receive) Message Length Query ID Command Status Status ID Status Value Length Status Value 1-2 bytes 1 byte 1 byte 1 byte 1 byte 1-255 bytes Multi-Value Responses When receiving a query response that contains information about more than one setting/status the Status ID, Status Value Length, and Status Value fields become collectively repeatable. Example: [MESSAGE LENGTH]:[QUERY ID]:[COMMAND STATUS]:[ID1]:[LENGTH1]:[VALUE1]:[ID2]:[LENGTH2]:[VALUE2]:... Query ID in Notifications In order to discern between a Type 1 and a Type 2 response, the camera changes the Query ID for Type 2: Query Query ID in Command Query ID in Notification Register for setting(s) value updates 0x52 0x92 Register for status value updates 0x53 0x93 Register for available option updates for setting(s) 0x62 0xA2 Status IDs Below is a table of supported status IDs. * Indicates that item is experimental ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ Status ID Name Description Type Values HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 1 Internal battery present Is the system's internal battery present? boolean 0: False 1: True ✔ ✔ ✔ ✔ 2 Internal battery level Rough approximation of internal battery level in bars integer 0: Zero 1: One 2: Two 3: Three ✔ ✔ ✔ ✔ 6 System hot Is the system currently overheating? boolean 0: False 1: True ✔ ✔ ✔ ✔ 8 System busy Is the camera busy? boolean 0: False 1: True ✔ ✔ ✔ ✔ 9 Quick capture active Is Quick Capture feature enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 10 Encoding active Is the system encoding right now? boolean 0: False 1: True ✔ ✔ ✔ ✔ 11 Lcd lock active Is LCD lock active? boolean 0: False 1: True ✔ ✔ ✔ ✔ 13 Video progress counter When encoding video, this is the duration (seconds) of the video so far; 0 otherwise integer * ✔ ✔ ✔ ✔ 17 Enable Are Wireless Connections enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 19 State The pairing state of the camera integer 0: Never Started 1: Started 2: Aborted 3: Cancelled 4: Completed ✔ ✔ ✔ ✔ 20 Type The last type of pairing that the camera was engaged in integer 0: Not Pairing 1: Pairing App 2: Pairing Remote Control 3: Pairing Bluetooth Device ✔ ✔ ✔ ✔ 21 Pair time Time (milliseconds) since boot of last successful pairing complete action integer * ✔ ✔ ✔ ✔ 22 State State of current scan for WiFi Access Points. Appears to only change for CAH-related scans integer 0: Never started 1: Started 2: Aborted 3: Canceled 4: Completed ✔ ✔ ✔ ✔ 23 Scan time msec The time, in milliseconds since boot that the WiFi Access Point scan completed integer * ✔ ✔ ✔ ✔ 24 Provision status WiFi AP provisioning state integer 0: Never started 1: Started 2: Aborted 3: Canceled 4: Completed ✔ ✔ ✔ ✔ 26 Remote control version Wireless remote control version integer * ✔ ✔ ✔ ✔ 27 Remote control connected Is a wireless remote control connected? boolean 0: False 1: True ✔ ✔ ✔ ✔ 28 Pairing Wireless Pairing State integer * ✔ ✔ ✔ ✔ 29 Wlan ssid Provisioned WIFI AP SSID. On BLE connection, value is big-endian byte-encoded int string * ✔ ✔ ✔ ✔ 30 Ap ssid Camera's WIFI SSID. On BLE connection, value is big-endian byte-encoded int string * ✔ ✔ ✔ ✔ 31 App count The number of wireless devices connected to the camera integer * ✔ ✔ ✔ ✔ 32 Enable Is Preview Stream enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 33 Sd status Primary Storage Status integer -1: Unknown 0: OK 1: SD Card Full 2: SD Card Removed 3: SD Card Format Error 4: SD Card Busy 8: SD Card Swapped ✔ ✔ ✔ ✔ 34 Remaining photos How many photos can be taken before sdcard is full integer * ❌ ✔ ✔ ✔ 35 Remaining video time How many minutes of video can be captured with current settings before sdcard is full integer * ✔ ✔ ✔ ✔ 36 Num group photos How many group photos can be taken with current settings before sdcard is full integer * ❌ ✔ ✔ ✔ 37 Num group videos Total number of group videos on sdcard integer * ✔ ✔ ✔ ✔ 38 Num total photos Total number of photos on sdcard integer * ✔ ✔ ✔ ✔ 39 Num total videos Total number of videos on sdcard integer * ✔ ✔ ✔ ✔ 41 Ota status The current status of Over The Air (OTA) update integer 0: Idle 1: Downloading 2: Verifying 3: Download Failed 4: Verify Failed 5: Ready 6: GoPro App: Downloading 7: GoPro App: Verifying 8: GoPro App: Download Failed 9: GoPro App: Verify Failed 10: GoPro App: Ready ✔ ✔ ✔ ✔ 42 Download cancel request pending Is there a pending request to cancel a firmware update download? boolean 0: False 1: True ✔ ✔ ✔ ✔ 45 Camera locate active Is locate camera feature active? boolean 0: False 1: True ✔ ✔ ✔ ✔ 49 Multi shot count down The current timelapse interval countdown value (e.g. 5...4...3...2...1...) integer * ✔ ✔ ✔ ✔ 54 Remaining space Remaining space on the sdcard in Kilobytes integer * ✔ ✔ ✔ ✔ 55 Supported Is preview stream supported in current recording/mode/secondary-stream? boolean 0: False 1: True ✔ ✔ ✔ ✔ 56 Wifi bars WiFi signal strength in bars integer * ✔ ✔ ✔ ✔ 58 Num hilights The number of hilights in encoding video (set to 0 when encoding stops) integer * ✔ ✔ ✔ ✔ 59 Last hilight time msec Time since boot (msec) of most recent hilight in encoding video (set to 0 when encoding stops) integer * ✔ ✔ ✔ ✔ 60 Next poll msec The min time between camera status updates (msec). Do not poll for status more often than this integer * ✔ ✔ ✔ ✔ 64 Remaining timelapse time How many min of Timelapse video can be captured with current settings before sdcard is full integer * ✔ ✔ ✔ ✔ 65 Exposure select type Liveview Exposure Select Mode integer 0: Disabled 1: Auto 2: ISO Lock 3: Hemisphere ❌ ✔ ✔ ✔ 66 Exposure select x Liveview Exposure Select: y-coordinate (percent) percent 0-100 ❌ ✔ ✔ ✔ 67 Exposure select y Liveview Exposure Select: y-coordinate (percent) percent 0-100 ❌ ✔ ✔ ✔ 68 Gps status Does the camera currently have a GPS lock? boolean 0: False 1: True ✔ ✔ ✔ ✔ 69 Ap state Is the camera in AP Mode? boolean 0: False 1: True ✔ ✔ ✔ ✔ 70 Internal battery percentage Internal battery level (percent) percent 0-100 ✔ ✔ ✔ ✔ 74 Acc mic status Microphone Accesstory status integer 0: Microphone mod not connected 1: Microphone mod connected 2: Microphone mod connected and microphone plugged into Microphone mod ✔ ✔ ✔ ✔ 75 Digital zoom Digital Zoom level (percent) percent 0-100 ✔ ✔ ✔ ✔ 76 Wireless band Wireless Band integer 0: 2.4 GHz 1: 5 GHz 2: Max ✔ ✔ ✔ ✔ 77 Digital zoom active Is Digital Zoom feature available? boolean 0: False 1: True ✔ ✔ ✔ ✔ 78 Mobile friendly video Are current video settings mobile friendly? (related to video compression and frame rate) boolean 0: False 1: True ✔ ✔ ✔ ✔ 79 First time use Is the camera currently in First Time Use (FTU) UI flow? boolean 0: False 1: True ❌ ❌ ✔ ✔ 81 Band 5ghz avail Is 5GHz wireless band available? boolean 0: False 1: True ✔ ✔ ✔ ✔ 82 System ready Is the system ready to accept commands? boolean 0: False 1: True ✔ ✔ ✔ ✔ 83 Batt okay for ota Is the internal battery charged sufficiently to start Over The Air (OTA) update? boolean 0: False 1: True ✔ ✔ ✔ ✔ 85 Video low temp alert Is the camera getting too cold to continue recording? boolean 0: False 1: True ✔ ✔ ✔ ✔ 86 Actual orientation The rotational orientation of the camera integer 0: 0 degrees (upright) 1: 180 degrees (upside down) 2: 90 degrees (laying on right side) 3: 270 degrees (laying on left side) ✔ ✔ ✔ ✔ 88 Zoom while encoding Is this camera capable of zooming while encoding (static value based on model, not settings) boolean 0: False 1: True ✔ ✔ ✔ ✔ 89 Current mode Current flatmode ID integer * ✔ ✔ ✔ ✔ 93 Active video presets Current Video Preset (ID) integer * ✔ ✔ ✔ ✔ 94 Active photo presets Current Photo Preset (ID) integer * ❌ ✔ ✔ ✔ 95 Active timelapse presets Current Timelapse Preset (ID) integer * ✔ ✔ ✔ ✔ 96 Active presets group Current Preset Group (ID) integer * ✔ ✔ ✔ ✔ 97 Active preset Current Preset (ID) integer * ✔ ✔ ✔ ✔ 98 Preset modified Preset Modified Status, which contains an event ID and a preset (group) ID integer * ✔ ✔ ✔ ✔ 99 Remaining live bursts How many Live Bursts can be captured before sdcard is full integer * ❌ ✔ ✔ ✔ 100 Num total live bursts Total number of Live Bursts on sdcard integer * ❌ ✔ ✔ ✔ 101 Capture delay active Is Capture Delay currently active (i.e. counting down)? boolean 0: False 1: True ✔ ✔ ✔ ✔ 102 Media mod mic status Media mod State integer 0: Media mod microphone removed 2: Media mod microphone only 3: Media mod microphone with external microphone ✔ ✔ ✔ ✔ 103 Timewarp speed ramp active Time Warp Speed integer 0: 15x 1: 30x 2: 60x 3: 150x 4: 300x 5: 900x 6: 1800x 7: 2x 8: 5x 9: 10x 10: Auto 11: 1x (realtime) 12: 1/2x (slow-motion) ✔ ✔ ✔ ✔ 104 Linux core active Is the system's Linux core active? boolean 0: False 1: True ❌ ❌ ✔ ✔ 105 Camera lens type Camera lens type (reflects changes to setting 162) integer 0: Default 1: Max Lens ✔ ✔ ✔ ✔ 106 Video hindsight capture active Is Video Hindsight Capture Active? boolean 0: False 1: True ❌ ✔ ✔ ✔ 107 Scheduled preset Scheduled Capture Preset ID integer * ❌ ✔ ✔ ✔ 108 Scheduled enabled Is Scheduled Capture set? boolean 0: False 1: True ❌ ✔ ✔ ✔ 110 Media mod status Media Mode Status (bitmasked) integer 0: 000 = Selfie mod: 0, HDMI: 0, Media Mod Connected: False 1: 001 = Selfie mod: 0, HDMI: 0, Media Mod Connected: True 2: 010 = Selfie mod: 0, HDMI: 1, Media Mod Connected: False 3: 011 = Selfie mod: 0, HDMI: 1, Media Mod Connected: True 4: 100 = Selfie mod: 1, HDMI: 0, Media Mod Connected: False 5: 101 = Selfie mod: 1, HDMI: 0, Media Mod Connected: True 6: 110 = Selfie mod: 1, HDMI: 1, Media Mod Connected: False 7: 111 = Selfie mod: 1, HDMI: 1, Media Mod Connected: True ❌ ✔ ✔ ✔ 111 Sd rating check error Does sdcard meet specified minimum write speed? boolean 0: False 1: True ✔ ✔ ✔ ❌ 112 Sd write speed error Number of sdcard write speed errors since device booted integer * ✔ ✔ ✔ ❌ 113 Turbo transfer Is Turbo Transfer active? boolean 0: False 1: True ✔ ✔ ✔ ✔ 114 Camera control status Camera control status ID integer 0: Camera Idle: No one is attempting to change camera settings 1: Camera Control: Camera is in a menu or changing settings. To intervene, app must request control 2: Camera External Control: An outside entity (app) has control and is in a menu or modifying settings ✔ ✔ ✔ ❌ 115 Usb connected Is the camera connected to a PC via USB? boolean 0: False 1: True ✔ ✔ ✔ ❌ 116 Allow control over usb Camera control over USB state integer 0: Disabled 1: Enabled ✔ ✔ \\>= v01.30.00 ❌ 117 Total sd space kb Total SD card capacity in Kilobytes integer * ✔ ✔ ❌ ❌ Protobuf In order to maximize BLE bandwidth, some messages and their corresponding notifications utilize Google Protobuf (Protocol Buffers). Open GoPro currently uses Protocol Buffers Version 2. Note: All Protobuf messages (i.e. payloads, which are serialized protobuf objects) must be packetized and wrapped with Packet Headers as outlined in this document. Protobuf Message Format Protobuf communications with the camera differ from TLV-style communications. Rather than having a Type, Length, and Value, GoPro protobuf messages utilize the following: Feature ID: Indicates command type (e.g. command, setting, query) Action ID: Specific camera action; value indicates whether message was sent or an (aync) notification was received Value: Serialized protobuf object Requests Sent Message Length Feature ID Action ID Protobuf Bytestream 1-2 bytes 1 byte 1 byte Variable Length Notifications Received Message Length Feature ID Response Action ID Protobuf Bytestream 1-2 bytes 1 byte 1 byte Variable Length See Parsing Responses for details on how to detect and parse a protobuf response. Protobuf IDs Below is a table that links Protobuf Feature/Action IDs together with the UUIDs to write to and Response UUIDs to read notifications from. For additional details, see Services and Characteristics. Feature Feature ID Action IDs UUID Response UUID Network Management 0x02 0x02, 0x03, 0x04, 0x05, 0x0B, 0x0C, 0x82, 0x83, 0x84, 0x85 GP-0091 GP-0092 Command 0xF1 0x69, 0x6B, 0x78, 0x79, 0xE9, 0xEB, 0xF8, 0xF9 GP-0072 GP-0073 Query 0xF5 0x72, 0x74, 0xF2, 0xF3, 0xF4, 0xF5 GP-0076 GP-0077 Protobuf Commands Below is a table of protobuf commands that can be sent to the camera and their expected response. * Indicates that item is experimental ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ Feature ID Action ID Response Action ID Description Request Response HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 0x02 0x02 0x82 Start scan RequestStartScan ResponseStartScanning ✔ ✔ ✔ ✔ 0x0B Async status update NotifStartScanning ✔ ✔ ✔ ✔ 0x03 0x83 Get ap entries RequestGetApEntries ResponseGetApEntries ✔ ✔ ✔ ✔ 0x04 0x84 Connect RequestConnect ResponseConnect ✔ ✔ ✔ ✔ 0x0C Async status update ResponseConnect ✔ ✔ ✔ ✔ 0x05 0x85 Connect new RequestConnectNew ResponseConnectNew ✔ ✔ ✔ ✔ 0x0C Async status update NotifProvisioningState ✔ ✔ ✔ ✔ 0xF1 0x69 0xE9 Request set camera control status RequestSetCameraControlStatus ResponseGeneric ✔ ✔ \\>= v01.20.00 ❌ 0x6B 0xEB Request set turbo active RequestSetTurboActive ResponseGeneric ✔ ✔ ✔ ✔ 0x78 0xF8 Request release network RequestReleaseNetwork ResponseGeneric ✔ ✔ ✔ ✔ 0x79 0xF9 Request set live stream RequestSetLiveStreamMode ResponseGeneric ✔ ✔ ✔ ✔ 0xF5 0x72 0xF2 Request get preset status RequestGetPresetStatus NotifyPresetStatus ✔ ✔ ✔ ✔ 0xF3 Async status update NotifyPresetStatus ✔ ✔ ✔ ✔ 0x74 0xF4 Request get live stream status RequestGetLiveStreamStatus NotifyLiveStreamStatus ✔ ✔ ✔ ✔ 0xF5 Async status update NotifyLiveStreamStatus ✔ ✔ ✔ ✔ Features Below are details about Open GoPro features. Presets The camera organizes modes of operation into presets. A preset is a logical wrapper around a specific camera mode, title, icon, and a set of settings that enhance different styles of capturing media. Depending on the camera's state, different collections of presets will be available for immediate loading and use. Below is a table of settings that affect the current preset collection and thereby which presets can be loaded: ID Setting 162 Max Lens 173 Video Performance Mode 175 Controls 177 Enable Night Photo 180 Video Mode To determine which presets are available for immediate use, get Preset Status. Preset Status All cameras support basic query and subscription mechanics that allow the user to: Get hierarchical data describing the Preset Groups, Presets, and Settings that are available in the camera's current state (Un)register to be notified when a Preset is modified (e.g. resolution changes from 1080p to 4K) or a Preset Group is modified (e.g. presets are reordered/created/deleted) Preset Status should not be confused with camera status: Preset Status contains information about current preset groups and presets Camera status contains numerous statuses about current settings and camera system state Preset Groups Each Preset Group contains an ID, whether additional presets can be added, and an array of existing Presets. Presets Each Preset contains information about its ID, associated core mode, title, icon, whether it's a user-defined preset, whether the preset has been modified from its factory-default state (for factory-default presets only) and an array of Settings associated with the Preset. Important Note: The Preset ID is required to load a Preset via the Presets: Load command. For details on which cameras are supported and how to get Preset Status, see Protobuf Commands. Global Behaviors In order to prevent undefined behavior between the camera and a connected app, simultaneous use of the camera and a connected app is discouraged. Best practice for synchronizing user/app control is to use the Set Camera Control Status command and corresponding Camera Control Status (CCS) camera statuses in alignment with the finite state machine below: IDLEControl Status: IdleCAMERA_CONTROLControl Status: Camera ControlEXTERNAL_CONTROLControl Status: External ControlApp sets CCS: IdleUser interacts with cameraUser returns camera to idle screenApp sets CCS: IdleApp sets CCS: External ControlApp sets CCS: IdleUser interacts with cameraUser interacts with cameraApp sets CCS: External ControlUser interacts with camera Control Status ID IDLE 0 CONTROL 1 EXTERNAL_CONTROL 2 Set Camera Control Status This command is used to tell the camera that the app (i.e. External Control) wishes to claim control of the camera. This causes the camera to immediately exit any contextual menus and return to the idle screen. Any interaction with the camera's physical buttons will cause the camera to reclaim control and update control status accordingly. If the user returns the camera UI to the idle screen, the camera updates control status to Idle. Note: The entity currently claiming control of the camera is advertised in camera status 114 Information about whether the camera is in a contextual menu or not is advertised in camera status 63. For details on which cameras are supported and how to set Camera Control Status, see Protobuf Commands. Interface with Access Points The camera supports connecting to access points in Station Mode (STA). This is necessary for features such as Live Streaming, where the camera needs an Internet connection. While in this mode, HTTP command and control of the camera is not available on some cameras. Scanning for Access Points In order to scan for Access Points, use the flow below. See Protobuf Commands for command details. CentralCentralGP-0091GP-0091GP-0092GP-0092RequestStartScanResponseStartScanningscanning_state: EnumScanning.SCANNING_STARTEDloop[until scanning_state == EnumScanning.SCANNING_SUCCESS]Indicates scan is completeSave scan_id, total_entriesNotifStartScanningRequestGetApEntriesUse scan_id, total_entriesResponseGetApEntriesEach ScanEntry contains SSID, signal strength, freq Scan Results The ResponseGetApEntries message contains information about each discovered device. This information includes the success of the scan, the scan id used in the original request, and a ScanEntry message, whose definition is nested inside ResponseGetApEntries. A ScanEntry includes information about a discovered device including its SSID, relative signal strength, signal frequency, and a bitmasked scan_entry_flags value whose individual bits are defined by EnumScanEntryFlags. Note: When scan_entry_flags contains SCAN_FLAG_CONFIGURED, it is an indication that this network has already been provisioned. Connect to a New Access Point To provision and connect the camera to a new Access Point, use RequestConnectNew. Note: This should only be done once to provision the AP; subsequent connections should use RequestConnect. CentralCentralGP-0091GP-0091GP-0092GP-0092Scan for Access PointsRequestConnectNewResponseConnectNewprovisioning_state: EnumProvisioning.PROVISIONING_STARTEDloop[until provisioning_state == EnumProvisioning.PROVISIONING_SUCCESS_NEW_AP]NotifProvisionState Connect to a Provisioned Access Point To connect the camera to a provisioned Access Point, scan for Access Points and connect using RequestConnect: CentralCentralGP-0091GP-0091GP-0092GP-0092Scan for Access PointsRequestConnectResponseConnectprovisioning_state: EnumProvisioning.PROVISIONING_STARTEDloop[until provisioning_state == EnumProvisioning.PROVISIONING_SUCCESS_NEW_AP]NotifProvisionState Disconnect from an Access Point To disconnect from a connected Access Point and return the camera to AP mode, use RequestReleaseNetwork. CentralCentralGP-0091GP-0091GP-0092GP-0092Scan for Access PointsConnect to a New/Provisioned Access Point(Camera: STA Mode)RequestReleaseNetworkResponseGeneric(Camera: AP Mode) Turbo Transfer Some cameras support Turbo Transfer mode, which allows media to be downloaded over WiFi more rapidly. This is done by temporarily modifying low-level settings in the OS to prioritize WiFi offload speeds. When Turbo Transfer is active, theh camera displays an OSD indicating that media is being transferred in order to prevent the user from inadvertently changing settings or capturing media. Turbo Transfer should only be used during media offload. It is recommended that the user check for and--if necessary--disable Turbo Transfer on connect. Developers can query whether the camera is currently in Turbo Transfer Mode from camera status 113. Note: Pressing MODE/POWER or Shutter buttons on the camera will deactivate Turbo Transfer feature. Some cameras are already optimized for WiFi transfer and do not gain additional speed from this feature. For details on which cameras are supported and how to enable and disable Turbo Transfer, see Protobuf Commands. Live Streaming The camera supports the ability to stream to social media platforms such as Twitch, YouTube, and Facebook or any other site that accepts RTMP URLs. For additional details about getting started with RTMP, see How to Stream. Overview Live streaming with camera is accomplished as follows: Put the camera into Station Mode and connect it to an access point (see Interface With Access Points) Set the Live Stream Mode Poll for Live Stream Status until the camera indicates it is ready Set any desired settings (e.g. Hypersmooth) Set the shutter to begin live streaming Unset the shutter to stop live streaming Live Streaming Sequence CentralCentralGP-0091GP-0091GP-0092GP-0092GP-0072GP-0072GP-0073GP-0073GP-0074GP-0074GP-0075GP-0075GP-0076GP-0076GP-0077GP-0077Set Live Stream ModeRequestSetLiveStreamModeResponseGenericPoll Live Stream Status until readyloop[until LIVE_STREAM_STATE_READY]RequestGetLiveStreamStatusNotifyLiveStreamStatusSet desired settingsloop[until Desired camera state attained]Set settingResponseStart live streaming!Set shutterresponseStop live streamingUnset shutterresponse Set Live Stream Mode Setting the live stream mode is accomplished by sending a RequestSetLiveStreamMode command. Command and enum details are available in Protobuf Comands. Parameter Type Description url string RTMP url used to stream. Set to empty string to invalidate/cancel stream encode bool Whether to encode video to sdcard while streaming or not window_size EnumWindowSize Streaming video resolution cert string Certificate from a trusted root for streaming services that use encryption minimum_bitrate int32 Desired minimum streaming bitrate (min possible: 800) maximum_bitrate int32 Desired maximum streaming bitrate (max possible: 8000) starting_bitrate int32 Initial streaming bitrate (honored if 800 <= value <= 8000) lens EnumLens Streaming Field of View Get Live Stream Status Current status of the live stream is obtained by sending a RequestGetLiveStreamStatus command to the camera. This command serves two purposes: Get current state of the live stream (Un)register to be notified when live stream state changes Responses and notifications come as a NotifyLiveStreamStatus message with properties outlined in the table below. Command and enum details are available in Protobuf Comands. Parameter Type Description live_stream_status EnumLiveStreamStatus Basic streaming state (idle, ready, streaming, failed, etc) live_stream_error EnumLiveStreamError Error codes for specific streaming errors live_stream_encode bool Whether camera is encoding video to sdcard while encoding or not live_stream_bitrate int32 Current streaming bitrate (Kbps) live_stream_window_size_supported_array EnumWindowSize Defines supported streaming resolutions live_stream_encode_supported bool Does this camera support encoding while streaming? live_stream_max_lens_unsupported bool Does camera lack support for streaming with Max Lens feature? live_stream_minimum_stream_bitrate int32 Minimum possible bitrate (static) (Kbps) live_stream_maximum_stream_bitrate int32 Maximum possible bitrate (static) (Kbps) live_stream_lens_supported bool Does camera support multiple streaming FOVs? live_stream_lens_supported_array EnumLens Defines supported Field of View values", "categories": [], "tags": [], "url": "/OpenGoPro/ble_2_0#" @@ -22,7 +22,7 @@ var store = [ }, { "title": "HTTP Specification v2.0: ", - "excerpt": "Overview The GoPro API allows developers to create apps and utilities that interact with and control a GoPro camera. What can you do with the GoPro API? The GoPro API allows you to control and query the camera: Capture photo/video media Get media list Change settings Get and set the date/time Get camera status Get media metadata (file size, width, height, duration, tags, etc) and more! Supported Cameras Below is a table of cameras that support GoPro's public HTTP API: Model ID Model Code Marketing Name Minimal Firmware Version 60 H22.03 HERO11 Black Mini v01.10.00 58 H22.01 HERO11 Black v01.10.00 57 H21.01 HERO10 Black v01.10.00 55 HD9.01 HERO9 Black v01.70.00 The Basics Connection WiFi Connection to the camera via WiFi requires that the camera's WiFi Access Point be enabled. This can be done by connecting to the camera via Bluetooth Low Energy (BLE) and sending the AP Control command: WIFI AP ON. USB OpenGoPro systems that utilize USB must support the Network Control Model (NCM) protocol. Connecting via USB requires the following steps: Physically connect the camera's USB-C port to your system Send HTTP command to enable wired USB control Authentication WiFi Once the WiFi Access Point has been turned on, authentication with the camera simply requries connecting with the correct SSID and password. This information can be obtained in two ways: Put the camera into pairing mode and tap the info button in the top-right corner of the screen. Read the SSID/password directly via Bluetooth Low Energy. See Services and Characteristics seciton in BLE Specification for details. USB No authentication is necessary. Socket Address WiFi The socket address for WiFi connections is 10.5.5.9:8080. USB The socket address for USB connections is 172.2X.1YZ.51:8080 where: X is the 100's digit from the camera serial number Y is the 10's digit from the camera serial number Z is the 1's digit from the camera serial number The camera's serial number can be obtained in any of the following ways: Reading the sticker inside the camera's battery enclosure Camera UI: Preferences >> About >> Camera Info Bluetooth Low Energy by reading directly from Hardware Info . See Commands in BLE Specification for details. For example, if the camera's serial number is C0000123456789, the IP address for USB connections would be 172.27.189.51. Alternatively, the IP address can be discovered via mDNS as the camera registers the _gopro-web service. Request and Response Formats Most commands are sent via HTTP/GET and require no special headers. Responses come in two parts: The standard HTTP return codes and JSON containing any additional information. The typical use case is that the camera accepts a valid command, returns HTTP/200 (OK) and empty JSON (i.e. { }) and begins asynchronously working on the command. If an error occurs, the camera will return a standard HTTP error code and JSON with helpful error/debug information. Depending on the command sent, the camera can return JSON, binary, or Protobuf data. Some examples are listed below: Command Return Type Get Camera State JSON Get Media Info JSON Get Media GPMF Binary Get Media List JSON Get Media Screennail (JPEG) Binary Get Media Thumbnail (JPEG) Binary Get Presets JSON Sending Commands Depending on the camera's state, it may not be ready to accept specific commands. This ready state is dependent on the System Busy and the Encoding Active status flags. For example: System Busy flag is set while loading presets, changing settings, formatting sdcard, ... Encoding Active flag is set while capturing photo/video media If the system is not ready, it should reject an incoming command; however, best practice is to always wait for the System Busy and Encode Active flags to be unset before sending messages other than camera status queries. For details regarding camera state, see Status Codes. Keep Alive In order to maximize battery life, GoPro cameras automatically go to sleep after some time. This logic is handled by a combination of an Auto Power Down setting which most (but not all) cameras support and a Keep Alive message that the user can regularly send to the camera. The camera will automatically go to sleep if both timers reach zero. The Auto Power Down timer is reset when the user taps the LCD screen, presses a button on the camera or programmatically (un)sets the shutter, sets a setting, or loads a Preset. The Keep Alive timer is reset when the user sends a keep alive message. The best practice to prevent the camera from inadvertently going to sleep is to start sending Keep Alive messages every 3.0 seconds after a connection is established. Command HTTP/GET Description /gopro/camera/keep_alive Send keep-alive Commands Using the Open GoPro API, a client can perform various command, control, and query operations! Commands Quick Reference Below is a table of commands that can be sent to the camera and how to send them. ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ Command Description HTTP Method Endpoint HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black Analytics Set third party client GET /gopro/camera/analytics/set_client_info ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Camera: Get State Get camera state (status + settings) GET /gopro/camera/state ✔ ✔ ✔ ✔ Digital Zoom Digital zoom 50% GET /gopro/camera/digital_zoom?percent=50 ✔ ✔ ✔ ✔ Get Date/Time Get date/time GET /gopro/camera/get_date_time ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Keep-alive Send keep-alive GET /gopro/camera/keep_alive ✔ ✔ ✔ ✔ Media: GPMF Get GPMF data (JPG) GET /gopro/media/gpmf?path=100GOPRO/XXX.JPG ✔ ✔ ✔ ✔ Media: GPMF Get GPMF data (MP4) GET /gopro/media/gpmf?path=100GOPRO/XXX.MP4 ✔ ✔ ✔ ✔ Media: HiLight (Add) Add hilight to 100GOPRO/xxx.JPG GET /gopro/media/hilight/file?path=100GOPRO/XXX.JPG ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Media: HiLight (Add) Add hilight to 100GOPRO/xxx.MP4 at offset 2500 ms GET /gopro/media/hilight/file?path=100GOPRO/XXX.MP4&ms=2500 ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Media: HiLight (Remove) Remove hilight from 100GOPRO/xxx.JPG GET /gopro/media/hilight/remove?path=100GOPRO/XXX.JPG ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Media: HiLight (Remove) Remove hilight from 100GOPRO/xxx.MP4 at offset 2500ms GET /gopro/media/hilight/remove?path=100GOPRO/XXX.MP4&ms=2500 ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Media: HiLight Moment Hilight moment during encoding GET /gopro/media/hilight/moment ✔ ✔ \\>= v01.30.00 ❌ Media: Info Get media info (JPG) GET /gopro/media/info?path=100GOPRO/XXX.JPG ✔ ✔ ✔ ✔ Media: Info Get media info (MP4) GET /gopro/media/info?path=100GOPRO/XXX.MP4 ✔ ✔ ✔ ✔ Media: List Get media list GET /gopro/media/list ✔ ✔ ✔ ✔ Media: Screennail Get screennail for \"100GOPRO/xxx.JPG\" GET /gopro/media/screennail?path=100GOPRO/XXX.JPG ✔ ✔ ✔ ✔ Media: Screennail Get screennail for \"100GOPRO/xxx.MP4\" GET /gopro/media/screennail?path=100GOPRO/XXX.MP4 ✔ ✔ ✔ ✔ Media: Telemetry Get telemetry track data (JPG) GET /gopro/media/telemetry?path=100GOPRO/XXX.JPG ✔ ✔ ✔ ✔ Media: Telemetry Get telemetry track data (MP4) GET /gopro/media/telemetry?path=100GOPRO/XXX.MP4 ✔ ✔ ✔ ✔ Media: Thumbnail Get thumbnail for \"100GOPRO/xxx.JPG\" GET /gopro/media/thumbnail?path=100GOPRO/XXX.JPG ✔ ✔ ✔ ✔ Media: Thumbnail Get thumbnail for \"100GOPRO/xxx.MP4\" GET /gopro/media/thumbnail?path=100GOPRO/XXX.MP4 ✔ ✔ ✔ ✔ Media: Turbo Transfer Turbo transfer: off GET /gopro/media/turbo_transfer?p=0 ✔ ✔ ✔ ✔ Media: Turbo Transfer Turbo transfer: on GET /gopro/media/turbo_transfer?p=1 ✔ ✔ ✔ ✔ OTA Update Soft update: upload 12345 bytes starting at offset 67890 POST /gp/gpSoftUpdate (plus data) ✔ ✔ ✔ ✔ OTA Update Soft update: mark upload complete POST /gp/gpSoftUpdate (plus data) ✔ ✔ ✔ ✔ OTA Update Ota update: show canceled/failed ui on the camera GET /gp/gpSoftUpdate?request=canceled ✔ ✔ ✔ ✔ OTA Update Ota update: delete cached update files GET /gp/gpSoftUpdate?request=delete ✔ ✔ ✔ ✔ OTA Update Ota update: get current update state GET /gp/gpSoftUpdate?request=progress ✔ ✔ ✔ ✔ OTA Update Ota update: display update ui on camera GET /gp/gpSoftUpdate?request=showui ✔ ✔ ✔ ✔ OTA Update Ota update: initiate firmware update GET /gp/gpSoftUpdate?request=start ✔ ✔ ✔ ✔ Open GoPro Get version GET /gopro/version ✔ ✔ ✔ ✔ Presets: Get Status Get preset status GET /gopro/camera/presets/get ✔ ✔ ✔ ✔ Presets: Load Example preset id: 0x1234ABCD GET /gopro/camera/presets/load?id=305441741 ✔ ✔ ✔ ✔ Presets: Load Group Video GET /gopro/camera/presets/set_group?id=1000 ✔ ✔ ✔ ✔ Presets: Load Group Photo GET /gopro/camera/presets/set_group?id=1001 ❌ ✔ ✔ ✔ Presets: Load Group Timelapse GET /gopro/camera/presets/set_group?id=1002 ❌ ✔ ✔ ✔ Set Camera Control Status Set camera control status to idle GET /gopro/camera/control/set_ui_controller?p=0 ✔ ✔ \\>= v01.20.00 ❌ Set Camera Control Status Set camera control status to external_control GET /gopro/camera/control/set_ui_controller?p=2 ✔ ✔ \\>= v01.20.00 ❌ Set Date/Time Set date/time to 2023-01-31 03:04:05 GET /gopro/camera/set_date_time?date=2023_1_31&time=3_4_5 ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Set Local Date/Time Set local date/time to: 2023-01-31 03:04:05 (utc-02:00) (dst: on) GET /gopro/camera/set_date_time?date=2023_1_31&time=3_4_5&tzone=-120&dst=1 ✔ ✔ ❌ ❌ Set shutter Shutter: on GET /gopro/camera/shutter/start ✔ ✔ ✔ ❌ Set shutter Shutter: off GET /gopro/camera/shutter/stop ✔ ✔ ✔ ❌ Stream: Start Start preview stream GET /gopro/camera/stream/start ✔ ✔ ✔ ✔ Stream: Stop Stop preview stream GET /gopro/camera/stream/stop ✔ ✔ ✔ ✔ Webcam: Exit Exit webcam mode GET /gopro/webcam/exit ❌ ✔ ✔ ❌ Webcam: Preview Start preview stream GET /gopro/webcam/preview ❌ ✔ ✔ ❌ Webcam: Start Start webcam GET /gopro/webcam/start ❌ ✔ \\>= v01.40.00 ❌ Webcam: Start Start webcam GET /gopro/webcam/start?port=12345 ❌ \\>= v02.01.00 ❌ ❌ Webcam: Start Start webcam (res: resolution_1080, fov: wide) GET /gopro/webcam/start?res=12&fov=0 ❌ ✔ ✔ ❌ Webcam: Status Get webcam status GET /gopro/webcam/status ❌ ✔ ✔ ❌ Webcam: Stop Stop webcam GET /gopro/webcam/stop ❌ ✔ ✔ ❌ Webcam: Version Get webcam api version GET /gopro/webcam/version ❌ ✔ ✔ ❌ Wired USB Control Disable wired usb control GET /gopro/camera/control/wired_usb?p=0 ✔ ✔ \\>= v01.30.00 ❌ Wired USB Control Enable wired usb control GET /gopro/camera/control/wired_usb?p=1 ✔ ✔ \\>= v01.30.00 ❌ Settings GoPro cameras have hundreds of setting options to choose from, all of which can be set using a single endpoint. The endpoint is configured with a setting id and an option value. Note that setting option values are not globally unique. While most option values are enumerated values, some are complex bitmasked values. Settings Quick Reference Below is a table of setting options detailing how to set every option supported by Open GoPro cameras. ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ Setting ID Setting Option HTTP Method Endpoint HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 2 Resolution Set video resolution (id: 2) to 4k (id: 1) GET /gopro/camera/setting?setting=2&option=1 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 2.7k (id: 4) GET /gopro/camera/setting?setting=2&option=4 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 2.7k 4:3 (id: 6) GET /gopro/camera/setting?setting=2&option=6 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 1440 (id: 7) GET /gopro/camera/setting?setting=2&option=7 ❌ ❌ ❌ ✔ 2 Resolution Set video resolution (id: 2) to 1080 (id: 9) GET /gopro/camera/setting?setting=2&option=9 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 4k 4:3 (id: 18) GET /gopro/camera/setting?setting=2&option=18 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 5k (id: 24) GET /gopro/camera/setting?setting=2&option=24 ❌ ❌ ❌ ✔ 2 Resolution Set video resolution (id: 2) to 5k 4:3 (id: 25) GET /gopro/camera/setting?setting=2&option=25 ❌ ❌ ✔ ❌ 2 Resolution Set video resolution (id: 2) to 5.3k 8:7 (id: 26) GET /gopro/camera/setting?setting=2&option=26 ✔ ✔ ❌ ❌ 2 Resolution Set video resolution (id: 2) to 5.3k 4:3 (id: 27) GET /gopro/camera/setting?setting=2&option=27 ✔ ✔ ❌ ❌ 2 Resolution Set video resolution (id: 2) to 4k 8:7 (id: 28) GET /gopro/camera/setting?setting=2&option=28 ✔ ✔ ❌ ❌ 2 Resolution Set video resolution (id: 2) to 5.3k (id: 100) GET /gopro/camera/setting?setting=2&option=100 ✔ ✔ ✔ ❌ 3 Frames Per Second Set video fps (id: 3) to 240 (id: 0) GET /gopro/camera/setting?setting=3&option=0 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 120 (id: 1) GET /gopro/camera/setting?setting=3&option=1 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 100 (id: 2) GET /gopro/camera/setting?setting=3&option=2 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 60 (id: 5) GET /gopro/camera/setting?setting=3&option=5 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 50 (id: 6) GET /gopro/camera/setting?setting=3&option=6 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 30 (id: 8) GET /gopro/camera/setting?setting=3&option=8 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 25 (id: 9) GET /gopro/camera/setting?setting=3&option=9 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 24 (id: 10) GET /gopro/camera/setting?setting=3&option=10 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 200 (id: 13) GET /gopro/camera/setting?setting=3&option=13 ✔ ✔ ✔ ✔ 43 Webcam Digital Lenses Set webcam digital lenses (id: 43) to wide (id: 0) GET /gopro/camera/setting?setting=43&option=0 ✔ ✔ ✔ ✔ 43 Webcam Digital Lenses Set webcam digital lenses (id: 43) to narrow (id: 2) GET /gopro/camera/setting?setting=43&option=2 ✔ ✔ ✔ ✔ 43 Webcam Digital Lenses Set webcam digital lenses (id: 43) to superview (id: 3) GET /gopro/camera/setting?setting=43&option=3 ✔ ✔ ✔ ✔ 43 Webcam Digital Lenses Set webcam digital lenses (id: 43) to linear (id: 4) GET /gopro/camera/setting?setting=43&option=4 ✔ ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to never (id: 0) GET /gopro/camera/setting?setting=59&option=0 \\>= v02.10.00 ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 1 min (id: 1) GET /gopro/camera/setting?setting=59&option=1 \\>= v02.10.00 \\>= v02.01.00 ❌ ❌ 59 Auto Power Down Set auto power down (id: 59) to 5 min (id: 4) GET /gopro/camera/setting?setting=59&option=4 \\>= v02.10.00 ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 15 min (id: 6) GET /gopro/camera/setting?setting=59&option=6 ❌ ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 30 min (id: 7) GET /gopro/camera/setting?setting=59&option=7 ❌ ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 8 seconds (id: 11) GET /gopro/camera/setting?setting=59&option=11 \\>= v02.10.00 ❌ ❌ ❌ 59 Auto Power Down Set auto power down (id: 59) to 30 seconds (id: 12) GET /gopro/camera/setting?setting=59&option=12 \\>= v02.10.00 ❌ ❌ ❌ 121 Video Digital Lenses Set video digital lenses (id: 121) to wide (id: 0) GET /gopro/camera/setting?setting=121&option=0 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to narrow (id: 2) GET /gopro/camera/setting?setting=121&option=2 ❌ ❌ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to superview (id: 3) GET /gopro/camera/setting?setting=121&option=3 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to linear (id: 4) GET /gopro/camera/setting?setting=121&option=4 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to max superview (id: 7) GET /gopro/camera/setting?setting=121&option=7 \\>= v02.00.00 ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to linear + horizon leveling (id: 8) GET /gopro/camera/setting?setting=121&option=8 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to hyperview (id: 9) GET /gopro/camera/setting?setting=121&option=9 ✔ ✔ ❌ ❌ 121 Video Digital Lenses Set video digital lenses (id: 121) to linear + horizon lock (id: 10) GET /gopro/camera/setting?setting=121&option=10 ✔ ✔ ❌ ❌ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to narrow (id: 19) GET /gopro/camera/setting?setting=122&option=19 ❌ ❌ ✔ ✔ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to max superview (id: 100) GET /gopro/camera/setting?setting=122&option=100 ❌ ✔ ✔ ✔ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to wide (id: 101) GET /gopro/camera/setting?setting=122&option=101 ❌ ✔ ✔ ✔ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to linear (id: 102) GET /gopro/camera/setting?setting=122&option=102 ❌ ✔ ✔ ✔ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to narrow (id: 19) GET /gopro/camera/setting?setting=123&option=19 ❌ ❌ ✔ ✔ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to max superview (id: 100) GET /gopro/camera/setting?setting=123&option=100 ❌ ✔ ✔ ❌ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to wide (id: 101) GET /gopro/camera/setting?setting=123&option=101 ❌ ✔ ✔ ✔ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to linear (id: 102) GET /gopro/camera/setting?setting=123&option=102 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to time lapse video (id: 13) GET /gopro/camera/setting?setting=128&option=13 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to time lapse photo (id: 20) GET /gopro/camera/setting?setting=128&option=20 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to night lapse photo (id: 21) GET /gopro/camera/setting?setting=128&option=21 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to night lapse video (id: 26) GET /gopro/camera/setting?setting=128&option=26 ❌ ✔ ✔ ✔ 134 Anti-Flicker Set setup anti flicker (id: 134) to 60hz (id: 2) GET /gopro/camera/setting?setting=134&option=2 ✔ ✔ ✔ ✔ 134 Anti-Flicker Set setup anti flicker (id: 134) to 50hz (id: 3) GET /gopro/camera/setting?setting=134&option=3 ✔ ✔ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to off (id: 0) GET /gopro/camera/setting?setting=135&option=0 ✔ ✔ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to on (id: 1) GET /gopro/camera/setting?setting=135&option=1 ✔ ✔ ❌ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to high (id: 2) GET /gopro/camera/setting?setting=135&option=2 ❌ ❌ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to boost (id: 3) GET /gopro/camera/setting?setting=135&option=3 ✔ ✔ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to auto boost (id: 4) GET /gopro/camera/setting?setting=135&option=4 ✔ ✔ ❌ ❌ 135 Hypersmooth Set video hypersmooth (id: 135) to standard (id: 100) GET /gopro/camera/setting?setting=135&option=100 ❌ ❌ ✔ ❌ 150 Horizon Leveling Set video horizon levelling (id: 150) to off (id: 0) GET /gopro/camera/setting?setting=150&option=0 \\>= v02.00.00 ✔ ❌ ❌ 150 Horizon Leveling Set video horizon levelling (id: 150) to on (id: 1) GET /gopro/camera/setting?setting=150&option=1 \\>= v02.00.00 ❌ ❌ ❌ 150 Horizon Leveling Set video horizon levelling (id: 150) to locked (id: 2) GET /gopro/camera/setting?setting=150&option=2 ❌ ✔ ❌ ❌ 151 Horizon Leveling Set photo horizon levelling (id: 151) to off (id: 0) GET /gopro/camera/setting?setting=151&option=0 ❌ ✔ ❌ ❌ 151 Horizon Leveling Set photo horizon levelling (id: 151) to locked (id: 2) GET /gopro/camera/setting?setting=151&option=2 ❌ ✔ ❌ ❌ 162 Max Lens Set max lens (id: 162) to off (id: 0) GET /gopro/camera/setting?setting=162&option=0 ❌ ✔ \\>= v01.20.00 ✔ 162 Max Lens Set max lens (id: 162) to on (id: 1) GET /gopro/camera/setting?setting=162&option=1 ❌ ✔ \\>= v01.20.00 ✔ 173 Video Performance Mode Set video performance mode (id: 173) to maximum video performance (id: 0) GET /gopro/camera/setting?setting=173&option=0 ❌ ❌ \\>= v01.16.00 ❌ 173 Video Performance Mode Set video performance mode (id: 173) to extended battery (id: 1) GET /gopro/camera/setting?setting=173&option=1 ❌ ❌ \\>= v01.16.00 ❌ 173 Video Performance Mode Set video performance mode (id: 173) to tripod / stationary video (id: 2) GET /gopro/camera/setting?setting=173&option=2 ❌ ❌ \\>= v01.16.00 ❌ 175 Controls Set controls (id: 175) to easy (id: 0) GET /gopro/camera/setting?setting=175&option=0 ✔ ✔ ❌ ❌ 175 Controls Set controls (id: 175) to pro (id: 1) GET /gopro/camera/setting?setting=175&option=1 ✔ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (id: 0) GET /gopro/camera/setting?setting=176&option=0 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (id: 1) GET /gopro/camera/setting?setting=176&option=1 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (id: 2) GET /gopro/camera/setting?setting=176&option=2 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (low light) (id: 3) GET /gopro/camera/setting?setting=176&option=3 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (ext. batt) (id: 4) GET /gopro/camera/setting?setting=176&option=4 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (ext. batt) (id: 5) GET /gopro/camera/setting?setting=176&option=5 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (ext. batt, low light) (id: 6) GET /gopro/camera/setting?setting=176&option=6 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (50hz) (id: 7) GET /gopro/camera/setting?setting=176&option=7 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (50hz) (id: 8) GET /gopro/camera/setting?setting=176&option=8 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (50hz) (id: 9) GET /gopro/camera/setting?setting=176&option=9 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (low light, 50hz) (id: 10) GET /gopro/camera/setting?setting=176&option=10 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (ext. batt, 50hz) (id: 11) GET /gopro/camera/setting?setting=176&option=11 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (ext. batt, 50hz) (id: 12) GET /gopro/camera/setting?setting=176&option=12 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (ext. batt, low light, 50hz) (id: 13) GET /gopro/camera/setting?setting=176&option=13 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (ext. batt) (id: 14) GET /gopro/camera/setting?setting=176&option=14 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (ext. batt, 50hz) (id: 15) GET /gopro/camera/setting?setting=176&option=15 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (long. batt) (id: 16) GET /gopro/camera/setting?setting=176&option=16 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (long. batt) (id: 17) GET /gopro/camera/setting?setting=176&option=17 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (long. batt) (id: 18) GET /gopro/camera/setting?setting=176&option=18 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 1x (long. batt, low light) (id: 19) GET /gopro/camera/setting?setting=176&option=19 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (long. batt, 50hz) (id: 20) GET /gopro/camera/setting?setting=176&option=20 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (long. batt, 50hz) (id: 21) GET /gopro/camera/setting?setting=176&option=21 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (long. batt, 50hz) (id: 22) GET /gopro/camera/setting?setting=176&option=22 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 1x (long. batt, low light, 50hz) (id: 23) GET /gopro/camera/setting?setting=176&option=23 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (4k) (id: 24) GET /gopro/camera/setting?setting=176&option=24 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (2.7k) (id: 25) GET /gopro/camera/setting?setting=176&option=25 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (4k, 50hz) (id: 26) GET /gopro/camera/setting?setting=176&option=26 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (2.7k, 50hz) (id: 27) GET /gopro/camera/setting?setting=176&option=27 ❌ \\>= v02.01.00 ❌ ❌ 177 Enable Night Photo Set enable night photo (id: 177) to off (id: 0) GET /gopro/camera/setting?setting=177&option=0 ❌ ✔ ❌ ❌ 177 Enable Night Photo Set enable night photo (id: 177) to on (id: 1) GET /gopro/camera/setting?setting=177&option=1 ❌ ✔ ❌ ❌ 178 Wireless Band Set wireless band (id: 178) to 2.4ghz (id: 0) GET /gopro/camera/setting?setting=178&option=0 ✔ ✔ ❌ ❌ 178 Wireless Band Set wireless band (id: 178) to 5ghz (id: 1) GET /gopro/camera/setting?setting=178&option=1 ✔ ✔ ❌ ❌ 179 Trail Length Set trail length (id: 179) to short (id: 1) GET /gopro/camera/setting?setting=179&option=1 ✔ ✔ ❌ ❌ 179 Trail Length Set trail length (id: 179) to long (id: 2) GET /gopro/camera/setting?setting=179&option=2 ✔ ✔ ❌ ❌ 179 Trail Length Set trail length (id: 179) to max (id: 3) GET /gopro/camera/setting?setting=179&option=3 ✔ ✔ ❌ ❌ 180 Video Mode Set video mode (id: 180) to highest quality (id: 0) GET /gopro/camera/setting?setting=180&option=0 ❌ ✔ ❌ ❌ 180 Video Mode Set video mode (id: 180) to extended battery (id: 1) GET /gopro/camera/setting?setting=180&option=1 ❌ ✔ ❌ ❌ 180 Video Mode Set video mode (id: 180) to extended battery (green icon) (id: 101) GET /gopro/camera/setting?setting=180&option=101 ❌ \\>= v02.01.00 ❌ ❌ 180 Video Mode Set video mode (id: 180) to longest battery (green icon) (id: 102) GET /gopro/camera/setting?setting=180&option=102 ❌ \\>= v02.01.00 ❌ ❌ Camera Capabilities Camera capabilities usually change from one camera to another and often change from one release to the next. Below are documents that detail whitelists for basic video settings for every supported camera release. Note about Dependency Ordering and Blacklisting Capability documents define supported camera states. Each state is comprised of a set of setting options that are presented in dependency order. This means each state is guaranteed to be attainable if and only if the setting options are set in the order presented. Failure to adhere to dependency ordering may result in the camera's blacklist rules rejecting a set-setting command. Example Camera Command 1 Command 2 Command 3 Command 4 Command 5 Guaranteed Valid? HERO10 Black Res: 1080 Anti-Flicker: 60Hz (NTSC) FPS: 240 FOV: Wide Hypersmooth: OFF ✔ HERO10 Black FPS: 240 Anti-Flicker: 60Hz (NTSC) Res: 1080 FOV: Wide Hypersmooth: OFF ❌ In the example above, the first set of commands will always work for basic video presets such as Standard. In the second example, suppose the camera's Video Resolution was previously set to 4K. If the user tries to set Video FPS to 240, it will fail because 4K/240fps is not supported. Capability Documents Documents Product Release capabilities.xlsx capabilities.json HERO11 Black Mini v02.20.00 v02.10.00 v02.00.00 v01.10.00 HERO11 Black v02.10.00 v02.01.00 v01.20.00 v01.12.00 v01.10.00 HERO10 Black v01.50.00 v01.46.00 v01.42.00 v01.40.00 v01.30.00 v01.20.00 v01.16.00 v01.10.00 HERO9 Black v01.72.00 v01.70.00 Spreadsheet Format The capabilities spreadsheet contains worksheets for every supported release. Each row in a worksheet represents a whitelisted state and is presented in dependency order as outlined above. JSON Format The capabilities JSON contains a set of whitelist states for every supported release. Each state is comprised of a list of objects that contain setting and option IDs necessary to construct set-setting commands and are given in dependency order as outlined above. Below is a simplified example of the capabilities JSON file; a formal schema is also available here: capabilities_schema.json { \"(PRODUCT_NAME)\": { \"(RELEASE_VERSION)\": { \"states\": [ [ {\"setting_name\": \"(str)\", \"setting_id\": (int), \"option_name\": \"(str)\", \"option_id\": (int)}, ... ], ... ], }, ... }, ... } Media The camera provides an endpoint to query basic details about media captured on the sdcard. Chapters All GoPro cameras break longer videos into chapters. GoPro cameras currently limit file sizes on sdcards to 4GB for both FAT32 and exFAT file systems. This limitation is most commonly seen when recording longer (10+ minute) videos. In practice, the camera will split video media into chapters named Gqccmmmm.MP4 (and ones for THM/LRV) such that: q: Quality Level (X: Extreme, H: High, M: Medium, L: Low) cc: Chapter Number (01-99) mmmm: Media ID (0001-9999) When media becomes chaptered, the camera increments subsequent Chapter Numbers while leaving the Media ID unchanged. For example, if the user records a long High-quality video that results in 4 chapters, the files on the sdcard may look like the following: -rwxrwxrwx@ 1 gopro 123456789 4006413091 Jan 1 00:00 GH010078.MP4 -rwxrwxrwx@ 1 gopro 123456789 17663 Jan 1 00:00 GH010078.THM -rwxrwxrwx@ 1 gopro 123456789 4006001541 Jan 1 00:00 GH020078.MP4 -rwxrwxrwx@ 1 gopro 123456789 17357 Jan 1 00:00 GH020078.THM -rwxrwxrwx@ 1 gopro 123456789 4006041985 Jan 1 00:00 GH030078.MP4 -rwxrwxrwx@ 1 gopro 123456789 17204 Jan 1 00:00 GH030078.THM -rwxrwxrwx@ 1 gopro 123456789 756706872 Jan 1 00:00 GH040078.MP4 -rwxrwxrwx@ 1 gopro 123456789 17420 Jan 1 00:00 GH040078.THM -rwxrwxrwx@ 1 gopro 123456789 184526939 Jan 1 00:00 GL010078.LRV -rwxrwxrwx@ 1 gopro 123456789 184519787 Jan 1 00:00 GL020078.LRV -rwxrwxrwx@ 1 gopro 123456789 184517614 Jan 1 00:00 GL030078.LRV -rwxrwxrwx@ 1 gopro 123456789 34877660 Jan 1 00:00 GL040078.LRV Media List Format The format of the media list is given below. { \"id\": \"<MEDIA SESSION ID>\", \"media\": [ { \"d\": \"<DIRECTORY NAME>\", \"fs\": [ {<MEDIA ITEM INFO>}, ... ] }, ... ] } Media List Keys The outer structure of the media list and the inner structure of individual media items use the keys in the table below. Key Description b ID of first member of a group (for grouped media items) d Directory name fs File system. Contains listing of media items in directory g Group ID (if grouped media item) glrv Low resolution video file size id Media list session identifier l ID of last member of a group (for grouped media items) m List of missing/deleted group member IDs (for grouped media items) media Contains media info for for each directory (e.g. 100GOPRO/, 101GOPRO/, ...) mod Last modified time (seconds since epoch) n Media filename s Size of (group) media in bytes t Group type (for grouped media items) (b -> burst, c -> continuous shot, n -> night lapse, t -> time lapse) Grouped Media Items In order to minimize the size of the JSON transmitted by the camera, grouped media items such as Burst Photos, Time Lapse Photos, Night Lapse Photos, etc are represented with a single item in the media list with additional keys that allow the user to extrapolate individual filenames for each member of the group. Filenames for group media items have the form \"GXXXYYYY.ZZZ\" where XXX is the group ID, YYY is the group member ID and ZZZ is the file extension. For example, take the media list below, which contains a Time Lapse Photo group media item: { \"id\": \"2530266050123724003\", \"media\": [ { \"d\": \"100GOPRO\", \"fs\": [ { \"b\": \"8\", \"cre\": \"1613669353\", \"g\": \"1\", \"l\": \"396\", \"m\": ['75', '139'], \"mod\": \"1613669353\", \"n\": \"G0010008.JPG\", \"s\": \"773977407\", \"t\": \"t\" } ] } ] } The first filename in the group is \"G0010008.JPG\" (key: \"n\"). The ID of the first group member in this case is \"008\" (key: \"b\"). The ID of the last group member in this case is \"396\" (key: \"l\"). The IDs of deleted members in this case are \"75\" and \"139\" (key: \"m\") Given this information, the user can extrapolate that the group currently contains G0010008.JPG, G0010009.JPG, G0010010.JPG, ..., G0010074.JPG, G0010076.JPG, ..., G0010138.JPG, G0010140.JPG, ..., G0010394.JPG, G0010395.JPG. G0010396.JPG Media HiLights The HiLight Tags feature allows the user to tag moments of interest either during video capture or on existing media. Add/Remove HiLights Below is a table of all HiLight commands. For details on how to send HiLight commands, see Commands Quick Reference. Command Description Media: HiLight (Add) Video: Add a tag at a specific time offset (ms) Photo: Add a tag Media: HiLight (Remove) Video: Remove a tag at a specific time offset (ms) Photo: Remove tag Media: HiLight Moment Add a tag to the current time offset (ms) while encoding video Note: Attempting to add a HiLight tag at a time offset that exceeds the duration of the video or removing a non-existent HiLight tag will result in an HTTP/500 error. Get HiLights Once HiLight tags have been added, they can be queried by calling the Media: Info command; the response content will be JSON that contains HiLight information: Media Type Key Value Photo hc HiLight Count Video hc HiLight Count Video hi HiLights (list of time offsets in ms) Example The JSON sample below shows media that contains three HiLights at time offsets 2502ms, 5839ms, and 11478ms. Note: Photo info will not have an \"hi\":[...] key-value pair. { ..., \"hc\":\"3\", \"hi\":[2502,5839,11478], ..., } Downloading Media The URL to download/stream media from the DCIM/ directory on the sdcard is the Base URL plus /videos/DCIM/XXX/YYY where XXX is the directory name within DCIM/ given by the media list and YYY is the target media filename. For example: Given the following media list: { \"id\": \"3586667939918700960\", \"media\": [ { \"d\": \"100GOPRO\", \"fs\": [ { \"n\": \"GH010397.MP4\", \"cre\": \"1613672729\", \"mod\": \"1613672729\", \"glrv\": \"1895626\", \"ls\": \"-1\", \"s\": \"19917136\" }, { \"cre\": \"1614340213\", \"mod\": \"1614340213\", \"n\": \"GOPR0001.JPG\", \"s\": \"6961371\" } ] } ] } The URL to download GH010397.MP4 over WiFi would be http://10.5.5.9:8080/videos/DCIM/100GOPRO/GH010397.MP4 The URL to download GOPR0001.JPG over WiFi would be http://10.5.5.9:8080/videos/DCIM/100GOPRO/GOPR0001.JPG Turbo Transfer Some cameras support Turbo Transfer mode, which allows media to be downloaded over WiFi more rapidly. This special mode should only be used during media offload. It is recommended that the user check for and--if necessary--disable Turbo Transfer on connect. For details on which cameras are supported and how to enable and disable Turbo Transfer, see Commands Quick Reference. Downloading Preview Stream When the preview stream is started, the camera starts up a UDP client and begins writing MPEG Transport Stream data to the connected client on port 8554. In order to stream and save this data, the user can implement a UDP server that binds to the same port and appends datagrams to a file when they are received. Camera State The camera provides multiple types of state, all of which can be queried: Camera state: Contains information about camera status (photos taken, date, is-camera-encoding, etc) and settings (current video resolution, current frame rate, etc) Preset State: How presets are arranged into preset groups, their titles, icons, settings closely associated with each preset, etc Camera State Format Camera state is given in the following form: { \"status\": { \"1\": <status 1 value>, \"2\": <status 2 value>, ... }, \"settings: { \"2\": <setting 2 value>, \"3\": <setting 3 value>, ... } } Where status X value and setting X value are almost always integer values. See Status Codes table in this document for exceptions. For status, keys are status codes and values are status values. For settings, keys are setting IDs, and values are option values Status IDs Below is a table of supported status IDs. ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ Status ID Name Description Type Values HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 1 Internal battery present Is the system's internal battery present? boolean 0: False 1: True ✔ ✔ ✔ ✔ 2 Internal battery level Rough approximation of internal battery level in bars integer 0: Zero 1: One 2: Two 3: Three ✔ ✔ ✔ ✔ 6 System hot Is the system currently overheating? boolean 0: False 1: True ✔ ✔ ✔ ✔ 8 System busy Is the camera busy? boolean 0: False 1: True ✔ ✔ ✔ ✔ 9 Quick capture active Is Quick Capture feature enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 10 Encoding active Is the system encoding right now? boolean 0: False 1: True ✔ ✔ ✔ ✔ 11 Lcd lock active Is LCD lock active? boolean 0: False 1: True ✔ ✔ ✔ ✔ 13 Video progress counter When encoding video, this is the duration (seconds) of the video so far; 0 otherwise integer * ✔ ✔ ✔ ✔ 17 Enable Are Wireless Connections enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 19 State The pairing state of the camera integer 0: Never Started 1: Started 2: Aborted 3: Cancelled 4: Completed ✔ ✔ ✔ ✔ 20 Type The last type of pairing that the camera was engaged in integer 0: Not Pairing 1: Pairing App 2: Pairing Remote Control 3: Pairing Bluetooth Device ✔ ✔ ✔ ✔ 21 Pair time Time (milliseconds) since boot of last successful pairing complete action integer * ✔ ✔ ✔ ✔ 22 State State of current scan for WiFi Access Points. Appears to only change for CAH-related scans integer 0: Never started 1: Started 2: Aborted 3: Canceled 4: Completed ✔ ✔ ✔ ✔ 23 Scan time msec The time, in milliseconds since boot that the WiFi Access Point scan completed integer * ✔ ✔ ✔ ✔ 24 Provision status WiFi AP provisioning state integer 0: Never started 1: Started 2: Aborted 3: Canceled 4: Completed ✔ ✔ ✔ ✔ 26 Remote control version Wireless remote control version integer * ✔ ✔ ✔ ✔ 27 Remote control connected Is a wireless remote control connected? boolean 0: False 1: True ✔ ✔ ✔ ✔ 28 Pairing Wireless Pairing State integer * ✔ ✔ ✔ ✔ 29 Wlan ssid Provisioned WIFI AP SSID. On BLE connection, value is big-endian byte-encoded int string * ✔ ✔ ✔ ✔ 30 Ap ssid Camera's WIFI SSID. On BLE connection, value is big-endian byte-encoded int string * ✔ ✔ ✔ ✔ 31 App count The number of wireless devices connected to the camera integer * ✔ ✔ ✔ ✔ 32 Enable Is Preview Stream enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 33 Sd status Primary Storage Status integer -1: Unknown 0: OK 1: SD Card Full 2: SD Card Removed 3: SD Card Format Error 4: SD Card Busy 8: SD Card Swapped ✔ ✔ ✔ ✔ 34 Remaining photos How many photos can be taken before sdcard is full integer * ❌ ✔ ✔ ✔ 35 Remaining video time How many minutes of video can be captured with current settings before sdcard is full integer * ✔ ✔ ✔ ✔ 36 Num group photos How many group photos can be taken with current settings before sdcard is full integer * ❌ ✔ ✔ ✔ 37 Num group videos Total number of group videos on sdcard integer * ✔ ✔ ✔ ✔ 38 Num total photos Total number of photos on sdcard integer * ✔ ✔ ✔ ✔ 39 Num total videos Total number of videos on sdcard integer * ✔ ✔ ✔ ✔ 41 Ota status The current status of Over The Air (OTA) update integer 0: Idle 1: Downloading 2: Verifying 3: Download Failed 4: Verify Failed 5: Ready 6: GoPro App: Downloading 7: GoPro App: Verifying 8: GoPro App: Download Failed 9: GoPro App: Verify Failed 10: GoPro App: Ready ✔ ✔ ✔ ✔ 42 Download cancel request pending Is there a pending request to cancel a firmware update download? boolean 0: False 1: True ✔ ✔ ✔ ✔ 45 Camera locate active Is locate camera feature active? boolean 0: False 1: True ✔ ✔ ✔ ✔ 49 Multi shot count down The current timelapse interval countdown value (e.g. 5...4...3...2...1...) integer * ✔ ✔ ✔ ✔ 54 Remaining space Remaining space on the sdcard in Kilobytes integer * ✔ ✔ ✔ ✔ 55 Supported Is preview stream supported in current recording/mode/secondary-stream? boolean 0: False 1: True ✔ ✔ ✔ ✔ 56 Wifi bars WiFi signal strength in bars integer * ✔ ✔ ✔ ✔ 58 Num hilights The number of hilights in encoding video (set to 0 when encoding stops) integer * ✔ ✔ ✔ ✔ 59 Last hilight time msec Time since boot (msec) of most recent hilight in encoding video (set to 0 when encoding stops) integer * ✔ ✔ ✔ ✔ 60 Next poll msec The min time between camera status updates (msec). Do not poll for status more often than this integer * ✔ ✔ ✔ ✔ 64 Remaining timelapse time How many min of Timelapse video can be captured with current settings before sdcard is full integer * ✔ ✔ ✔ ✔ 65 Exposure select type Liveview Exposure Select Mode integer 0: Disabled 1: Auto 2: ISO Lock 3: Hemisphere ❌ ✔ ✔ ✔ 66 Exposure select x Liveview Exposure Select: y-coordinate (percent) percent 0-100 ❌ ✔ ✔ ✔ 67 Exposure select y Liveview Exposure Select: y-coordinate (percent) percent 0-100 ❌ ✔ ✔ ✔ 68 Gps status Does the camera currently have a GPS lock? boolean 0: False 1: True ✔ ✔ ✔ ✔ 69 Ap state Is the WiFi radio enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 70 Internal battery percentage Internal battery level (percent) percent 0-100 ✔ ✔ ✔ ✔ 74 Acc mic status Microphone Accesstory status integer 0: Microphone mod not connected 1: Microphone mod connected 2: Microphone mod connected and microphone plugged into Microphone mod ✔ ✔ ✔ ✔ 75 Digital zoom Digital Zoom level (percent) percent 0-100 ✔ ✔ ✔ ✔ 76 Wireless band Wireless Band integer 0: 2.4 GHz 1: 5 GHz 2: Max ✔ ✔ ✔ ✔ 77 Digital zoom active Is Digital Zoom feature available? boolean 0: False 1: True ✔ ✔ ✔ ✔ 78 Mobile friendly video Are current video settings mobile friendly? (related to video compression and frame rate) boolean 0: False 1: True ✔ ✔ ✔ ✔ 79 First time use Is the camera currently in First Time Use (FTU) UI flow? boolean 0: False 1: True ❌ ❌ ✔ ✔ 81 Band 5ghz avail Is 5GHz wireless band available? boolean 0: False 1: True ✔ ✔ ✔ ✔ 82 System ready Is the system ready to accept commands? boolean 0: False 1: True ✔ ✔ ✔ ✔ 83 Batt okay for ota Is the internal battery charged sufficiently to start Over The Air (OTA) update? boolean 0: False 1: True ✔ ✔ ✔ ✔ 85 Video low temp alert Is the camera getting too cold to continue recording? boolean 0: False 1: True ✔ ✔ ✔ ✔ 86 Actual orientation The rotational orientation of the camera integer 0: 0 degrees (upright) 1: 180 degrees (upside down) 2: 90 degrees (laying on right side) 3: 270 degrees (laying on left side) ✔ ✔ ✔ ✔ 88 Zoom while encoding Is this camera capable of zooming while encoding (static value based on model, not settings) boolean 0: False 1: True ✔ ✔ ✔ ✔ 89 Current mode Current flatmode ID integer * ✔ ✔ ✔ ✔ 93 Active video presets Current Video Preset (ID) integer * ✔ ✔ ✔ ✔ 94 Active photo presets Current Photo Preset (ID) integer * ❌ ✔ ✔ ✔ 95 Active timelapse presets Current Timelapse Preset (ID) integer * ✔ ✔ ✔ ✔ 96 Active presets group Current Preset Group (ID) integer * ✔ ✔ ✔ ✔ 97 Active preset Current Preset (ID) integer * ✔ ✔ ✔ ✔ 98 Preset modified Preset Modified Status, which contains an event ID and a preset (group) ID integer * ✔ ✔ ✔ ✔ 99 Remaining live bursts How many Live Bursts can be captured before sdcard is full integer * ❌ ✔ ✔ ✔ 100 Num total live bursts Total number of Live Bursts on sdcard integer * ❌ ✔ ✔ ✔ 101 Capture delay active Is Capture Delay currently active (i.e. counting down)? boolean 0: False 1: True ✔ ✔ ✔ ✔ 102 Media mod mic status Media mod State integer 0: Media mod microphone removed 2: Media mod microphone only 3: Media mod microphone with external microphone ✔ ✔ ✔ ✔ 103 Timewarp speed ramp active Time Warp Speed integer 0: 15x 1: 30x 2: 60x 3: 150x 4: 300x 5: 900x 6: 1800x 7: 2x 8: 5x 9: 10x 10: Auto 11: 1x (realtime) 12: 1/2x (slow-motion) ✔ ✔ ✔ ✔ 104 Linux core active Is the system's Linux core active? boolean 0: False 1: True ❌ ❌ ✔ ✔ 105 Camera lens type Camera lens type (reflects changes to setting 162) integer 0: Default 1: Max Lens ✔ ✔ ✔ ✔ 106 Video hindsight capture active Is Video Hindsight Capture Active? boolean 0: False 1: True ❌ ✔ ✔ ✔ 107 Scheduled preset Scheduled Capture Preset ID integer * ❌ ✔ ✔ ✔ 108 Scheduled enabled Is Scheduled Capture set? boolean 0: False 1: True ❌ ✔ ✔ ✔ 110 Media mod status Media Mode Status (bitmasked) integer 0: 000 = Selfie mod: 0, HDMI: 0, Media Mod Connected: False 1: 001 = Selfie mod: 0, HDMI: 0, Media Mod Connected: True 2: 010 = Selfie mod: 0, HDMI: 1, Media Mod Connected: False 3: 011 = Selfie mod: 0, HDMI: 1, Media Mod Connected: True 4: 100 = Selfie mod: 1, HDMI: 0, Media Mod Connected: False 5: 101 = Selfie mod: 1, HDMI: 0, Media Mod Connected: True 6: 110 = Selfie mod: 1, HDMI: 1, Media Mod Connected: False 7: 111 = Selfie mod: 1, HDMI: 1, Media Mod Connected: True ❌ ✔ ✔ ✔ 111 Sd rating check error Does sdcard meet specified minimum write speed? boolean 0: False 1: True ✔ ✔ ✔ ❌ 112 Sd write speed error Number of sdcard write speed errors since device booted integer * ✔ ✔ ✔ ❌ 113 Turbo transfer Is Turbo Transfer active? boolean 0: False 1: True ✔ ✔ ✔ ✔ 114 Camera control status Camera control status ID integer 0: Camera Idle: No one is attempting to change camera settings 1: Camera Control: Camera is in a menu or changing settings. To intervene, app must request control 2: Camera External Control: An outside entity (app) has control and is in a menu or modifying settings ✔ ✔ ✔ ❌ 115 Usb connected Is the camera connected to a PC via USB? boolean 0: False 1: True ✔ ✔ ✔ ❌ 116 Allow control over usb Camera control over USB state integer 0: Disabled 1: Enabled ✔ ✔ \\>= v01.30.00 ❌ 117 Total sd space kb Total SD card capacity in kilobytes integer * ✔ ✔ ❌ ❌ Preset Status Format Preset Status is returned as JSON, whose content is the serialization of the protobuf message: NotifyPresetStatus. Using Google protobuf APIs, the JSON can be converted back into a programmatic object in the user's language of choice. Features Presets The camera organizes modes of operation into presets. A preset is a logical wrapper around a specific camera mode, title, icon, and a set of settings that enhance different styles of capturing media. Depending on the camera's state, different collections of presets will be available for immediate loading and use. Below is a table of settings that affect the current preset collection and thereby which presets can be loaded: ID Setting 162 Max Lens 173 Video Performance Mode 175 Controls 177 Enable Night Photo 180 Video Mode To determine which presets are available for immediate use, get Preset Status. Preset Status All cameras support basic query and subscription mechanics that allow the user to: Get hierarchical data describing the Preset Groups, Presets, and Settings that are available in the camera's current state Preset Status should not be confused with camera status: Preset Status contains information about current preset groups and presets Camera status contains numerous statuses about current settings and camera system state Preset Groups Each Preset Group contains an ID, whether additional presets can be added, and an array of existing Presets. Presets Each Preset contains information about its ID, associated core mode, title, icon, whether it's a user-defined preset, whether the preset has been modified from its factory-default state (for factory-default presets only) and an array of Settings associated with the Preset. Important Note: The Preset ID is required to load a Preset via the Presets: Load command. Global Behaviors In order to prevent undefined behavior between the camera and a connected app, simultaneous use of the camera and a connected app is discouraged. Best practice for synchronizing user/app control is to use the Set Camera Control Status command and corresponding Camera Control Status (CCS) camera statuses in alignment with the finite state machine below: IDLEControl Status: IdleCAMERA_CONTROLControl Status: Camera ControlEXTERNAL_CONTROLControl Status: External ControlApp sets CCS: IdleUser interacts with cameraUser returns camera to idle screenApp sets CCS: IdleApp sets CCS: External ControlApp sets CCS: IdleUser interacts with cameraUser interacts with cameraApp sets CCS: External ControlUser interacts with camera Control Status ID IDLE 0 CONTROL 1 EXTERNAL_CONTROL 2 Set Camera Control Status This command is used to tell the camera that the app (i.e. External Control) wishes to claim control of the camera. This causes the camera to immediately exit any contextual menus and return to the idle screen. Any interaction with the camera's physical buttons will cause the camera to reclaim control and update control status accordingly. If the user returns the camera UI to the idle screen, the camera updates control status to Idle. Note: The entity currently claiming control of the camera is advertised in camera status 114 Information about whether the camera is in a contextual menu or not is advertised in camera status 63. OTA Update The Over The Air (OTA) update feature allows the user to update the camera's firmware via HTTP connection. Firmware update files can be obtained from GoPro's update page or programmatically using the firmware catalog. OTA Update Flow The OTA update process involves uploading chunks (or all) of a file along with its corresponding SHA1 hash, marking the file complete and then telling the camera to begin the update process. For specific command examples, see /gp/gpSoftUpdate in Commands Quick Reference. Note: Near the end of the firmware update process, in order to complete, the camera will need to reboot 1-2 times. This will cause any existing HTTP connections to be lost. ClientClientCameraCameraObtain UPDATE.zip from update page or firmware catalogCalculate SHA1_HASH for UPDATE.zipHTTP/GET: /gp/gpSoftUpdate?request=deleteDelete any old/cached dataHTTP/200 (OK)JSON {\"status\":0,\"message\":\"OK\",\"sha1\":\"\",\"bytes_complete\":0,\"complete\":false}HTTP/GET: /gp/gpSoftUpdate?request=showuiDisplay update OSD on camera UIHTTP/200 (OK)JSON: {\"status\":0,\"message\":\"OK\",\"sha1\":\"\",\"bytes_complete\":0,\"complete\":false}loop[read CHUNK of UPDATE.zip, starting at OFFSET]HTTP/POST: /gp/gpSoftUpdateContent-Type: multipart/form-datadata={\"sha1\": \"SHA1_HASH\", \"offset\": OFFSET, file: @CHUNK}HTTP/200 (OK)JSON: {\"status\": 0,\"message\": \"OK\",\"sha1\": \"SHA1_HASH\",\"bytes_complete\": (total uploaded bytes),\"complete\": false}HTTP/POST: /gp/gpSoftUpdateContent-Type: multipart/form-datadata={\"sha1\": \"SHA1_HASH\", \"complete\": true}HTTP/200 (OK)JSON: {\"status\":0,\"message\":\"OK\",\"sha1\":\"SHA1_HASH\",\"bytes_complete\":(size of UPDATE.zip),\"complete\":true}HTTP/GET: /gp/gpSoftUpdate?request=startStart updating firmwareHTTP/200 (OK)JSON: {\"status\":0,\"message\":\"OK\",\"sha1\":\"SHA1_HASH\",\"bytes_complete\":(size of UPDATE.zip),\"complete\":true}loop[while camera updates firmware]HTTP/GET: /gp/gpSoftUpdate?request=progressJSON: {\"status\":11,\"message\":\"Firmware update in progress\"}WiFi connection lostCamera displays OSD \"Update Complete\", reboots 1-2 times OTA Update Status Codes ID Status Description 0 Ok No errors occurred 1 Unknown Request Server did not recognize the request 2 Bad Params Parameter values not recognized 3 SHA1 Send Mismatch SHA1 for chunk did not match SHA1 of previous chunk(s) 4 SHA1 Calculates Mismatch Calculated SHA1 did not match user-specified SHA1 5 HTTP Boundary Error HTTP Post malformed 6 HTTP Post Error Unexpected HTTP/POST Content Type 7 Server Busy HTTP server is busy 8 Offset Mismatch Tried to upload chunk with offset that did not align with previous chunk 9 Bad Post Data Server failed to parse POST data 10 File Incomplete Tried to start update before server finished validating .zip file 11 Update in Progress Firmware update in progress 12 Insufficient Space Insufficient space on the sdcard to hold (decompressed) update file Webcam The webcam feature enables developers who are interested in writing custom drivers to make the camera broadcast its video preview with a limited set of resolution and field of view options. While active, the webcam feature runs a UDP client that sends raw Transport Stream data to the connected client on port 8554. To test basic functionality, connect the camera to your system, start the webcam, and use an application such as VLC to start a network stream on udp://@0.0.0.0:8554. For readers interested in using a GoPro camera as a webcam with preexisting tools, please see How to use GoPro as a Webcam. Webcam Finite State Machine PREREQUISITEWired USB Control disabledOFFWebcam disabledIDLEWebcam readyHPPHigh power previewLPPLow power previewConnect USBStopExitStartStopExitPreviewStopExitStartPreviewStartPreview Webcam Commands Note: Prior to issuing webcam commands, Wired USB Control must be disabled. For details about how to send this and webcam commands, see Commands Quick Reference. Command Connections Description Webcam: Start USB Enters webcam mode, uses default resolution and last-used fov, starts high-res stream to the IP address of caller Webcam: Start (with args) USB Enters webcam mode, uses specified resolution and/or fov, starts streaming to the IP address of caller Webcam: Preview USB Enters webcam mode, sets stream resolution and bitrate, starts low-res stream to the IP address of caller. Can set Webcam Digital Lenses and Digital Zoom levels while streaming Webcam: Stop USB Stops the webcam stream Webcam: Exit USB Stops the webcam stream and exits webcam mode Webcam: Status USB Returns the current state of the webcam endpoint, including status and error codes (see tables below) Webcam: Version USB Provides version information about webcam implementation in JSON format Status Codes Status Code OFF 0 IDLE 1 HIGH_POWER_PREVIEW 2 LOW_POWER_PREVIEW 3 Error Codes Status Code NONE 0 SET_PRESET 1 SET_WINDOW_SIZE 2 EXEC_STREAM 3 SHUTTER 4 COM_TIMEOUT 5 INVALID_PARAM 6 UNAVAILABLE 7 EXIT 8 Webcam Settings Aside from basic settings such as Resolution and FOV, the camera may support other settings such as Hypersmooth. In order to change these settings independently, the webcam must be in IDLE state. Note: There is a known issue on some cameras in which the webcam state will be wrongly reported as IDLE after a new USB connection. The best workaround for this is to call Webcam: Start followed by the Webcam: Stop after connecting USB in order to attain the true IDLE state. Resolutions Note: If resolution is not set, 1080p will be used by default ID Resolution HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 4 480 ❌ ✔ ✔ ✔ 7 720 ❌ ✔ ✔ ✔ 12 1080 ❌ ✔ ✔ ✔ Digital Lenses / FOV Note: If fov is not set, camera will default to the last-set fov or Wide if fov has never been set. ID FOV HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 0 WIDE ❌ ✔ ✔ ✔ 2 NARROW ❌ ✔ ✔ ✔ 3 SUPERVIEW ❌ ✔ ✔ ✔ 4 LINEAR ❌ ✔ ✔ ✔ Limitations HERO11 Black Mini The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings HTTP command arguments must be given in the order outlined in Commands Quick Reference HERO11 Black The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings HTTP command arguments must be given in the order outlined in Commands Quick Reference HERO10 Black The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings HTTP command arguments must be given in the order outlined in Commands Quick Reference HERO9 Black The HTTP server is not available while the camera is encoding, which means shutter controls are not supported over WiFi. This limitation can be overcome by using Bluetooth Low Energy for command and control and HTTP/REST for querying media content such as media list, media info, preview stream, etc. USB command and control is not supported on HERO9 Black. HTTP command arguments must be given in the order outlined in Commands Quick Reference General Unless changed by the user, GoPro cameras will automatically power off after some time (e.g. 5min, 15min, 30min). The Auto Power Down watchdog timer can be reset by sending periodic keep-alive messages to the camera. It is recommended to send a keep-alive at least once every 120 seconds. In general, querying the value for a setting that is not associated with the current preset/core mode results in an undefined value. For example, the user should not try to query the current Photo Digital Lenses (FOV) value while in Standard preset (Video mode).", + "excerpt": "Overview The GoPro API allows developers to create apps and utilities that interact with and control a GoPro camera. What can you do with the GoPro API? The GoPro API allows you to control and query the camera: Capture photo/video media Get media list Change settings Get and set the date/time Get camera status Get media metadata (file size, width, height, duration, tags, etc) and more! Supported Cameras Below is a table of cameras that support GoPro's public HTTP API: Model ID Model Code Marketing Name Minimal Firmware Version 60 H22.03 HERO11 Black Mini v01.10.00 58 H22.01 HERO11 Black v01.10.00 57 H21.01 HERO10 Black v01.10.00 55 HD9.01 HERO9 Black v01.70.00 The Basics Connection WiFi Connection to the camera via WiFi requires that the camera's WiFi Access Point be enabled. This can be done by connecting to the camera via Bluetooth Low Energy (BLE) and sending a command to enable AP Mode. USB OpenGoPro systems that utilize USB must support the Network Control Model (NCM) protocol. Connecting via USB requires the following steps: Physically connect the camera's USB-C port to your system Send HTTP command to enable wired USB control Authentication WiFi Once the WiFi Access Point has been turned on, authentication with the camera simply requires connecting with the correct SSID and password. This information can be obtained in two ways: Put the camera into pairing mode and tap the info button in the top-right corner of the screen. Read the SSID/password directly via Bluetooth Low Energy. See Services and Characteristics section in BLE Specification for details. USB No authentication is necessary. Socket Address WiFi The socket address for WiFi connections is 10.5.5.9:8080. USB The socket address for USB connections is 172.2X.1YZ.51:8080 where: X is the 100's digit from the camera serial number Y is the 10's digit from the camera serial number Z is the 1's digit from the camera serial number The camera's serial number can be obtained in any of the following ways: Reading the sticker inside the camera's battery enclosure Camera UI: Preferences >> About >> Camera Info Bluetooth Low Energy by reading directly from Hardware Info . See Commands in BLE Specification for details. For example, if the camera's serial number is C0000123456789, the IP address for USB connections would be 172.27.189.51. Alternatively, the IP address can be discovered via mDNS as the camera registers the _gopro-web service. Request and Response Formats Most commands are sent via HTTP/GET and require no special headers. Responses come in two parts: The standard HTTP return codes and JSON containing any additional information. The typical use case is that the camera accepts a valid command, returns HTTP/200 (OK) and empty JSON (i.e. { }) and begins asynchronously working on the command. If an error occurs, the camera will return a standard HTTP error code and JSON with helpful error/debug information. Depending on the command sent, the camera can return JSON, binary, or Protobuf data. Some examples are listed below: Command Return Type Get Camera State JSON Get Media Info JSON Get Media GPMF Binary Get Media List JSON Get Media Screennail (JPEG) Binary Get Media Thumbnail (JPEG) Binary Get Presets JSON Sending Commands Depending on the camera's state, it may not be ready to accept specific commands. This ready state is dependent on the System Busy and the Encoding Active status flags. For example: System Busy flag is set while loading presets, changing settings, formatting sdcard, ... Encoding Active flag is set while capturing photo/video media If the system is not ready, it should reject an incoming command; however, best practice is to always wait for the System Busy and Encode Active flags to be unset before sending messages other than camera status queries. For details regarding camera state, see Status Codes. Keep Alive In order to maximize battery life, GoPro cameras automatically go to sleep after some time. This logic is handled by a combination of an Auto Power Down setting which most (but not all) cameras support and a Keep Alive message that the user can regularly send to the camera. The camera will automatically go to sleep if both timers reach zero. The Auto Power Down timer is reset when the user taps the LCD screen, presses a button on the camera or programmatically (un)sets the shutter, sets a setting, or loads a Preset. The Keep Alive timer is reset when the user sends a keep alive message. The best practice to prevent the camera from inadvertently going to sleep is to start sending Keep Alive messages every 3.0 seconds after a connection is established. Command HTTP/GET Description /gopro/camera/keep_alive Send keep-alive Commands Using the Open GoPro API, a client can perform various command, control, and query operations! Commands Quick Reference Below is a table of commands that can be sent to the camera and how to send them. * Indicates that item is experimental ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ Command Description HTTP Method Endpoint HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black Analytics Set third party client GET /gopro/camera/analytics/set_client_info ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Camera: Get State Get camera state (status + settings) GET /gopro/camera/state ✔ ✔ ✔ ✔ Digital Zoom Digital zoom 50% GET /gopro/camera/digital_zoom?percent=50 ✔ ✔ ✔ ✔ Get Date/Time Get date/time GET /gopro/camera/get_date_time ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Keep-alive Send keep-alive GET /gopro/camera/keep_alive ✔ ✔ ✔ ✔ Media: GPMF Get GPMF data (JPG) GET /gopro/media/gpmf?path=100GOPRO/XXX.JPG ✔ ✔ ✔ ✔ Media: GPMF Get GPMF data (MP4) GET /gopro/media/gpmf?path=100GOPRO/XXX.MP4 ✔ ✔ ✔ ✔ Media: HiLight (Add) Add hilight to 100GOPRO/xxx.JPG GET /gopro/media/hilight/file?path=100GOPRO/XXX.JPG ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Media: HiLight (Add) Add hilight to 100GOPRO/xxx.MP4 at offset 2500 ms GET /gopro/media/hilight/file?path=100GOPRO/XXX.MP4&ms=2500 ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Media: HiLight (Remove) Remove hilight from 100GOPRO/xxx.JPG GET /gopro/media/hilight/remove?path=100GOPRO/XXX.JPG ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Media: HiLight (Remove) Remove hilight from 100GOPRO/xxx.MP4 at offset 2500ms GET /gopro/media/hilight/remove?path=100GOPRO/XXX.MP4&ms=2500 ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Media: HiLight Moment Hilight moment during encoding GET /gopro/media/hilight/moment ✔ ✔ \\>= v01.30.00 ❌ Media: Info Get media info (JPG) GET /gopro/media/info?path=100GOPRO/XXX.JPG ✔ ✔ ✔ ✔ Media: Info Get media info (MP4) GET /gopro/media/info?path=100GOPRO/XXX.MP4 ✔ ✔ ✔ ✔ Media: List Get media list GET /gopro/media/list ✔ ✔ ✔ ✔ Media: Screennail Get screennail for \"100GOPRO/xxx.JPG\" GET /gopro/media/screennail?path=100GOPRO/XXX.JPG ✔ ✔ ✔ ✔ Media: Screennail Get screennail for \"100GOPRO/xxx.MP4\" GET /gopro/media/screennail?path=100GOPRO/XXX.MP4 ✔ ✔ ✔ ✔ Media: Telemetry Get telemetry track data (JPG) GET /gopro/media/telemetry?path=100GOPRO/XXX.JPG ✔ ✔ ✔ ✔ Media: Telemetry Get telemetry track data (MP4) GET /gopro/media/telemetry?path=100GOPRO/XXX.MP4 ✔ ✔ ✔ ✔ Media: Thumbnail Get thumbnail for \"100GOPRO/xxx.JPG\" GET /gopro/media/thumbnail?path=100GOPRO/XXX.JPG ✔ ✔ ✔ ✔ Media: Thumbnail Get thumbnail for \"100GOPRO/xxx.MP4\" GET /gopro/media/thumbnail?path=100GOPRO/XXX.MP4 ✔ ✔ ✔ ✔ Media: Turbo Transfer Turbo transfer: off GET /gopro/media/turbo_transfer?p=0 ✔ ✔ ✔ ✔ Media: Turbo Transfer Turbo transfer: on GET /gopro/media/turbo_transfer?p=1 ✔ ✔ ✔ ✔ OTA Update Soft update: upload 12345 bytes starting at offset 67890 POST /gp/gpSoftUpdate (plus data) ✔ ✔ ✔ ✔ OTA Update Soft update: mark upload complete POST /gp/gpSoftUpdate (plus data) ✔ ✔ ✔ ✔ Open GoPro Get version GET /gopro/version ✔ ✔ ✔ ✔ Presets: Get Status Get preset status GET /gopro/camera/presets/get ✔ ✔ ✔ ✔ Presets: Load Example preset id: 0x1234ABCD GET /gopro/camera/presets/load?id=305441741 ✔ ✔ ✔ ✔ Presets: Load Group Video GET /gopro/camera/presets/set_group?id=1000 ✔ ✔ ✔ ✔ Presets: Load Group Photo GET /gopro/camera/presets/set_group?id=1001 ❌ ✔ ✔ ✔ Presets: Load Group Timelapse GET /gopro/camera/presets/set_group?id=1002 ❌ ✔ ✔ ✔ Set Camera Control Status Set camera control status to idle GET /gopro/camera/control/set_ui_controller?p=0 ✔ ✔ \\>= v01.20.00 ❌ Set Camera Control Status Set camera control status to external_control GET /gopro/camera/control/set_ui_controller?p=2 ✔ ✔ \\>= v01.20.00 ❌ Set Date/Time Set date/time to 2023-01-31 03:04:05 GET /gopro/camera/set_date_time?date=2023_1_31&time=3_4_5 ✔ ✔ \\>= v01.30.00 \\>= v01.70.00 Set Local Date/Time Set local date/time to: 2023-01-31 03:04:05 (utc-02:00) (dst: on) GET /gopro/camera/set_date_time?date=2023_1_31&time=3_4_5&tzone=-120&dst=1 ✔ ✔ ❌ ❌ Set shutter Shutter: on GET /gopro/camera/shutter/start ✔ ✔ ✔ ❌ Set shutter Shutter: off GET /gopro/camera/shutter/stop ✔ ✔ ✔ ❌ Soft Update Soft update: show canceled/failed ui on the camera GET /gp/gpSoftUpdate?request=canceled ✔ ✔ ✔ ✔ Soft Update Soft update: delete cached update files GET /gp/gpSoftUpdate?request=delete ✔ ✔ ✔ ✔ Soft Update Soft update: get current update state GET /gp/gpSoftUpdate?request=progress ✔ ✔ ✔ ✔ Soft Update Soft update: display update ui on camera GET /gp/gpSoftUpdate?request=showui ✔ ✔ ✔ ✔ Soft Update Soft update: initiate firmware update GET /gp/gpSoftUpdate?request=start ✔ ✔ ✔ ✔ Stream: Start Start preview stream GET /gopro/camera/stream/start ✔ ✔ ✔ ✔ Stream: Stop Stop preview stream GET /gopro/camera/stream/stop ✔ ✔ ✔ ✔ Webcam: Exit Exit webcam mode GET /gopro/webcam/exit ❌ ✔ ✔ ❌ Webcam: Preview Start preview stream GET /gopro/webcam/preview ❌ ✔ ✔ ❌ Webcam: Start Start webcam GET /gopro/webcam/start ❌ ✔ \\>= v01.40.00 ❌ Webcam: Start Start webcam GET /gopro/webcam/start?port=12345 ❌ \\>= v02.01.00 ❌ ❌ Webcam: Start Start webcam (res: resolution_1080, fov: wide) GET /gopro/webcam/start?res=12&fov=0 ❌ ✔ ✔ ❌ Webcam: Status Get webcam status GET /gopro/webcam/status ❌ ✔ ✔ ❌ Webcam: Stop Stop webcam GET /gopro/webcam/stop ❌ ✔ ✔ ❌ Webcam: Version Get webcam api version GET /gopro/webcam/version ❌ ✔ ✔ ❌ Wired USB Control Disable wired usb control GET /gopro/camera/control/wired_usb?p=0 ✔ ✔ \\>= v01.30.00 ❌ Wired USB Control Enable wired usb control GET /gopro/camera/control/wired_usb?p=1 ✔ ✔ \\>= v01.30.00 ❌ Settings GoPro cameras have hundreds of setting options to choose from, all of which can be set using a single endpoint. The endpoint is configured with a setting id and an option value. Note that setting option values are not globally unique. While most option values are enumerated values, some are complex bitmasked values. Settings Quick Reference Below is a table of setting options detailing how to set every option supported by Open GoPro cameras. * Indicates that item is experimental ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ Setting ID Setting Option HTTP Method Endpoint HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 2 Resolution Set video resolution (id: 2) to 4k (id: 1) GET /gopro/camera/setting?setting=2&option=1 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 2.7k (id: 4) GET /gopro/camera/setting?setting=2&option=4 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 2.7k 4:3 (id: 6) GET /gopro/camera/setting?setting=2&option=6 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 1440 (id: 7) GET /gopro/camera/setting?setting=2&option=7 ❌ ❌ ❌ ✔ 2 Resolution Set video resolution (id: 2) to 1080 (id: 9) GET /gopro/camera/setting?setting=2&option=9 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 4k 4:3 (id: 18) GET /gopro/camera/setting?setting=2&option=18 ✔ ✔ ✔ ✔ 2 Resolution Set video resolution (id: 2) to 5k (id: 24) GET /gopro/camera/setting?setting=2&option=24 ❌ ❌ ❌ ✔ 2 Resolution Set video resolution (id: 2) to 5k 4:3 (id: 25) GET /gopro/camera/setting?setting=2&option=25 ❌ ❌ ✔ ❌ 2 Resolution Set video resolution (id: 2) to 5.3k 8:7 (id: 26) GET /gopro/camera/setting?setting=2&option=26 ✔ ✔ ❌ ❌ 2 Resolution Set video resolution (id: 2) to 5.3k 4:3 (id: 27) GET /gopro/camera/setting?setting=2&option=27 ✔ ✔ ❌ ❌ 2 Resolution Set video resolution (id: 2) to 4k 8:7 (id: 28) GET /gopro/camera/setting?setting=2&option=28 ✔ ✔ ❌ ❌ 2 Resolution Set video resolution (id: 2) to 5.3k (id: 100) GET /gopro/camera/setting?setting=2&option=100 ✔ ✔ ✔ ❌ 3 Frames Per Second Set video fps (id: 3) to 240 (id: 0) GET /gopro/camera/setting?setting=3&option=0 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 120 (id: 1) GET /gopro/camera/setting?setting=3&option=1 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 100 (id: 2) GET /gopro/camera/setting?setting=3&option=2 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 60 (id: 5) GET /gopro/camera/setting?setting=3&option=5 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 50 (id: 6) GET /gopro/camera/setting?setting=3&option=6 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 30 (id: 8) GET /gopro/camera/setting?setting=3&option=8 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 25 (id: 9) GET /gopro/camera/setting?setting=3&option=9 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 24 (id: 10) GET /gopro/camera/setting?setting=3&option=10 ✔ ✔ ✔ ✔ 3 Frames Per Second Set video fps (id: 3) to 200 (id: 13) GET /gopro/camera/setting?setting=3&option=13 ✔ ✔ ✔ ✔ 43 Webcam Digital Lenses Set webcam digital lenses (id: 43) to wide (id: 0) GET /gopro/camera/setting?setting=43&option=0 ✔ ✔ ✔ ✔ 43 Webcam Digital Lenses Set webcam digital lenses (id: 43) to narrow (id: 2) GET /gopro/camera/setting?setting=43&option=2 ✔ ✔ ✔ ✔ 43 Webcam Digital Lenses Set webcam digital lenses (id: 43) to superview (id: 3) GET /gopro/camera/setting?setting=43&option=3 ✔ ✔ ✔ ✔ 43 Webcam Digital Lenses Set webcam digital lenses (id: 43) to linear (id: 4) GET /gopro/camera/setting?setting=43&option=4 ✔ ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to never (id: 0) GET /gopro/camera/setting?setting=59&option=0 \\>= v02.10.00 ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 1 min (id: 1) GET /gopro/camera/setting?setting=59&option=1 \\>= v02.10.00 \\>= v02.01.00 ❌ ❌ 59 Auto Power Down Set auto power down (id: 59) to 5 min (id: 4) GET /gopro/camera/setting?setting=59&option=4 \\>= v02.10.00 ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 15 min (id: 6) GET /gopro/camera/setting?setting=59&option=6 ❌ ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 30 min (id: 7) GET /gopro/camera/setting?setting=59&option=7 ❌ ✔ ✔ ✔ 59 Auto Power Down Set auto power down (id: 59) to 8 seconds (id: 11) GET /gopro/camera/setting?setting=59&option=11 \\>= v02.10.00 ❌ ❌ ❌ 59 Auto Power Down Set auto power down (id: 59) to 30 seconds (id: 12) GET /gopro/camera/setting?setting=59&option=12 \\>= v02.10.00 ❌ ❌ ❌ 121 Video Digital Lenses Set video digital lenses (id: 121) to wide (id: 0) GET /gopro/camera/setting?setting=121&option=0 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to narrow (id: 2) GET /gopro/camera/setting?setting=121&option=2 ❌ ❌ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to superview (id: 3) GET /gopro/camera/setting?setting=121&option=3 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to linear (id: 4) GET /gopro/camera/setting?setting=121&option=4 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to max superview (id: 7) GET /gopro/camera/setting?setting=121&option=7 \\>= v02.00.00 ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to linear + horizon leveling (id: 8) GET /gopro/camera/setting?setting=121&option=8 ✔ ✔ ✔ ✔ 121 Video Digital Lenses Set video digital lenses (id: 121) to hyperview (id: 9) GET /gopro/camera/setting?setting=121&option=9 ✔ ✔ ❌ ❌ 121 Video Digital Lenses Set video digital lenses (id: 121) to linear + horizon lock (id: 10) GET /gopro/camera/setting?setting=121&option=10 ✔ ✔ ❌ ❌ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to narrow (id: 19) GET /gopro/camera/setting?setting=122&option=19 ❌ ❌ ✔ ✔ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to max superview (id: 100) GET /gopro/camera/setting?setting=122&option=100 ❌ ✔ ✔ ✔ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to wide (id: 101) GET /gopro/camera/setting?setting=122&option=101 ❌ ✔ ✔ ✔ 122 Photo Digital Lenses Set photo digital lenses (id: 122) to linear (id: 102) GET /gopro/camera/setting?setting=122&option=102 ❌ ✔ ✔ ✔ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to narrow (id: 19) GET /gopro/camera/setting?setting=123&option=19 ❌ ❌ ✔ ✔ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to max superview (id: 100) GET /gopro/camera/setting?setting=123&option=100 ❌ ✔ ✔ ❌ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to wide (id: 101) GET /gopro/camera/setting?setting=123&option=101 ❌ ✔ ✔ ✔ 123 Time Lapse Digital Lenses Set time lapse digital lenses (id: 123) to linear (id: 102) GET /gopro/camera/setting?setting=123&option=102 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to time lapse video (id: 13) GET /gopro/camera/setting?setting=128&option=13 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to time lapse photo (id: 20) GET /gopro/camera/setting?setting=128&option=20 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to night lapse photo (id: 21) GET /gopro/camera/setting?setting=128&option=21 ❌ ✔ ✔ ✔ 128 Media Format Set media format (id: 128) to night lapse video (id: 26) GET /gopro/camera/setting?setting=128&option=26 ❌ ✔ ✔ ✔ 134 Anti-Flicker Set setup anti flicker (id: 134) to 60hz (id: 2) GET /gopro/camera/setting?setting=134&option=2 ✔ ✔ ✔ ✔ 134 Anti-Flicker Set setup anti flicker (id: 134) to 50hz (id: 3) GET /gopro/camera/setting?setting=134&option=3 ✔ ✔ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to off (id: 0) GET /gopro/camera/setting?setting=135&option=0 ✔ ✔ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to on (id: 1) GET /gopro/camera/setting?setting=135&option=1 ✔ ✔ ❌ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to high (id: 2) GET /gopro/camera/setting?setting=135&option=2 ❌ ❌ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to boost (id: 3) GET /gopro/camera/setting?setting=135&option=3 ✔ ✔ ✔ ✔ 135 Hypersmooth Set video hypersmooth (id: 135) to auto boost (id: 4) GET /gopro/camera/setting?setting=135&option=4 ✔ ✔ ❌ ❌ 135 Hypersmooth Set video hypersmooth (id: 135) to standard (id: 100) GET /gopro/camera/setting?setting=135&option=100 ❌ ❌ ✔ ❌ 150 Horizon Leveling Set video horizon levelling (id: 150) to off (id: 0) GET /gopro/camera/setting?setting=150&option=0 \\>= v02.00.00 ✔ ❌ ❌ 150 Horizon Leveling Set video horizon levelling (id: 150) to on (id: 1) GET /gopro/camera/setting?setting=150&option=1 \\>= v02.00.00 ❌ ❌ ❌ 150 Horizon Leveling Set video horizon levelling (id: 150) to locked (id: 2) GET /gopro/camera/setting?setting=150&option=2 ❌ ✔ ❌ ❌ 151 Horizon Leveling Set photo horizon levelling (id: 151) to off (id: 0) GET /gopro/camera/setting?setting=151&option=0 ❌ ✔ ❌ ❌ 151 Horizon Leveling Set photo horizon levelling (id: 151) to locked (id: 2) GET /gopro/camera/setting?setting=151&option=2 ❌ ✔ ❌ ❌ 162 Max Lens Set max lens (id: 162) to off (id: 0) GET /gopro/camera/setting?setting=162&option=0 ❌ ✔ \\>= v01.20.00 ✔ 162 Max Lens Set max lens (id: 162) to on (id: 1) GET /gopro/camera/setting?setting=162&option=1 ❌ ✔ \\>= v01.20.00 ✔ 167 Hindsight* Set hindsight (id: 167) to 15 seconds (id: 2) GET /gopro/camera/setting?setting=167&option=2 ❌ ✔ ✔ ✔ 167 Hindsight* Set hindsight (id: 167) to 30 seconds (id: 3) GET /gopro/camera/setting?setting=167&option=3 ❌ ✔ ✔ ✔ 167 Hindsight* Set hindsight (id: 167) to off (id: 4) GET /gopro/camera/setting?setting=167&option=4 ❌ ✔ ✔ ✔ 173 Video Performance Mode Set video performance mode (id: 173) to maximum video performance (id: 0) GET /gopro/camera/setting?setting=173&option=0 ❌ ❌ \\>= v01.16.00 ❌ 173 Video Performance Mode Set video performance mode (id: 173) to extended battery (id: 1) GET /gopro/camera/setting?setting=173&option=1 ❌ ❌ \\>= v01.16.00 ❌ 173 Video Performance Mode Set video performance mode (id: 173) to tripod / stationary video (id: 2) GET /gopro/camera/setting?setting=173&option=2 ❌ ❌ \\>= v01.16.00 ❌ 175 Controls Set controls (id: 175) to easy (id: 0) GET /gopro/camera/setting?setting=175&option=0 ✔ ✔ ❌ ❌ 175 Controls Set controls (id: 175) to pro (id: 1) GET /gopro/camera/setting?setting=175&option=1 ✔ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (id: 0) GET /gopro/camera/setting?setting=176&option=0 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (id: 1) GET /gopro/camera/setting?setting=176&option=1 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (id: 2) GET /gopro/camera/setting?setting=176&option=2 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (low light) (id: 3) GET /gopro/camera/setting?setting=176&option=3 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (ext. batt) (id: 4) GET /gopro/camera/setting?setting=176&option=4 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (ext. batt) (id: 5) GET /gopro/camera/setting?setting=176&option=5 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (ext. batt, low light) (id: 6) GET /gopro/camera/setting?setting=176&option=6 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (50hz) (id: 7) GET /gopro/camera/setting?setting=176&option=7 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (50hz) (id: 8) GET /gopro/camera/setting?setting=176&option=8 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (50hz) (id: 9) GET /gopro/camera/setting?setting=176&option=9 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (low light, 50hz) (id: 10) GET /gopro/camera/setting?setting=176&option=10 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (ext. batt, 50hz) (id: 11) GET /gopro/camera/setting?setting=176&option=11 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (ext. batt, 50hz) (id: 12) GET /gopro/camera/setting?setting=176&option=12 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 1x (ext. batt, low light, 50hz) (id: 13) GET /gopro/camera/setting?setting=176&option=13 ❌ ✔ ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (ext. batt) (id: 14) GET /gopro/camera/setting?setting=176&option=14 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (ext. batt, 50hz) (id: 15) GET /gopro/camera/setting?setting=176&option=15 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (long. batt) (id: 16) GET /gopro/camera/setting?setting=176&option=16 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (long. batt) (id: 17) GET /gopro/camera/setting?setting=176&option=17 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (long. batt) (id: 18) GET /gopro/camera/setting?setting=176&option=18 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 1x (long. batt, low light) (id: 19) GET /gopro/camera/setting?setting=176&option=19 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 8x ultra slo-mo (long. batt, 50hz) (id: 20) GET /gopro/camera/setting?setting=176&option=20 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (long. batt, 50hz) (id: 21) GET /gopro/camera/setting?setting=176&option=21 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (long. batt, 50hz) (id: 22) GET /gopro/camera/setting?setting=176&option=22 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 1x (long. batt, low light, 50hz) (id: 23) GET /gopro/camera/setting?setting=176&option=23 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (4k) (id: 24) GET /gopro/camera/setting?setting=176&option=24 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (2.7k) (id: 25) GET /gopro/camera/setting?setting=176&option=25 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 2x slo-mo (4k, 50hz) (id: 26) GET /gopro/camera/setting?setting=176&option=26 ❌ \\>= v02.01.00 ❌ ❌ 176 Speed Set speed (id: 176) to 4x super slo-mo (2.7k, 50hz) (id: 27) GET /gopro/camera/setting?setting=176&option=27 ❌ \\>= v02.01.00 ❌ ❌ 177 Enable Night Photo Set enable night photo (id: 177) to off (id: 0) GET /gopro/camera/setting?setting=177&option=0 ❌ ✔ ❌ ❌ 177 Enable Night Photo Set enable night photo (id: 177) to on (id: 1) GET /gopro/camera/setting?setting=177&option=1 ❌ ✔ ❌ ❌ 178 Wireless Band Set wireless band (id: 178) to 2.4ghz (id: 0) GET /gopro/camera/setting?setting=178&option=0 ✔ ✔ ❌ ❌ 178 Wireless Band Set wireless band (id: 178) to 5ghz (id: 1) GET /gopro/camera/setting?setting=178&option=1 ✔ ✔ ❌ ❌ 179 Trail Length Set trail length (id: 179) to short (id: 1) GET /gopro/camera/setting?setting=179&option=1 ✔ ✔ ❌ ❌ 179 Trail Length Set trail length (id: 179) to long (id: 2) GET /gopro/camera/setting?setting=179&option=2 ✔ ✔ ❌ ❌ 179 Trail Length Set trail length (id: 179) to max (id: 3) GET /gopro/camera/setting?setting=179&option=3 ✔ ✔ ❌ ❌ 180 Video Mode Set video mode (id: 180) to highest quality (id: 0) GET /gopro/camera/setting?setting=180&option=0 ❌ ✔ ❌ ❌ 180 Video Mode Set video mode (id: 180) to extended battery (id: 1) GET /gopro/camera/setting?setting=180&option=1 ❌ ✔ ❌ ❌ 180 Video Mode Set video mode (id: 180) to extended battery (green icon) (id: 101) GET /gopro/camera/setting?setting=180&option=101 ❌ \\>= v02.01.00 ❌ ❌ 180 Video Mode Set video mode (id: 180) to longest battery (green icon) (id: 102) GET /gopro/camera/setting?setting=180&option=102 ❌ \\>= v02.01.00 ❌ ❌ Camera Capabilities Camera capabilities usually change from one camera to another and often change from one release to the next. Below are documents that detail whitelists for basic video settings for every supported camera release. Note about Dependency Ordering and Blacklisting Capability documents define supported camera states. Each state is comprised of a set of setting options that are presented in dependency order. This means each state is guaranteed to be attainable if and only if the setting options are set in the order presented. Failure to adhere to dependency ordering may result in the camera's blacklist rules rejecting a set-setting command. Example Camera Command 1 Command 2 Command 3 Command 4 Command 5 Guaranteed Valid? HERO10 Black Res: 1080 Anti-Flicker: 60Hz (NTSC) FPS: 240 FOV: Wide Hypersmooth: OFF ✔ HERO10 Black FPS: 240 Anti-Flicker: 60Hz (NTSC) Res: 1080 FOV: Wide Hypersmooth: OFF ❌ In the example above, the first set of commands will always work for basic video presets such as Standard. In the second example, suppose the camera's Video Resolution was previously set to 4K. If the user tries to set Video FPS to 240, it will fail because 4K/240fps is not supported. Capability Documents Documents Product Release capabilities.xlsx capabilities.json HERO11 Black Mini v02.30.00 v02.20.00 v02.10.00 v02.00.00 v01.10.00 HERO11 Black v02.10.00 v02.01.00 v01.20.00 v01.12.00 v01.10.00 HERO10 Black v01.50.00 v01.46.00 v01.42.00 v01.40.00 v01.30.00 v01.20.00 v01.16.00 v01.10.00 HERO9 Black v01.72.00 v01.70.00 Spreadsheet Format The capabilities spreadsheet contains worksheets for every supported release. Each row in a worksheet represents a whitelisted state and is presented in dependency order as outlined above. JSON Format The capabilities JSON contains a set of whitelist states for every supported release. Each state is comprised of a list of objects that contain setting and option IDs necessary to construct set-setting commands and are given in dependency order as outlined above. Below is a simplified example of the capabilities JSON file; a formal schema is also available here: capabilities_schema.json { \"(PRODUCT_NAME)\": { \"(RELEASE_VERSION)\": { \"states\": [ [ {\"setting_name\": \"(str)\", \"setting_id\": (int), \"option_name\": \"(str)\", \"option_id\": (int)}, ... ], ... ], }, ... }, ... } Media The camera provides an endpoint to query basic details about media captured on the sdcard. Chapters All GoPro cameras break longer videos into chapters. GoPro cameras currently limit file sizes on sdcards to 4GB for both FAT32 and exFAT file systems. This limitation is most commonly seen when recording longer (10+ minute) videos. In practice, the camera will split video media into chapters named Gqccmmmm.MP4 (and ones for THM/LRV) such that: q: Quality Level (X: Extreme, H: High, M: Medium, L: Low) cc: Chapter Number (01-99) mmmm: Media ID (0001-9999) When media becomes chaptered, the camera increments subsequent Chapter Numbers while leaving the Media ID unchanged. For example, if the user records a long High-quality video that results in 4 chapters, the files on the sdcard may look like the following: -rwxrwxrwx@ 1 gopro 123456789 4006413091 Jan 1 00:00 GH010078.MP4 -rwxrwxrwx@ 1 gopro 123456789 17663 Jan 1 00:00 GH010078.THM -rwxrwxrwx@ 1 gopro 123456789 4006001541 Jan 1 00:00 GH020078.MP4 -rwxrwxrwx@ 1 gopro 123456789 17357 Jan 1 00:00 GH020078.THM -rwxrwxrwx@ 1 gopro 123456789 4006041985 Jan 1 00:00 GH030078.MP4 -rwxrwxrwx@ 1 gopro 123456789 17204 Jan 1 00:00 GH030078.THM -rwxrwxrwx@ 1 gopro 123456789 756706872 Jan 1 00:00 GH040078.MP4 -rwxrwxrwx@ 1 gopro 123456789 17420 Jan 1 00:00 GH040078.THM -rwxrwxrwx@ 1 gopro 123456789 184526939 Jan 1 00:00 GL010078.LRV -rwxrwxrwx@ 1 gopro 123456789 184519787 Jan 1 00:00 GL020078.LRV -rwxrwxrwx@ 1 gopro 123456789 184517614 Jan 1 00:00 GL030078.LRV -rwxrwxrwx@ 1 gopro 123456789 34877660 Jan 1 00:00 GL040078.LRV Media List Format The format of the media list is given below. { \"id\": \"<MEDIA SESSION ID>\", \"media\": [ { \"d\": \"<DIRECTORY NAME>\", \"fs\": [ {<MEDIA ITEM INFO>}, ... ] }, ... ] } Media List Keys The outer structure of the media list and the inner structure of individual media items use the keys in the table below. Key Description b ID of first member of a group (for grouped media items) d Directory name fs File system. Contains listing of media items in directory g Group ID (if grouped media item) glrv Low resolution video file size id Media list session identifier l ID of last member of a group (for grouped media items) m List of missing/deleted group member IDs (for grouped media items) media Contains media info for for each directory (e.g. 100GOPRO/, 101GOPRO/, ...) mod Last modified time (seconds since epoch) n Media filename s Size of (group) media in bytes t Group type (for grouped media items) (b -> burst, c -> continuous shot, n -> night lapse, t -> time lapse) Grouped Media Items In order to minimize the size of the JSON transmitted by the camera, grouped media items such as Burst Photos, Time Lapse Photos, Night Lapse Photos, etc are represented with a single item in the media list with additional keys that allow the user to extrapolate individual filenames for each member of the group. Filenames for group media items have the form \"GXXXYYYY.ZZZ\" where XXX is the group ID, YYY is the group member ID and ZZZ is the file extension. For example, take the media list below, which contains a Time Lapse Photo group media item: { \"id\": \"2530266050123724003\", \"media\": [ { \"d\": \"100GOPRO\", \"fs\": [ { \"b\": \"8\", \"cre\": \"1613669353\", \"g\": \"1\", \"l\": \"396\", \"m\": ['75', '139'], \"mod\": \"1613669353\", \"n\": \"G0010008.JPG\", \"s\": \"773977407\", \"t\": \"t\" } ] } ] } The first filename in the group is \"G0010008.JPG\" (key: \"n\"). The ID of the first group member in this case is \"008\" (key: \"b\"). The ID of the last group member in this case is \"396\" (key: \"l\"). The IDs of deleted members in this case are \"75\" and \"139\" (key: \"m\") Given this information, the user can extrapolate that the group currently contains G0010008.JPG, G0010009.JPG, G0010010.JPG, ..., G0010074.JPG, G0010076.JPG, ..., G0010138.JPG, G0010140.JPG, ..., G0010394.JPG, G0010395.JPG. G0010396.JPG Media HiLights The HiLight Tags feature allows the user to tag moments of interest either during video capture or on existing media. Add/Remove HiLights Below is a table of all HiLight commands. For details on how to send HiLight commands, see Commands Quick Reference. Command Description Media: HiLight (Add) Video: Add a tag at a specific time offset (ms) Photo: Add a tag Media: HiLight (Remove) Video: Remove a tag at a specific time offset (ms) Photo: Remove tag Media: HiLight Moment Add a tag to the current time offset (ms) while encoding video Note: Attempting to add a HiLight tag at a time offset that exceeds the duration of the video or removing a non-existent HiLight tag will result in an HTTP/500 error. Get HiLights Once HiLight tags have been added, they can be queried by calling the Media: Info command; the response content will be JSON that contains HiLight information: Media Type Key Value Photo hc HiLight Count Video hc HiLight Count Video hi HiLights (list of time offsets in ms) Example The JSON sample below shows media that contains three HiLights at time offsets 2502ms, 5839ms, and 11478ms. Note: Photo info will not have an \"hi\":[...] key-value pair. { ..., \"hc\":\"3\", \"hi\":[2502,5839,11478], ..., } Downloading Media The URL to download/stream media from the DCIM/ directory on the sdcard is the Base URL plus /videos/DCIM/XXX/YYY where XXX is the directory name within DCIM/ given by the media list and YYY is the target media filename. For example: Given the following media list: { \"id\": \"3586667939918700960\", \"media\": [ { \"d\": \"100GOPRO\", \"fs\": [ { \"n\": \"GH010397.MP4\", \"cre\": \"1613672729\", \"mod\": \"1613672729\", \"glrv\": \"1895626\", \"ls\": \"-1\", \"s\": \"19917136\" }, { \"cre\": \"1614340213\", \"mod\": \"1614340213\", \"n\": \"GOPR0001.JPG\", \"s\": \"6961371\" } ] } ] } The URL to download GH010397.MP4 over WiFi would be http://10.5.5.9:8080/videos/DCIM/100GOPRO/GH010397.MP4 The URL to download GOPR0001.JPG over WiFi would be http://10.5.5.9:8080/videos/DCIM/100GOPRO/GOPR0001.JPG Turbo Transfer Some cameras support Turbo Transfer mode, which allows media to be downloaded over WiFi more rapidly. This special mode should only be used during media offload. It is recommended that the user check for and--if necessary--disable Turbo Transfer on connect. For details on which cameras are supported and how to enable and disable Turbo Transfer, see Commands Quick Reference. Downloading Preview Stream When the preview stream is started, the camera starts up a UDP client and begins writing MPEG Transport Stream data to the client on port 8554. In order to stream this data, the client must implement a UDP connection that binds to the same port and decode the data. Camera State The camera provides multiple types of state, all of which can be queried: Camera state: Contains information about camera status (photos taken, date, is-camera-encoding, etc) and settings (current video resolution, current frame rate, etc) Preset State: How presets are arranged into preset groups, their titles, icons, settings closely associated with each preset, etc Camera State Format Camera state is given in the following form: { \"status\": { \"1\": <status 1 value>, \"2\": <status 2 value>, ... }, \"settings: { \"2\": <setting 2 value>, \"3\": <setting 3 value>, ... } } Where status X value and setting X value are almost always integer values. See Status Codes table in this document for exceptions. For status, keys are status codes and values are status values. For settings, keys are setting IDs, and values are option values Status IDs Below is a table of supported status IDs. * Indicates that item is experimental ✔ Indicates support for all Open GoPro firmware versions. ❌ Indicates a lack of support for all Open GoPro firmware versions. >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ Status ID Name Description Type Values HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 1 Internal battery present Is the system's internal battery present? boolean 0: False 1: True ✔ ✔ ✔ ✔ 2 Internal battery level Rough approximation of internal battery level in bars integer 0: Zero 1: One 2: Two 3: Three ✔ ✔ ✔ ✔ 6 System hot Is the system currently overheating? boolean 0: False 1: True ✔ ✔ ✔ ✔ 8 System busy Is the camera busy? boolean 0: False 1: True ✔ ✔ ✔ ✔ 9 Quick capture active Is Quick Capture feature enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 10 Encoding active Is the system encoding right now? boolean 0: False 1: True ✔ ✔ ✔ ✔ 11 Lcd lock active Is LCD lock active? boolean 0: False 1: True ✔ ✔ ✔ ✔ 13 Video progress counter When encoding video, this is the duration (seconds) of the video so far; 0 otherwise integer * ✔ ✔ ✔ ✔ 17 Enable Are Wireless Connections enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 19 State The pairing state of the camera integer 0: Never Started 1: Started 2: Aborted 3: Cancelled 4: Completed ✔ ✔ ✔ ✔ 20 Type The last type of pairing that the camera was engaged in integer 0: Not Pairing 1: Pairing App 2: Pairing Remote Control 3: Pairing Bluetooth Device ✔ ✔ ✔ ✔ 21 Pair time Time (milliseconds) since boot of last successful pairing complete action integer * ✔ ✔ ✔ ✔ 22 State State of current scan for WiFi Access Points. Appears to only change for CAH-related scans integer 0: Never started 1: Started 2: Aborted 3: Canceled 4: Completed ✔ ✔ ✔ ✔ 23 Scan time msec The time, in milliseconds since boot that the WiFi Access Point scan completed integer * ✔ ✔ ✔ ✔ 24 Provision status WiFi AP provisioning state integer 0: Never started 1: Started 2: Aborted 3: Canceled 4: Completed ✔ ✔ ✔ ✔ 26 Remote control version Wireless remote control version integer * ✔ ✔ ✔ ✔ 27 Remote control connected Is a wireless remote control connected? boolean 0: False 1: True ✔ ✔ ✔ ✔ 28 Pairing Wireless Pairing State integer * ✔ ✔ ✔ ✔ 29 Wlan ssid Provisioned WIFI AP SSID. On BLE connection, value is big-endian byte-encoded int string * ✔ ✔ ✔ ✔ 30 Ap ssid Camera's WIFI SSID. On BLE connection, value is big-endian byte-encoded int string * ✔ ✔ ✔ ✔ 31 App count The number of wireless devices connected to the camera integer * ✔ ✔ ✔ ✔ 32 Enable Is Preview Stream enabled? boolean 0: False 1: True ✔ ✔ ✔ ✔ 33 Sd status Primary Storage Status integer -1: Unknown 0: OK 1: SD Card Full 2: SD Card Removed 3: SD Card Format Error 4: SD Card Busy 8: SD Card Swapped ✔ ✔ ✔ ✔ 34 Remaining photos How many photos can be taken before sdcard is full integer * ❌ ✔ ✔ ✔ 35 Remaining video time How many minutes of video can be captured with current settings before sdcard is full integer * ✔ ✔ ✔ ✔ 36 Num group photos How many group photos can be taken with current settings before sdcard is full integer * ❌ ✔ ✔ ✔ 37 Num group videos Total number of group videos on sdcard integer * ✔ ✔ ✔ ✔ 38 Num total photos Total number of photos on sdcard integer * ✔ ✔ ✔ ✔ 39 Num total videos Total number of videos on sdcard integer * ✔ ✔ ✔ ✔ 41 Ota status The current status of Over The Air (OTA) update integer 0: Idle 1: Downloading 2: Verifying 3: Download Failed 4: Verify Failed 5: Ready 6: GoPro App: Downloading 7: GoPro App: Verifying 8: GoPro App: Download Failed 9: GoPro App: Verify Failed 10: GoPro App: Ready ✔ ✔ ✔ ✔ 42 Download cancel request pending Is there a pending request to cancel a firmware update download? boolean 0: False 1: True ✔ ✔ ✔ ✔ 45 Camera locate active Is locate camera feature active? boolean 0: False 1: True ✔ ✔ ✔ ✔ 49 Multi shot count down The current timelapse interval countdown value (e.g. 5...4...3...2...1...) integer * ✔ ✔ ✔ ✔ 54 Remaining space Remaining space on the sdcard in Kilobytes integer * ✔ ✔ ✔ ✔ 55 Supported Is preview stream supported in current recording/mode/secondary-stream? boolean 0: False 1: True ✔ ✔ ✔ ✔ 56 Wifi bars WiFi signal strength in bars integer * ✔ ✔ ✔ ✔ 58 Num hilights The number of hilights in encoding video (set to 0 when encoding stops) integer * ✔ ✔ ✔ ✔ 59 Last hilight time msec Time since boot (msec) of most recent hilight in encoding video (set to 0 when encoding stops) integer * ✔ ✔ ✔ ✔ 60 Next poll msec The min time between camera status updates (msec). Do not poll for status more often than this integer * ✔ ✔ ✔ ✔ 64 Remaining timelapse time How many min of Timelapse video can be captured with current settings before sdcard is full integer * ✔ ✔ ✔ ✔ 65 Exposure select type Liveview Exposure Select Mode integer 0: Disabled 1: Auto 2: ISO Lock 3: Hemisphere ❌ ✔ ✔ ✔ 66 Exposure select x Liveview Exposure Select: y-coordinate (percent) percent 0-100 ❌ ✔ ✔ ✔ 67 Exposure select y Liveview Exposure Select: y-coordinate (percent) percent 0-100 ❌ ✔ ✔ ✔ 68 Gps status Does the camera currently have a GPS lock? boolean 0: False 1: True ✔ ✔ ✔ ✔ 69 Ap state Is the camera in AP Mode? boolean 0: False 1: True ✔ ✔ ✔ ✔ 70 Internal battery percentage Internal battery level (percent) percent 0-100 ✔ ✔ ✔ ✔ 74 Acc mic status Microphone Accesstory status integer 0: Microphone mod not connected 1: Microphone mod connected 2: Microphone mod connected and microphone plugged into Microphone mod ✔ ✔ ✔ ✔ 75 Digital zoom Digital Zoom level (percent) percent 0-100 ✔ ✔ ✔ ✔ 76 Wireless band Wireless Band integer 0: 2.4 GHz 1: 5 GHz 2: Max ✔ ✔ ✔ ✔ 77 Digital zoom active Is Digital Zoom feature available? boolean 0: False 1: True ✔ ✔ ✔ ✔ 78 Mobile friendly video Are current video settings mobile friendly? (related to video compression and frame rate) boolean 0: False 1: True ✔ ✔ ✔ ✔ 79 First time use Is the camera currently in First Time Use (FTU) UI flow? boolean 0: False 1: True ❌ ❌ ✔ ✔ 81 Band 5ghz avail Is 5GHz wireless band available? boolean 0: False 1: True ✔ ✔ ✔ ✔ 82 System ready Is the system ready to accept commands? boolean 0: False 1: True ✔ ✔ ✔ ✔ 83 Batt okay for ota Is the internal battery charged sufficiently to start Over The Air (OTA) update? boolean 0: False 1: True ✔ ✔ ✔ ✔ 85 Video low temp alert Is the camera getting too cold to continue recording? boolean 0: False 1: True ✔ ✔ ✔ ✔ 86 Actual orientation The rotational orientation of the camera integer 0: 0 degrees (upright) 1: 180 degrees (upside down) 2: 90 degrees (laying on right side) 3: 270 degrees (laying on left side) ✔ ✔ ✔ ✔ 88 Zoom while encoding Is this camera capable of zooming while encoding (static value based on model, not settings) boolean 0: False 1: True ✔ ✔ ✔ ✔ 89 Current mode Current flatmode ID integer * ✔ ✔ ✔ ✔ 93 Active video presets Current Video Preset (ID) integer * ✔ ✔ ✔ ✔ 94 Active photo presets Current Photo Preset (ID) integer * ❌ ✔ ✔ ✔ 95 Active timelapse presets Current Timelapse Preset (ID) integer * ✔ ✔ ✔ ✔ 96 Active presets group Current Preset Group (ID) integer * ✔ ✔ ✔ ✔ 97 Active preset Current Preset (ID) integer * ✔ ✔ ✔ ✔ 98 Preset modified Preset Modified Status, which contains an event ID and a preset (group) ID integer * ✔ ✔ ✔ ✔ 99 Remaining live bursts How many Live Bursts can be captured before sdcard is full integer * ❌ ✔ ✔ ✔ 100 Num total live bursts Total number of Live Bursts on sdcard integer * ❌ ✔ ✔ ✔ 101 Capture delay active Is Capture Delay currently active (i.e. counting down)? boolean 0: False 1: True ✔ ✔ ✔ ✔ 102 Media mod mic status Media mod State integer 0: Media mod microphone removed 2: Media mod microphone only 3: Media mod microphone with external microphone ✔ ✔ ✔ ✔ 103 Timewarp speed ramp active Time Warp Speed integer 0: 15x 1: 30x 2: 60x 3: 150x 4: 300x 5: 900x 6: 1800x 7: 2x 8: 5x 9: 10x 10: Auto 11: 1x (realtime) 12: 1/2x (slow-motion) ✔ ✔ ✔ ✔ 104 Linux core active Is the system's Linux core active? boolean 0: False 1: True ❌ ❌ ✔ ✔ 105 Camera lens type Camera lens type (reflects changes to setting 162) integer 0: Default 1: Max Lens ✔ ✔ ✔ ✔ 106 Video hindsight capture active Is Video Hindsight Capture Active? boolean 0: False 1: True ❌ ✔ ✔ ✔ 107 Scheduled preset Scheduled Capture Preset ID integer * ❌ ✔ ✔ ✔ 108 Scheduled enabled Is Scheduled Capture set? boolean 0: False 1: True ❌ ✔ ✔ ✔ 110 Media mod status Media Mode Status (bitmasked) integer 0: 000 = Selfie mod: 0, HDMI: 0, Media Mod Connected: False 1: 001 = Selfie mod: 0, HDMI: 0, Media Mod Connected: True 2: 010 = Selfie mod: 0, HDMI: 1, Media Mod Connected: False 3: 011 = Selfie mod: 0, HDMI: 1, Media Mod Connected: True 4: 100 = Selfie mod: 1, HDMI: 0, Media Mod Connected: False 5: 101 = Selfie mod: 1, HDMI: 0, Media Mod Connected: True 6: 110 = Selfie mod: 1, HDMI: 1, Media Mod Connected: False 7: 111 = Selfie mod: 1, HDMI: 1, Media Mod Connected: True ❌ ✔ ✔ ✔ 111 Sd rating check error Does sdcard meet specified minimum write speed? boolean 0: False 1: True ✔ ✔ ✔ ❌ 112 Sd write speed error Number of sdcard write speed errors since device booted integer * ✔ ✔ ✔ ❌ 113 Turbo transfer Is Turbo Transfer active? boolean 0: False 1: True ✔ ✔ ✔ ✔ 114 Camera control status Camera control status ID integer 0: Camera Idle: No one is attempting to change camera settings 1: Camera Control: Camera is in a menu or changing settings. To intervene, app must request control 2: Camera External Control: An outside entity (app) has control and is in a menu or modifying settings ✔ ✔ ✔ ❌ 115 Usb connected Is the camera connected to a PC via USB? boolean 0: False 1: True ✔ ✔ ✔ ❌ 116 Allow control over usb Camera control over USB state integer 0: Disabled 1: Enabled ✔ ✔ \\>= v01.30.00 ❌ 117 Total sd space kb Total SD card capacity in Kilobytes integer * ✔ ✔ ❌ ❌ Preset Status Format Preset Status is returned as JSON, whose content is the serialization of the protobuf message: NotifyPresetStatus. Using Google protobuf APIs, the JSON can be converted back into a programmatic object in the user's language of choice. Features Presets The camera organizes modes of operation into presets. A preset is a logical wrapper around a specific camera mode, title, icon, and a set of settings that enhance different styles of capturing media. Depending on the camera's state, different collections of presets will be available for immediate loading and use. Below is a table of settings that affect the current preset collection and thereby which presets can be loaded: ID Setting 162 Max Lens 173 Video Performance Mode 175 Controls 177 Enable Night Photo 180 Video Mode To determine which presets are available for immediate use, get Preset Status. Preset Status All cameras support basic query and subscription mechanics that allow the user to: Get hierarchical data describing the Preset Groups, Presets, and Settings that are available in the camera's current state Preset Status should not be confused with camera status: Preset Status contains information about current preset groups and presets Camera status contains numerous statuses about current settings and camera system state Preset Groups Each Preset Group contains an ID, whether additional presets can be added, and an array of existing Presets. Presets Each Preset contains information about its ID, associated core mode, title, icon, whether it's a user-defined preset, whether the preset has been modified from its factory-default state (for factory-default presets only) and an array of Settings associated with the Preset. Important Note: The Preset ID is required to load a Preset via the Presets: Load command. Global Behaviors In order to prevent undefined behavior between the camera and a connected app, simultaneous use of the camera and a connected app is discouraged. Best practice for synchronizing user/app control is to use the Set Camera Control Status command and corresponding Camera Control Status (CCS) camera statuses in alignment with the finite state machine below: IDLEControl Status: IdleCAMERA_CONTROLControl Status: Camera ControlEXTERNAL_CONTROLControl Status: External ControlApp sets CCS: IdleUser interacts with cameraUser returns camera to idle screenApp sets CCS: IdleApp sets CCS: External ControlApp sets CCS: IdleUser interacts with cameraUser interacts with cameraApp sets CCS: External ControlUser interacts with camera Control Status ID IDLE 0 CONTROL 1 EXTERNAL_CONTROL 2 Set Camera Control Status This command is used to tell the camera that the app (i.e. External Control) wishes to claim control of the camera. This causes the camera to immediately exit any contextual menus and return to the idle screen. Any interaction with the camera's physical buttons will cause the camera to reclaim control and update control status accordingly. If the user returns the camera UI to the idle screen, the camera updates control status to Idle. Note: The entity currently claiming control of the camera is advertised in camera status 114 Information about whether the camera is in a contextual menu or not is advertised in camera status 63. OTA Update The Over The Air (OTA) update feature allows the user to update the camera's firmware via HTTP connection. Firmware update files can be obtained from GoPro's update page or programmatically using the firmware catalog. OTA Update Flow The OTA update process involves uploading chunks (or all) of a file along with its corresponding SHA1 hash, marking the file complete and then telling the camera to begin the update process. For specific command examples, see /gp/gpSoftUpdate in Commands Quick Reference. Note: Near the end of the firmware update process, in order to complete, the camera will need to reboot 1-2 times. This will cause any existing HTTP connections to be lost. ClientClientCameraCameraObtain UPDATE.zip from update page or firmware catalogCalculate SHA1_HASH for UPDATE.zipHTTP/GET: /gp/gpSoftUpdate?request=deleteDelete any old/cached dataHTTP/200 (OK)JSON {\"status\":0,\"message\":\"OK\",\"sha1\":\"\",\"bytes_complete\":0,\"complete\":false}HTTP/GET: /gp/gpSoftUpdate?request=showuiDisplay update OSD on camera UIHTTP/200 (OK)JSON: {\"status\":0,\"message\":\"OK\",\"sha1\":\"\",\"bytes_complete\":0,\"complete\":false}loop[read CHUNK_BYTES of UPDATE.zip, starting at OFFSET]HTTP/POST: /gp/gpSoftUpdateContent-Type: multipart/form-dataData:sha1=<SHA1_HASH>offset=<OFFSET>file=<CHUNK_BYTES>HTTP/200 (OK)JSON: {\"status\": 0,\"message\": \"OK\",\"sha1\": \"SHA1_HASH\",\"bytes_complete\": (total uploaded bytes),\"complete\": false}HTTP/POST: /gp/gpSoftUpdateContent-Type: multipart/form-dataData:sha1=<SHA1_HASH>complete=trueHTTP/200 (OK)JSON: {\"status\":0,\"message\":\"OK\",\"sha1\":\"SHA1_HASH\",\"bytes_complete\":(size of UPDATE.zip),\"complete\":true}HTTP/GET: /gp/gpSoftUpdate?request=startStart updating firmwareHTTP/200 (OK)JSON: {\"status\":0,\"message\":\"OK\",\"sha1\":\"SHA1_HASH\",\"bytes_complete\":(size of UPDATE.zip),\"complete\":true}loop[while camera updates firmware]HTTP/GET: /gp/gpSoftUpdate?request=progressJSON: {\"status\":11,\"message\":\"Firmware update in progress\"}WiFi connection lostCamera displays OSD \"Update Complete\", reboots 1-2 times OTA Update Status Codes ID Status Description 0 Ok No errors occurred 1 Unknown Request Server did not recognize the request 2 Bad Params Parameter values not recognized 3 SHA1 Send Mismatch SHA1 for chunk did not match SHA1 of previous chunk(s) 4 SHA1 Calculates Mismatch Calculated SHA1 did not match user-specified SHA1 5 HTTP Boundary Error HTTP Post malformed 6 HTTP Post Error Unexpected HTTP/POST Content Type 7 Server Busy HTTP server is busy 8 Offset Mismatch Tried to upload chunk with offset that did not align with previous chunk 9 Bad Post Data Server failed to parse POST data 10 File Incomplete Tried to start update before server finished validating .zip file 11 Update in Progress Firmware update in progress 12 Insufficient Space Insufficient space on the sdcard to hold (decompressed) update file Webcam The webcam feature enables developers who are interested in writing custom drivers to make the camera broadcast its video preview with a limited set of resolution and field of view options. While active, the webcam feature runs a UDP client that sends raw Transport Stream data to the connected client on port 8554. To test basic functionality, connect the camera to your system, start the webcam, and use an application such as VLC to start a network stream on udp://@0.0.0.0:8554. For readers interested in using a GoPro camera as a webcam with preexisting tools, please see How to use GoPro as a Webcam. Webcam Finite State Machine PREREQUISITEWired USB Control disabledOFFWebcam disabledIDLEWebcam readyHPPHigh power previewLPPLow power previewConnect USBStopExitStartStopExitPreviewStopExitStartPreviewStartPreview Webcam Commands Note: Prior to issuing webcam commands, Wired USB Control must be disabled. For details about how to send this and webcam commands, see Commands Quick Reference. Command Connections Description Webcam: Start USB Enters webcam mode, uses default resolution and last-used fov, starts high-res stream to the IP address of caller Webcam: Start (with args) USB Enters webcam mode, uses specified resolution and/or fov, starts streaming to the IP address of caller Webcam: Preview USB Enters webcam mode, sets stream resolution and bitrate, starts low-res stream to the IP address of caller. Can set Webcam Digital Lenses and Digital Zoom levels while streaming Webcam: Stop USB Stops the webcam stream Webcam: Exit USB Stops the webcam stream and exits webcam mode Webcam: Status USB Returns the current state of the webcam endpoint, including status and error codes (see tables below) Webcam: Version USB Provides version information about webcam implementation in JSON format Status Codes Status Code OFF 0 IDLE 1 HIGH_POWER_PREVIEW 2 LOW_POWER_PREVIEW 3 Error Codes Status Code NONE 0 SET_PRESET 1 SET_WINDOW_SIZE 2 EXEC_STREAM 3 SHUTTER 4 COM_TIMEOUT 5 INVALID_PARAM 6 UNAVAILABLE 7 EXIT 8 Webcam Settings Aside from basic settings such as Resolution and FOV, the camera may support other settings such as Hypersmooth. In order to change these settings independently, the webcam must be in IDLE state. Note: There is a known issue on some cameras in which the webcam state will be wrongly reported as IDLE after a new USB connection. The best workaround for this is to call Webcam: Start followed by the Webcam: Stop after connecting USB in order to attain the true IDLE state. Resolutions Note: If resolution is not set, 1080p will be used by default ID Resolution HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 4 480 ❌ ✔ ✔ ✔ 7 720 ❌ ✔ ✔ ✔ 12 1080 ❌ ✔ ✔ ✔ Digital Lenses / FOV Note: If fov is not set, camera will default to the last-set fov or Wide if fov has never been set. ID FOV HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black 0 WIDE ❌ ✔ ✔ ✔ 2 NARROW ❌ ✔ ✔ ✔ 3 SUPERVIEW ❌ ✔ ✔ ✔ 4 LINEAR ❌ ✔ ✔ ✔ Limitations HERO11 Black Mini The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings HTTP command arguments must be given in the order outlined in Commands Quick Reference HERO11 Black The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings HTTP command arguments must be given in the order outlined in Commands Quick Reference HERO10 Black The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user cannot change settings HTTP command arguments must be given in the order outlined in Commands Quick Reference HERO9 Black The HTTP server is not available while the camera is encoding, which means shutter controls are not supported over WiFi. This limitation can be overcome by using Bluetooth Low Energy for command and control and HTTP/REST for querying media content such as media list, media info, preview stream, etc. USB command and control is not supported on HERO9 Black. HTTP command arguments must be given in the order outlined in Commands Quick Reference General Unless changed by the user, GoPro cameras will automatically power off after some time (e.g. 5min, 15min, 30min). The Auto Power Down watchdog timer can be reset by sending periodic keep-alive messages to the camera. It is recommended to send a keep-alive at least once every 120 seconds. In general, querying the value for a setting that is not associated with the current preset/core mode results in an undefined value. For example, the user should not try to query the current Photo Digital Lenses (FOV) value while in Standard preset (Video mode).", "categories": [], "tags": [], "url": "/OpenGoPro/http_2_0#" @@ -218,7 +218,7 @@ var store = [ }, { "title": "Protocol Documentation: EnumScanEntryFlags", - "excerpt": "| Name | Number | Description | | ---- | ------ | ----------- | | SCAN_FLAG_OPEN | 0 | | | SCAN_FLAG_AUTHENTICATED | 1 | | | SCAN_FLAG_CONFIGURED | 2 | This network has been previous provisioned | | SCAN_FLAG_BEST_SSID | 4 | | | SCAN_FLAG_ASSOCIATED | 8 | | | SCAN_FLAG_UNSUPPORTED_TYPE | 16 | | | DEPRECATED | 32 | |", + "excerpt": "| Name | Number | Description | | ---- | ------ | ----------- | | SCAN_FLAG_OPEN | 0 | This network does not require authentication | | SCAN_FLAG_AUTHENTICATED | 1 | This network requires authentication | | SCAN_FLAG_CONFIGURED | 2 | This network has been previously provisioned | | SCAN_FLAG_BEST_SSID | 4 | | | SCAN_FLAG_ASSOCIATED | 8 | camera is connected to this AP | | SCAN_FLAG_UNSUPPORTED_TYPE | 16 | | | DEPRECATED | 32 | |", "categories": [], "tags": [], "url": "/OpenGoPro/protos#enumscanentryflags" @@ -288,14 +288,14 @@ var store = [ }, { "title": "Protocol Documentation: EnumPresetIcon", - "excerpt": "| Name | Number | Description | | ---- | ------ | ----------- | | PRESET_ICON_VIDEO | 0 | | | PRESET_ICON_ACTIVITY | 1 | | | PRESET_ICON_CINEMATIC | 2 | | | PRESET_ICON_PHOTO | 3 | | | PRESET_ICON_LIVE_BURST | 4 | | | PRESET_ICON_BURST | 5 | | | PRESET_ICON_PHOTO_NIGHT | 6 | | | PRESET_ICON_TIMEWARP | 7 | | | PRESET_ICON_TIMELAPSE | 8 | | | PRESET_ICON_NIGHTLAPSE | 9 | | | PRESET_ICON_SNAIL | 10 | | | PRESET_ICON_VIDEO_2 | 11 | | | PRESET_ICON_360_VIDEO | 12 | | | PRESET_ICON_PHOTO_2 | 13 | | | PRESET_ICON_PANORAMA | 14 | | | PRESET_ICON_BURST_2 | 15 | | | PRESET_ICON_TIMEWARP_2 | 16 | | | PRESET_ICON_TIMELAPSE_2 | 17 | | | PRESET_ICON_CUSTOM | 18 | | | PRESET_ICON_AIR | 19 | | | PRESET_ICON_BIKE | 20 | | | PRESET_ICON_EPIC | 21 | | | PRESET_ICON_INDOOR | 22 | | | PRESET_ICON_MOTOR | 23 | | | PRESET_ICON_MOUNTED | 24 | | | PRESET_ICON_OUTDOOR | 25 | | | PRESET_ICON_POV | 26 | | | PRESET_ICON_SELFIE | 27 | | | PRESET_ICON_SKATE | 28 | | | PRESET_ICON_SNOW | 29 | | | PRESET_ICON_TRAIL | 30 | | | PRESET_ICON_TRAVEL | 31 | | | PRESET_ICON_WATER | 32 | | | PRESET_ICON_LOOPING | 33 | | | PRESET_ICON_MAX_VIDEO | 55 | Reserved 34 - 50 for Custom presets | | PRESET_ICON_MAX_PHOTO | 56 | | | PRESET_ICON_MAX_TIMEWARP | 57 | | | PRESET_ICON_BASIC | 58 | | | PRESET_ICON_ULTRA_SLO_MO | 59 | | | PRESET_ICON_STANDARD_ENDURANCE | 60 | | | PRESET_ICON_ACTIVITY_ENDURANCE | 61 | | | PRESET_ICON_CINEMATIC_ENDURANCE | 62 | | | PRESET_ICON_SLOMO_ENDURANCE | 63 | | | PRESET_ICON_STATIONARY_1 | 64 | | | PRESET_ICON_STATIONARY_2 | 65 | | | PRESET_ICON_STATIONARY_3 | 66 | | | PRESET_ICON_STATIONARY_4 | 67 | | | PRESET_ICON_STAR_TRAIL | 76 | | | PRESET_ICON_LIGHT_PAINTING | 77 | | | PRESET_ICON_LIGHT_TRAIL | 78 | | | PRESET_ICON_FULL_FRAME | 79 | | | PRESET_ICON_TIMELAPSE_PHOTO | 1000 | | | PRESET_ICON_NIGHTLAPSE_PHOTO | 1001 | | | PRESET_ICON_MAX | 1002 | |", + "excerpt": "| Name | Number | Description | | ---- | ------ | ----------- | | PRESET_ICON_VIDEO | 0 | | | PRESET_ICON_ACTIVITY | 1 | | | PRESET_ICON_CINEMATIC | 2 | | | PRESET_ICON_PHOTO | 3 | | | PRESET_ICON_LIVE_BURST | 4 | | | PRESET_ICON_BURST | 5 | | | PRESET_ICON_PHOTO_NIGHT | 6 | | | PRESET_ICON_TIMEWARP | 7 | | | PRESET_ICON_TIMELAPSE | 8 | | | PRESET_ICON_NIGHTLAPSE | 9 | | | PRESET_ICON_SNAIL | 10 | | | PRESET_ICON_VIDEO_2 | 11 | | | PRESET_ICON_360_VIDEO | 12 | | | PRESET_ICON_PHOTO_2 | 13 | | | PRESET_ICON_PANORAMA | 14 | | | PRESET_ICON_BURST_2 | 15 | | | PRESET_ICON_TIMEWARP_2 | 16 | | | PRESET_ICON_TIMELAPSE_2 | 17 | | | PRESET_ICON_CUSTOM | 18 | | | PRESET_ICON_AIR | 19 | | | PRESET_ICON_BIKE | 20 | | | PRESET_ICON_EPIC | 21 | | | PRESET_ICON_INDOOR | 22 | | | PRESET_ICON_MOTOR | 23 | | | PRESET_ICON_MOUNTED | 24 | | | PRESET_ICON_OUTDOOR | 25 | | | PRESET_ICON_POV | 26 | | | PRESET_ICON_SELFIE | 27 | | | PRESET_ICON_SKATE | 28 | | | PRESET_ICON_SNOW | 29 | | | PRESET_ICON_TRAIL | 30 | | | PRESET_ICON_TRAVEL | 31 | | | PRESET_ICON_WATER | 32 | | | PRESET_ICON_LOOPING | 33 | | | PRESET_ICON_MAX_VIDEO | 55 | Reserved 34 - 50 for Custom presets | | PRESET_ICON_MAX_PHOTO | 56 | | | PRESET_ICON_MAX_TIMEWARP | 57 | | | PRESET_ICON_BASIC | 58 | | | PRESET_ICON_ULTRA_SLO_MO | 59 | | | PRESET_ICON_STANDARD_ENDURANCE | 60 | | | PRESET_ICON_ACTIVITY_ENDURANCE | 61 | | | PRESET_ICON_CINEMATIC_ENDURANCE | 62 | | | PRESET_ICON_SLOMO_ENDURANCE | 63 | | | PRESET_ICON_STATIONARY_1 | 64 | | | PRESET_ICON_STATIONARY_2 | 65 | | | PRESET_ICON_STATIONARY_3 | 66 | | | PRESET_ICON_STATIONARY_4 | 67 | | | PRESET_ICON_STAR_TRAIL | 76 | | | PRESET_ICON_LIGHT_PAINTING | 77 | | | PRESET_ICON_LIGHT_TRAIL | 78 | | | PRESET_ICON_FULL_FRAME | 79 | | | PRESET_ICON_TIMELAPSE_PHOTO | 1000 | | | PRESET_ICON_NIGHTLAPSE_PHOTO | 1001 | |", "categories": [], "tags": [], "url": "/OpenGoPro/protos#enumpreseticon" }, { "title": "Protocol Documentation: EnumPresetTitle", - "excerpt": "| Name | Number | Description | | ---- | ------ | ----------- | | PRESET_TITLE_ACTIVITY | 0 | | | PRESET_TITLE_STANDARD | 1 | | | PRESET_TITLE_CINEMATIC | 2 | | | PRESET_TITLE_PHOTO | 3 | | | PRESET_TITLE_LIVE_BURST | 4 | | | PRESET_TITLE_BURST | 5 | | | PRESET_TITLE_NIGHT | 6 | | | PRESET_TITLE_TIME_WARP | 7 | | | PRESET_TITLE_TIME_LAPSE | 8 | | | PRESET_TITLE_NIGHT_LAPSE | 9 | | | PRESET_TITLE_VIDEO | 10 | | | PRESET_TITLE_SLOMO | 11 | | | PRESET_TITLE_360_VIDEO | 12 | | | PRESET_TITLE_PHOTO_2 | 13 | | | PRESET_TITLE_PANORAMA | 14 | | | PRESET_TITLE_360_PHOTO | 15 | | | PRESET_TITLE_TIME_WARP_2 | 16 | | | PRESET_TITLE_360_TIME_WARP | 17 | | | PRESET_TITLE_CUSTOM | 18 | | | PRESET_TITLE_AIR | 19 | | | PRESET_TITLE_BIKE | 20 | | | PRESET_TITLE_EPIC | 21 | | | PRESET_TITLE_INDOOR | 22 | | | PRESET_TITLE_MOTOR | 23 | | | PRESET_TITLE_MOUNTED | 24 | | | PRESET_TITLE_OUTDOOR | 25 | | | PRESET_TITLE_POV | 26 | | | PRESET_TITLE_SELFIE | 27 | | | PRESET_TITLE_SKATE | 28 | | | PRESET_TITLE_SNOW | 29 | | | PRESET_TITLE_TRAIL | 30 | | | PRESET_TITLE_TRAVEL | 31 | | | PRESET_TITLE_WATER | 32 | | | PRESET_TITLE_LOOPING | 33 | | | PRESET_TITLE_360_TIMELAPSE | 51 | Reserved 34 - 50 for custom presets. | | PRESET_TITLE_360_NIGHT_LAPSE | 52 | | | PRESET_TITLE_360_NIGHT_PHOTO | 53 | | | PRESET_TITLE_PANO_TIME_LAPSE | 54 | | | PRESET_TITLE_MAX_VIDEO | 55 | | | PRESET_TITLE_MAX_PHOTO | 56 | | | PRESET_TITLE_MAX_TIMEWARP | 57 | | | PRESET_TITLE_BASIC | 58 | | | PRESET_TITLE_ULTRA_SLO_MO | 59 | | | PRESET_TITLE_STANDARD_ENDURANCE | 60 | | | PRESET_TITLE_ACTIVITY_ENDURANCE | 61 | | | PRESET_TITLE_CINEMATIC_ENDURANCE | 62 | | | PRESET_TITLE_SLOMO_ENDURANCE | 63 | | | PRESET_TITLE_STATIONARY_1 | 64 | | | PRESET_TITLE_STATIONARY_2 | 65 | | | PRESET_TITLE_STATIONARY_3 | 66 | | | PRESET_TITLE_STATIONARY_4 | 67 | | | PRESET_TITLE_SIMPLE_VIDEO | 68 | | | PRESET_TITLE_SIMPLE_TIME_WARP | 69 | | | PRESET_TITLE_SIMPLE_SUPER_PHOTO | 70 | | | PRESET_TITLE_SIMPLE_NIGHT_PHOTO | 71 | | | PRESET_TITLE_SIMPLE_VIDEO_ENDURANCE | 72 | | | PRESET_TITLE_HIGHEST_QUALITY | 73 | | | PRESET_TITLE_EXTENDED_BATTERY | 74 | | | PRESET_TITLE_LONGEST_BATTERY | 75 | | | PRESET_TITLE_STAR_TRAIL | 76 | | | PRESET_TITLE_LIGHT_PAINTING | 77 | | | PRESET_TITLE_LIGHT_TRAIL | 78 | | | PRESET_TITLE_FULL_FRAME | 79 | | | PRESET_TITLE_MAX_LENS_VIDEO | 80 | | | PRESET_TITLE_MAX_LENS_TIMEWARP | 81 | | | PRESET_TITLE_MAX | 82 | |", + "excerpt": "| Name | Number | Description | | ---- | ------ | ----------- | | PRESET_TITLE_ACTIVITY | 0 | | | PRESET_TITLE_STANDARD | 1 | | | PRESET_TITLE_CINEMATIC | 2 | | | PRESET_TITLE_PHOTO | 3 | | | PRESET_TITLE_LIVE_BURST | 4 | | | PRESET_TITLE_BURST | 5 | | | PRESET_TITLE_NIGHT | 6 | | | PRESET_TITLE_TIME_WARP | 7 | | | PRESET_TITLE_TIME_LAPSE | 8 | | | PRESET_TITLE_NIGHT_LAPSE | 9 | | | PRESET_TITLE_VIDEO | 10 | | | PRESET_TITLE_SLOMO | 11 | | | PRESET_TITLE_360_VIDEO | 12 | | | PRESET_TITLE_PHOTO_2 | 13 | | | PRESET_TITLE_PANORAMA | 14 | | | PRESET_TITLE_360_PHOTO | 15 | | | PRESET_TITLE_TIME_WARP_2 | 16 | | | PRESET_TITLE_360_TIME_WARP | 17 | | | PRESET_TITLE_CUSTOM | 18 | | | PRESET_TITLE_AIR | 19 | | | PRESET_TITLE_BIKE | 20 | | | PRESET_TITLE_EPIC | 21 | | | PRESET_TITLE_INDOOR | 22 | | | PRESET_TITLE_MOTOR | 23 | | | PRESET_TITLE_MOUNTED | 24 | | | PRESET_TITLE_OUTDOOR | 25 | | | PRESET_TITLE_POV | 26 | | | PRESET_TITLE_SELFIE | 27 | | | PRESET_TITLE_SKATE | 28 | | | PRESET_TITLE_SNOW | 29 | | | PRESET_TITLE_TRAIL | 30 | | | PRESET_TITLE_TRAVEL | 31 | | | PRESET_TITLE_WATER | 32 | | | PRESET_TITLE_LOOPING | 33 | | | PRESET_TITLE_360_TIMELAPSE | 51 | Reserved 34 - 50 for custom presets. | | PRESET_TITLE_360_NIGHT_LAPSE | 52 | | | PRESET_TITLE_360_NIGHT_PHOTO | 53 | | | PRESET_TITLE_PANO_TIME_LAPSE | 54 | | | PRESET_TITLE_MAX_VIDEO | 55 | | | PRESET_TITLE_MAX_PHOTO | 56 | | | PRESET_TITLE_MAX_TIMEWARP | 57 | | | PRESET_TITLE_BASIC | 58 | | | PRESET_TITLE_ULTRA_SLO_MO | 59 | | | PRESET_TITLE_STANDARD_ENDURANCE | 60 | | | PRESET_TITLE_ACTIVITY_ENDURANCE | 61 | | | PRESET_TITLE_CINEMATIC_ENDURANCE | 62 | | | PRESET_TITLE_SLOMO_ENDURANCE | 63 | | | PRESET_TITLE_STATIONARY_1 | 64 | | | PRESET_TITLE_STATIONARY_2 | 65 | | | PRESET_TITLE_STATIONARY_3 | 66 | | | PRESET_TITLE_STATIONARY_4 | 67 | | | PRESET_TITLE_SIMPLE_VIDEO | 68 | | | PRESET_TITLE_SIMPLE_TIME_WARP | 69 | | | PRESET_TITLE_SIMPLE_SUPER_PHOTO | 70 | | | PRESET_TITLE_SIMPLE_NIGHT_PHOTO | 71 | | | PRESET_TITLE_SIMPLE_VIDEO_ENDURANCE | 72 | | | PRESET_TITLE_HIGHEST_QUALITY | 73 | | | PRESET_TITLE_EXTENDED_BATTERY | 74 | | | PRESET_TITLE_LONGEST_BATTERY | 75 | | | PRESET_TITLE_STAR_TRAIL | 76 | | | PRESET_TITLE_LIGHT_PAINTING | 77 | | | PRESET_TITLE_LIGHT_TRAIL | 78 | | | PRESET_TITLE_FULL_FRAME | 79 | | | PRESET_TITLE_MAX_LENS_VIDEO | 80 | | | PRESET_TITLE_MAX_LENS_TIMEWARP | 81 | |", "categories": [], "tags": [], "url": "/OpenGoPro/protos#enumpresettitle" diff --git a/ble_2_0.html b/ble_2_0.html index f33d83e1..27755139 100644 --- a/ble_2_0.html +++ b/ble_2_0.html @@ -386,7 +386,7 @@

Bluetooth Low Energy - 46 minute read + 47 minute read @@ -1257,6 +1257,7 @@

Command Response Error Codes

Commands Quick Reference

Below is a table of commands that can be sent to the camera and how to send them.
+* Indicates that item is experimental
Indicates support for all Open GoPro firmware versions.
Indicates a lack of support for all Open GoPro firmware versions.
>= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ @@ -1333,7 +1334,7 @@

Commands Quick Reference

0x0F Set Local Date/Time - Set local date/time to: 2023-01-31 03:04:05 (utc-02:00) (dst: on) + Set local date/time to: 2023-01-31 03:04:05 (utc-02:00) (dst: on) 0C:0F:0A:07:E7:01:1F:03:04:05:FF:88:01 02:0F:00 @@ -1366,7 +1367,7 @@

Commands Quick Reference

0x17 AP Control - WiFi AP: off + Ap mode: off 03:17:01:00 02:17:00 @@ -1377,7 +1378,7 @@

Commands Quick Reference

0x17 AP Control - WiFi AP: on + Ap mode: on 03:17:01:01 02:17:00 @@ -1807,6 +1808,7 @@

Settings Response Format

Settings Quick Reference

All settings are sent to UUID GP-0074. All values are hexadecimal and length are in bytes.
+* Indicates that item is experimental
Indicates support for all Open GoPro firmware versions.
Indicates a lack of support for all Open GoPro firmware versions.
>= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ @@ -2519,6 +2521,39 @@

Settings Quick Reference

+ 167 + Hindsight* + Set hindsight (id: 167) to 15 seconds (id: 2) + 03:A7:01:02 + 02:A7:00 + + + + + + + 167 + Hindsight* + Set hindsight (id: 167) to 30 seconds (id: 3) + 03:A7:01:03 + 02:A7:00 + + + + + + + 167 + Hindsight* + Set hindsight (id: 167) to off (id: 4) + 03:A7:01:04 + 02:A7:00 + + + + + + 173 Video Performance Mode Set video performance mode (id: 173) to maximum video performance (id: 0) @@ -2529,7 +2564,7 @@

Settings Quick Reference

>= v01.16.00 - + 173 Video Performance Mode Set video performance mode (id: 173) to extended battery (id: 1) @@ -2540,7 +2575,7 @@

Settings Quick Reference

>= v01.16.00 - + 173 Video Performance Mode Set video performance mode (id: 173) to tripod / stationary video (id: 2) @@ -2551,7 +2586,7 @@

Settings Quick Reference

>= v01.16.00 - + 175 Controls Set controls (id: 175) to easy (id: 0) @@ -2562,7 +2597,7 @@

Settings Quick Reference

- + 175 Controls Set controls (id: 175) to pro (id: 1) @@ -2573,7 +2608,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 8x ultra slo-mo (id: 0) @@ -2584,7 +2619,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 4x super slo-mo (id: 1) @@ -2595,7 +2630,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 2x slo-mo (id: 2) @@ -2606,7 +2641,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 1x (low light) (id: 3) @@ -2617,7 +2652,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 4x super slo-mo (ext. batt) (id: 4) @@ -2628,7 +2663,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 2x slo-mo (ext. batt) (id: 5) @@ -2639,7 +2674,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 1x (ext. batt, low light) (id: 6) @@ -2650,7 +2685,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 8x ultra slo-mo (50hz) (id: 7) @@ -2661,7 +2696,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 4x super slo-mo (50hz) (id: 8) @@ -2672,7 +2707,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 2x slo-mo (50hz) (id: 9) @@ -2683,7 +2718,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 1x (low light, 50hz) (id: 10) @@ -2694,7 +2729,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 4x super slo-mo (ext. batt, 50hz) (id: 11) @@ -2705,7 +2740,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 2x slo-mo (ext. batt, 50hz) (id: 12) @@ -2716,7 +2751,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 1x (ext. batt, low light, 50hz) (id: 13) @@ -2727,7 +2762,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 8x ultra slo-mo (ext. batt) (id: 14) @@ -2738,7 +2773,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 8x ultra slo-mo (ext. batt, 50hz) (id: 15) @@ -2749,7 +2784,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 8x ultra slo-mo (long. batt) (id: 16) @@ -2760,7 +2795,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 4x super slo-mo (long. batt) (id: 17) @@ -2771,7 +2806,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 2x slo-mo (long. batt) (id: 18) @@ -2782,7 +2817,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 1x (long. batt, low light) (id: 19) @@ -2793,7 +2828,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 8x ultra slo-mo (long. batt, 50hz) (id: 20) @@ -2804,7 +2839,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 4x super slo-mo (long. batt, 50hz) (id: 21) @@ -2815,7 +2850,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 2x slo-mo (long. batt, 50hz) (id: 22) @@ -2826,7 +2861,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 1x (long. batt, low light, 50hz) (id: 23) @@ -2837,7 +2872,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 2x slo-mo (4k) (id: 24) @@ -2848,7 +2883,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 4x super slo-mo (2.7k) (id: 25) @@ -2859,7 +2894,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 2x slo-mo (4k, 50hz) (id: 26) @@ -2870,7 +2905,7 @@

Settings Quick Reference

- + 176 Speed Set speed (id: 176) to 4x super slo-mo (2.7k, 50hz) (id: 27) @@ -2881,7 +2916,7 @@

Settings Quick Reference

- + 177 Enable Night Photo Set enable night photo (id: 177) to off (id: 0) @@ -2892,7 +2927,7 @@

Settings Quick Reference

- + 177 Enable Night Photo Set enable night photo (id: 177) to on (id: 1) @@ -2903,7 +2938,7 @@

Settings Quick Reference

- + 178 Wireless Band Set wireless band (id: 178) to 2.4ghz (id: 0) @@ -2914,7 +2949,7 @@

Settings Quick Reference

- + 178 Wireless Band Set wireless band (id: 178) to 5ghz (id: 1) @@ -2925,7 +2960,7 @@

Settings Quick Reference

- + 179 Trail Length Set trail length (id: 179) to short (id: 1) @@ -2936,7 +2971,7 @@

Settings Quick Reference

- + 179 Trail Length Set trail length (id: 179) to long (id: 2) @@ -2947,7 +2982,7 @@

Settings Quick Reference

- + 179 Trail Length Set trail length (id: 179) to max (id: 3) @@ -2958,7 +2993,7 @@

Settings Quick Reference

- + 180 Video Mode Set video mode (id: 180) to highest quality (id: 0) @@ -2969,7 +3004,7 @@

Settings Quick Reference

- + 180 Video Mode Set video mode (id: 180) to extended battery (id: 1) @@ -2980,7 +3015,7 @@

Settings Quick Reference

- + 180 Video Mode Set video mode (id: 180) to extended battery (green icon) (id: 101) @@ -2991,7 +3026,7 @@

Settings Quick Reference

- + 180 Video Mode Set video mode (id: 180) to longest battery (green icon) (id: 102) @@ -3069,10 +3104,13 @@

Capability Documents

Release - + capabilities.xlsx
capabilities.json - HERO11 Black Mini + HERO11 Black Mini + v02.30.00 + + v02.20.00 @@ -3393,6 +3431,7 @@

Query ID in Notifications

Status IDs

Below is a table of supported status IDs.
+* Indicates that item is experimental
Indicates support for all Open GoPro firmware versions.
Indicates a lack of support for all Open GoPro firmware versions.
>= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ @@ -3918,7 +3957,7 @@

Status IDs

69 Ap state - Is the WiFi radio enabled? + Is the camera in AP Mode? boolean 0: False
1: True
@@ -4361,7 +4400,7 @@

Status IDs

117 Total sd space kb - Total SD card capacity in kilobytes + Total SD card capacity in Kilobytes integer * @@ -4481,6 +4520,7 @@

Protobuf IDs

Protobuf Commands

Below is a table of protobuf commands that can be sent to the camera and their expected response.
+* Indicates that item is experimental
Indicates support for all Open GoPro firmware versions.
Indicates a lack of support for all Open GoPro firmware versions.
>= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ diff --git a/contribution.html b/contribution.html index c7e8f3ed..f637a687 100644 --- a/contribution.html +++ b/contribution.html @@ -520,10 +520,10 @@

Quiz

%} -
+
-
What is the question?
-
+
What is the question?
+

@@ -536,10 +536,10 @@

Quiz

- - @@ -555,10 +555,10 @@

Quiz

%}
-
+
-
True or False?
-
+
True or False?
+

@@ -568,10 +568,10 @@

Quiz

- - @@ -594,7 +594,7 @@

Tabs

-
    +
    • tab1 @@ -609,7 +609,7 @@

      Tabs

    -
      +
      • This is the content of the first tab.

        diff --git a/demos/bash/ota_update.html b/demos/bash/ota_update.html index aaf7ada3..f1bb7a4a 100644 --- a/demos/bash/ota_update.html +++ b/demos/bash/ota_update.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -491,7 +491,7 @@

        Testing

        -

        Updated:

        +

        Updated:

        diff --git a/demos/c_c++/GoProC_C++Demo.html b/demos/c_c++/GoProC_C++Demo.html index 9f29526c..814f877e 100644 --- a/demos/c_c++/GoProC_C++Demo.html +++ b/demos/c_c++/GoProC_C++Demo.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -603,7 +603,7 @@

        Stream Commands

        -

        Updated:

        +

        Updated:

        diff --git a/demos/c_c++/GoProStreamDemo.html b/demos/c_c++/GoProStreamDemo.html index 7b748af8..9e02ab6f 100644 --- a/demos/c_c++/GoProStreamDemo.html +++ b/demos/c_c++/GoProStreamDemo.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -406,7 +406,7 @@

        GoPro Low Latency St -

        Updated:

        +

        Updated:

        diff --git a/demos/csharp/GoProCSharpSample.html b/demos/csharp/GoProCSharpSample.html index 21368fb6..fdd7a590 100644 --- a/demos/csharp/GoProCSharpSample.html +++ b/demos/csharp/GoProCSharpSample.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -435,7 +435,7 @@

        Usage

        -

        Updated:

        +

        Updated:

        diff --git a/demos/csharp/webcam.html b/demos/csharp/webcam.html index 1e73fb7b..12fcf9f6 100644 --- a/demos/csharp/webcam.html +++ b/demos/csharp/webcam.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -440,7 +440,7 @@

        Usage

        -

        Updated:

        +

        Updated:

        diff --git a/demos/python/multi_webcam.html b/demos/python/multi_webcam.html index 6b619c2e..4a5a669a 100644 --- a/demos/python/multi_webcam.html +++ b/demos/python/multi_webcam.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -554,7 +554,7 @@

        Module Usage

        -

        Updated:

        +

        Updated:

        diff --git a/demos/python/sdk_wireless_camera_control.html b/demos/python/sdk_wireless_camera_control.html index 9d6678c3..c6544ffb 100644 --- a/demos/python/sdk_wireless_camera_control.html +++ b/demos/python/sdk_wireless_camera_control.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -575,7 +575,7 @@

        GUI Demos

        -

        Updated:

        +

        Updated:

        diff --git a/demos/swift/EnableWiFiDemo.html b/demos/swift/EnableWiFiDemo.html index 4093db5d..164fdbbe 100644 --- a/demos/swift/EnableWiFiDemo.html +++ b/demos/swift/EnableWiFiDemo.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -445,7 +445,7 @@

        Views

        -

        Updated:

        +

        Updated:

        diff --git a/feed.xml b/feed.xml index c3d0426a..bd004065 100644 --- a/feed.xml +++ b/feed.xml @@ -1 +1 @@ -Jekyll2023-05-19T23:23:50+00:00https://gopro.github.io/OpenGoPro/feed.xmlOpen GoProOpen Source GoPro InterfaceGoPro \ No newline at end of file +Jekyll2023-06-12T20:48:57+00:00https://gopro.github.io/OpenGoPro/feed.xmlOpen GoProOpen Source GoPro InterfaceGoPro \ No newline at end of file diff --git a/http_2_0.html b/http_2_0.html index eca0abce..0e6f07a9 100644 --- a/http_2_0.html +++ b/http_2_0.html @@ -600,7 +600,7 @@

        WiFi

        Connection to the camera via WiFi requires that the camera's WiFi Access Point be enabled. This can be done by connecting to the camera via Bluetooth Low Energy (BLE) -and sending the AP Control command: WIFI AP ON. +and sending a command to enable AP Mode.

        USB

        @@ -619,13 +619,13 @@

        Authentication

        WiFi

        -Once the WiFi Access Point has been turned on, authentication with the camera simply requries connecting with the +Once the WiFi Access Point has been turned on, authentication with the camera simply requires connecting with the correct SSID and password. This information can be obtained in two ways:

        • Put the camera into pairing mode and tap the info button in the top-right corner of the screen.
        • -
        • Read the SSID/password directly via Bluetooth Low Energy. See Services and Characteristics seciton in BLE Specification for details.
        • +
        • Read the SSID/password directly via Bluetooth Low Energy. See Services and Characteristics section in BLE Specification for details.
        @@ -786,6 +786,7 @@

        Commands

        Commands Quick Reference

        Below is a table of commands that can be sent to the camera and how to send them.
        +* Indicates that item is experimental
        Indicates support for all Open GoPro firmware versions.
        Indicates a lack of support for all Open GoPro firmware versions.
        >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ @@ -1053,56 +1054,6 @@

        Commands Quick Reference

        - - OTA Update - Ota update: show canceled/failed ui on the camera - GET - /gp/gpSoftUpdate?request=canceled - - - - - - - OTA Update - Ota update: delete cached update files - GET - /gp/gpSoftUpdate?request=delete - - - - - - - OTA Update - Ota update: get current update state - GET - /gp/gpSoftUpdate?request=progress - - - - - - - OTA Update - Ota update: display update ui on camera - GET - /gp/gpSoftUpdate?request=showui - - - - - - - OTA Update - Ota update: initiate firmware update - GET - /gp/gpSoftUpdate?request=start - - - - - Open GoPro Get version @@ -1195,7 +1146,7 @@

        Commands Quick Reference

        Set Local Date/Time - Set local date/time to: 2023-01-31 03:04:05 (utc-02:00) (dst: on) + Set local date/time to: 2023-01-31 03:04:05 (utc-02:00) (dst: on) GET /gopro/camera/set_date_time?date=2023_1_31&time=3_4_5&tzone=-120&dst=1 @@ -1224,6 +1175,56 @@

        Commands Quick Reference

        + Soft Update + Soft update: show canceled/failed ui on the camera + GET + /gp/gpSoftUpdate?request=canceled + + + + + + + Soft Update + Soft update: delete cached update files + GET + /gp/gpSoftUpdate?request=delete + + + + + + + Soft Update + Soft update: get current update state + GET + /gp/gpSoftUpdate?request=progress + + + + + + + Soft Update + Soft update: display update ui on camera + GET + /gp/gpSoftUpdate?request=showui + + + + + + + Soft Update + Soft update: initiate firmware update + GET + /gp/gpSoftUpdate?request=start + + + + + + Stream: Start Start preview stream GET @@ -1233,7 +1234,7 @@

        Commands Quick Reference

        - + Stream: Stop Stop preview stream GET @@ -1243,7 +1244,7 @@

        Commands Quick Reference

        - + Webcam: Exit Exit webcam mode GET @@ -1253,7 +1254,7 @@

        Commands Quick Reference

        - + Webcam: Preview Start preview stream GET @@ -1263,7 +1264,7 @@

        Commands Quick Reference

        - + Webcam: Start Start webcam GET @@ -1273,7 +1274,7 @@

        Commands Quick Reference

        >= v01.40.00 - + Webcam: Start Start webcam GET @@ -1283,7 +1284,7 @@

        Commands Quick Reference

        - + Webcam: Start Start webcam (res: resolution_1080, fov: wide) GET @@ -1293,7 +1294,7 @@

        Commands Quick Reference

        - + Webcam: Status Get webcam status GET @@ -1303,7 +1304,7 @@

        Commands Quick Reference

        - + Webcam: Stop Stop webcam GET @@ -1313,7 +1314,7 @@

        Commands Quick Reference

        - + Webcam: Version Get webcam api version GET @@ -1323,7 +1324,7 @@

        Commands Quick Reference

        - + Wired USB Control Disable wired usb control GET @@ -1333,7 +1334,7 @@

        Commands Quick Reference

        >= v01.30.00 - + Wired USB Control Enable wired usb control GET @@ -1357,6 +1358,7 @@

        Settings

        Settings Quick Reference

        Below is a table of setting options detailing how to set every option supported by Open GoPro cameras.
        +* Indicates that item is experimental
        Indicates support for all Open GoPro firmware versions.
        Indicates a lack of support for all Open GoPro firmware versions.
        >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ @@ -2113,6 +2115,39 @@

        Settings Quick Reference

        + 167 + Hindsight* + Set hindsight (id: 167) to 15 seconds (id: 2) + GET + /gopro/camera/setting?setting=167&option=2 + + + + + + + 167 + Hindsight* + Set hindsight (id: 167) to 30 seconds (id: 3) + GET + /gopro/camera/setting?setting=167&option=3 + + + + + + + 167 + Hindsight* + Set hindsight (id: 167) to off (id: 4) + GET + /gopro/camera/setting?setting=167&option=4 + + + + + + 173 Video Performance Mode Set video performance mode (id: 173) to maximum video performance (id: 0) @@ -2123,7 +2158,7 @@

        Settings Quick Reference

        >= v01.16.00 - + 173 Video Performance Mode Set video performance mode (id: 173) to extended battery (id: 1) @@ -2134,7 +2169,7 @@

        Settings Quick Reference

        >= v01.16.00 - + 173 Video Performance Mode Set video performance mode (id: 173) to tripod / stationary video (id: 2) @@ -2145,7 +2180,7 @@

        Settings Quick Reference

        >= v01.16.00 - + 175 Controls Set controls (id: 175) to easy (id: 0) @@ -2156,7 +2191,7 @@

        Settings Quick Reference

        - + 175 Controls Set controls (id: 175) to pro (id: 1) @@ -2167,7 +2202,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 8x ultra slo-mo (id: 0) @@ -2178,7 +2213,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 4x super slo-mo (id: 1) @@ -2189,7 +2224,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 2x slo-mo (id: 2) @@ -2200,7 +2235,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 1x (low light) (id: 3) @@ -2211,7 +2246,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 4x super slo-mo (ext. batt) (id: 4) @@ -2222,7 +2257,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 2x slo-mo (ext. batt) (id: 5) @@ -2233,7 +2268,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 1x (ext. batt, low light) (id: 6) @@ -2244,7 +2279,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 8x ultra slo-mo (50hz) (id: 7) @@ -2255,7 +2290,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 4x super slo-mo (50hz) (id: 8) @@ -2266,7 +2301,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 2x slo-mo (50hz) (id: 9) @@ -2277,7 +2312,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 1x (low light, 50hz) (id: 10) @@ -2288,7 +2323,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 4x super slo-mo (ext. batt, 50hz) (id: 11) @@ -2299,7 +2334,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 2x slo-mo (ext. batt, 50hz) (id: 12) @@ -2310,7 +2345,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 1x (ext. batt, low light, 50hz) (id: 13) @@ -2321,7 +2356,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 8x ultra slo-mo (ext. batt) (id: 14) @@ -2332,7 +2367,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 8x ultra slo-mo (ext. batt, 50hz) (id: 15) @@ -2343,7 +2378,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 8x ultra slo-mo (long. batt) (id: 16) @@ -2354,7 +2389,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 4x super slo-mo (long. batt) (id: 17) @@ -2365,7 +2400,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 2x slo-mo (long. batt) (id: 18) @@ -2376,7 +2411,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 1x (long. batt, low light) (id: 19) @@ -2387,7 +2422,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 8x ultra slo-mo (long. batt, 50hz) (id: 20) @@ -2398,7 +2433,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 4x super slo-mo (long. batt, 50hz) (id: 21) @@ -2409,7 +2444,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 2x slo-mo (long. batt, 50hz) (id: 22) @@ -2420,7 +2455,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 1x (long. batt, low light, 50hz) (id: 23) @@ -2431,7 +2466,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 2x slo-mo (4k) (id: 24) @@ -2442,7 +2477,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 4x super slo-mo (2.7k) (id: 25) @@ -2453,7 +2488,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 2x slo-mo (4k, 50hz) (id: 26) @@ -2464,7 +2499,7 @@

        Settings Quick Reference

        - + 176 Speed Set speed (id: 176) to 4x super slo-mo (2.7k, 50hz) (id: 27) @@ -2475,7 +2510,7 @@

        Settings Quick Reference

        - + 177 Enable Night Photo Set enable night photo (id: 177) to off (id: 0) @@ -2486,7 +2521,7 @@

        Settings Quick Reference

        - + 177 Enable Night Photo Set enable night photo (id: 177) to on (id: 1) @@ -2497,7 +2532,7 @@

        Settings Quick Reference

        - + 178 Wireless Band Set wireless band (id: 178) to 2.4ghz (id: 0) @@ -2508,7 +2543,7 @@

        Settings Quick Reference

        - + 178 Wireless Band Set wireless band (id: 178) to 5ghz (id: 1) @@ -2519,7 +2554,7 @@

        Settings Quick Reference

        - + 179 Trail Length Set trail length (id: 179) to short (id: 1) @@ -2530,7 +2565,7 @@

        Settings Quick Reference

        - + 179 Trail Length Set trail length (id: 179) to long (id: 2) @@ -2541,7 +2576,7 @@

        Settings Quick Reference

        - + 179 Trail Length Set trail length (id: 179) to max (id: 3) @@ -2552,7 +2587,7 @@

        Settings Quick Reference

        - + 180 Video Mode Set video mode (id: 180) to highest quality (id: 0) @@ -2563,7 +2598,7 @@

        Settings Quick Reference

        - + 180 Video Mode Set video mode (id: 180) to extended battery (id: 1) @@ -2574,7 +2609,7 @@

        Settings Quick Reference

        - + 180 Video Mode Set video mode (id: 180) to extended battery (green icon) (id: 101) @@ -2585,7 +2620,7 @@

        Settings Quick Reference

        - + 180 Video Mode Set video mode (id: 180) to longest battery (green icon) (id: 102) @@ -2663,10 +2698,13 @@

        Capability Documents

        Release - + capabilities.xlsx
        capabilities.json - HERO11 Black Mini + HERO11 Black Mini + v02.30.00 + + v02.20.00 @@ -3082,10 +3120,8 @@

        Turbo Transfer

        Downloading Preview Stream

        -When the preview stream is started, the camera starts up a UDP client and begins writing MPEG Transport Stream -data to the connected client on port 8554. -In order to stream and save this data, the user can implement a UDP server that binds to the same port and appends -datagrams to a file when they are received. +When the preview stream is started, the camera starts up a UDP client and begins writing MPEG Transport Stream data to the client on port 8554. +In order to stream this data, the client must implement a UDP connection that binds to the same port and decode the data.

        Camera State

        @@ -3131,6 +3167,7 @@

        Camera State Format

        Status IDs

        Below is a table of supported status IDs.
        +* Indicates that item is experimental
        Indicates support for all Open GoPro firmware versions.
        Indicates a lack of support for all Open GoPro firmware versions.
        >= vXX.YY.ZZ indicates support for firmware versions equal to or newer than vXX.YY.ZZ @@ -3657,7 +3694,7 @@

        Status IDs

        69 Ap state - Is the WiFi radio enabled? + Is the camera in AP Mode? boolean 0: False
        1: True
        @@ -4100,7 +4137,7 @@

        Status IDs

        117 Total sd space kb - Total SD card capacity in kilobytes + Total SD card capacity in Kilobytes integer * @@ -4273,7 +4310,7 @@

        OTA Update Flow

        Note: Near the end of the firmware update process, in order to complete, the camera will need to reboot 1-2 times. This will cause any existing HTTP connections to be lost.

        -ClientClientCameraCameraObtain UPDATE.zip from update page or firmware catalogCalculate SHA1_HASH for UPDATE.zipHTTP/GET: /gp/gpSoftUpdate?request=deleteDelete any old/cached dataHTTP/200 (OK)JSON {"status":0,"message":"OK","sha1":"","bytes_complete":0,"complete":false}HTTP/GET: /gp/gpSoftUpdate?request=showuiDisplay update OSD on camera UIHTTP/200 (OK)JSON: {"status":0,"message":"OK","sha1":"","bytes_complete":0,"complete":false}loop[read CHUNK of UPDATE.zip, starting at OFFSET]HTTP/POST: /gp/gpSoftUpdateContent-Type: multipart/form-datadata={"sha1": "SHA1_HASH", "offset": OFFSET, file: @CHUNK}HTTP/200 (OK)JSON: {"status": 0,"message": "OK","sha1": "SHA1_HASH","bytes_complete": (total uploaded bytes),"complete": false}HTTP/POST: /gp/gpSoftUpdateContent-Type: multipart/form-datadata={"sha1": "SHA1_HASH", "complete": true}HTTP/200 (OK)JSON: {"status":0,"message":"OK","sha1":"SHA1_HASH","bytes_complete":(size of UPDATE.zip),"complete":true}HTTP/GET: /gp/gpSoftUpdate?request=startStart updating firmwareHTTP/200 (OK)JSON: {"status":0,"message":"OK","sha1":"SHA1_HASH","bytes_complete":(size of UPDATE.zip),"complete":true}loop[while camera updates firmware]HTTP/GET: /gp/gpSoftUpdate?request=progressJSON: {"status":11,"message":"Firmware update in progress"}WiFi connection lostCamera displays OSD "Update Complete", reboots 1-2 times +ClientClientCameraCameraObtain UPDATE.zip from update page or firmware catalogCalculate SHA1_HASH for UPDATE.zipHTTP/GET: /gp/gpSoftUpdate?request=deleteDelete any old/cached dataHTTP/200 (OK)JSON {"status":0,"message":"OK","sha1":"","bytes_complete":0,"complete":false}HTTP/GET: /gp/gpSoftUpdate?request=showuiDisplay update OSD on camera UIHTTP/200 (OK)JSON: {"status":0,"message":"OK","sha1":"","bytes_complete":0,"complete":false}loop[read CHUNK_BYTES of UPDATE.zip, starting at OFFSET]HTTP/POST: /gp/gpSoftUpdateContent-Type: multipart/form-dataData:sha1=<SHA1_HASH>offset=<OFFSET>file=<CHUNK_BYTES>HTTP/200 (OK)JSON: {"status": 0,"message": "OK","sha1": "SHA1_HASH","bytes_complete": (total uploaded bytes),"complete": false}HTTP/POST: /gp/gpSoftUpdateContent-Type: multipart/form-dataData:sha1=<SHA1_HASH>complete=trueHTTP/200 (OK)JSON: {"status":0,"message":"OK","sha1":"SHA1_HASH","bytes_complete":(size of UPDATE.zip),"complete":true}HTTP/GET: /gp/gpSoftUpdate?request=startStart updating firmwareHTTP/200 (OK)JSON: {"status":0,"message":"OK","sha1":"SHA1_HASH","bytes_complete":(size of UPDATE.zip),"complete":true}loop[while camera updates firmware]HTTP/GET: /gp/gpSoftUpdate?request=progressJSON: {"status":11,"message":"Firmware update in progress"}WiFi connection lostCamera displays OSD "Update Complete", reboots 1-2 times

        OTA Update Status Codes

        diff --git a/protos.html b/protos.html index 52761684..0978b2db 100644 --- a/protos.html +++ b/protos.html @@ -1466,17 +1466,17 @@

        EnumScanEntryFlags

        - + - + - + @@ -1486,7 +1486,7 @@

        EnumScanEntryFlags

        - + @@ -2240,11 +2240,6 @@

        EnumPresetIcon

        - - - - -
        SCAN_FLAG_OPEN 0 This network does not require authentication
        SCAN_FLAG_AUTHENTICATED 1 This network requires authentication
        SCAN_FLAG_CONFIGURED 2This network has been previous provisionedThis network has been previously provisioned
        SCAN_FLAG_BEST_SSID
        SCAN_FLAG_ASSOCIATED 8 camera is connected to this AP
        SCAN_FLAG_UNSUPPORTED_TYPE 1001  
        PRESET_ICON_MAX1002 
        @@ -2586,11 +2581,6 @@

        EnumPresetTitle

        81   - - PRESET_TITLE_MAX - 82 -   - diff --git a/sitemap.xml b/sitemap.xml index 1f97c7de..ff6f4cd5 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,63 +2,63 @@ https://gopro.github.io/OpenGoPro/demos/bash/ota_update -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/demos/c_c++/GoProC_C++Demo -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/demos/c_c++/GoProStreamDemo -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/demos/csharp/GoProCSharpSample -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/demos/csharp/webcam -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/demos/python/multi_webcam -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/demos/python/sdk_wireless_camera_control -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/demos/swift/EnableWiFiDemo -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/tutorials/connect-ble -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/tutorials/send-ble-commands -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/tutorials/parse-ble-responses -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/tutorials/ble-queries -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/tutorials/connect-wifi -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/tutorials/send-wifi-commands -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/tutorials/camera-media-list -2023-05-19T23:23:50+00:00 +2023-06-12T20:48:57+00:00 https://gopro.github.io/OpenGoPro/ble_2_0 diff --git a/specs/capabilities.json b/specs/capabilities.json index da7dffb9..1a8e2ed1 100644 --- a/specs/capabilities.json +++ b/specs/capabilities.json @@ -1,5 +1,6921 @@ { "HERO11 Black Mini": { + "v02.30.00": { + "states": [ + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear + Horizon Lock", + "option_id": 10 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "30", + "option_id": 8 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "60", + "option_id": 5 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "120", + "option_id": 1 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "200", + "option_id": 13 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "200", + "option_id": 13 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "200", + "option_id": 13 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "200", + "option_id": 13 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "200", + "option_id": 13 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "1080", + "option_id": 9 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "240", + "option_id": 0 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "60", + "option_id": 5 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "120", + "option_id": 1 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "200", + "option_id": 13 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "200", + "option_id": 13 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "200", + "option_id": 13 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "200", + "option_id": 13 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "200", + "option_id": 13 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K", + "option_id": 4 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "240", + "option_id": 0 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K 4:3", + "option_id": 6 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K 4:3", + "option_id": 6 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K 4:3", + "option_id": 6 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K 4:3", + "option_id": 6 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K 4:3", + "option_id": 6 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K 4:3", + "option_id": 6 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "60", + "option_id": 5 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K 4:3", + "option_id": 6 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K 4:3", + "option_id": 6 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K 4:3", + "option_id": 6 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K 4:3", + "option_id": 6 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K 4:3", + "option_id": 6 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "2.7K 4:3", + "option_id": 6 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "120", + "option_id": 1 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "60", + "option_id": 5 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "100", + "option_id": 2 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K", + "option_id": 1 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "120", + "option_id": 1 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear + Horizon Lock", + "option_id": 10 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "30", + "option_id": 8 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 4:3", + "option_id": 18 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "60", + "option_id": 5 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 8:7", + "option_id": 28 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 8:7", + "option_id": 28 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 8:7", + "option_id": 28 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "4K 8:7", + "option_id": 28 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "60", + "option_id": 5 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Superview", + "option_id": 3 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "HyperView", + "option_id": 9 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "HyperView", + "option_id": 9 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "HyperView", + "option_id": 9 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "HyperView", + "option_id": 9 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "HyperView", + "option_id": 9 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "HyperView", + "option_id": 9 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "HyperView", + "option_id": 9 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "HyperView", + "option_id": 9 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear + Horizon Lock", + "option_id": 10 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "30", + "option_id": 8 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "50", + "option_id": 6 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K", + "option_id": 100 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "60", + "option_id": 5 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear", + "option_id": 4 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Linear + Horizon Lock", + "option_id": 10 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Boost", + "option_id": 3 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Auto Boost", + "option_id": 4 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "25", + "option_id": 9 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 4:3", + "option_id": 27 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "30", + "option_id": 8 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 8:7", + "option_id": 26 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 8:7", + "option_id": 26 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 8:7", + "option_id": 26 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 8:7", + "option_id": 26 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "24", + "option_id": 10 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "60Hz", + "option_id": 2 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "On", + "option_id": 1 + } + ], + [ + { + "setting_name": "Resolution", + "setting_id": 2, + "option_name": "5.3K 8:7", + "option_id": 26 + }, + { + "setting_name": "Frames Per Second", + "setting_id": 3, + "option_name": "30", + "option_id": 8 + }, + { + "setting_name": "Video Digital Lenses", + "setting_id": 121, + "option_name": "Wide", + "option_id": 0 + }, + { + "setting_name": "Anti-Flicker", + "setting_id": 134, + "option_name": "50Hz", + "option_id": 3 + }, + { + "setting_name": "Hypersmooth", + "setting_id": 135, + "option_name": "Off", + "option_id": 0 + } + ] + ] + }, "v02.20.00": { "states": [ [ diff --git a/specs/capabilities.xlsx b/specs/capabilities.xlsx index 1a7405f1..bccb273c 100644 --- a/specs/capabilities.xlsx +++ b/specs/capabilities.xlsx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ea8d3c399f65348e12f3263a08b3a060ea3f62d1e67e0766143ea686eed97be6 -size 90640 +oid sha256:88adc7da4c35ecf3ffd980c5cd37a767f4e72495613e66226b98f520c818d0dd +size 95440 diff --git a/tutorials/ble-queries.html b/tutorials/ble-queries.html index e8f7d8f9..93c2f98d 100644 --- a/tutorials/ble-queries.html +++ b/tutorials/ble-queries.html @@ -34,7 +34,7 @@ - + @@ -410,7 +410,7 @@

        GoPro

        - +
        @@ -500,7 +500,7 @@

        Requirements

        Just Show me the Demo(s)!!

        -
          +
          • python @@ -511,7 +511,7 @@

            Just Show me the Demo(s)!!

          -
            +
            • Each of the scripts for this tutorial can be found in the Tutorial 2 @@ -634,7 +634,7 @@

              Setup

              characteristic. Throughout this tutorial, the query information that we will be reading is the Resolution Setting (ID 0x02).

              -
                + -
                  +
                  • Therefore, we have slightly changed the notification handler to update a global resolution variable as it @@ -773,7 +773,7 @@

                    Individual Query Poll

                    First we send the query command:

                    -
                      +
                      • python @@ -784,7 +784,7 @@

                        Individual Query Poll

                      -
                        +
                        • The sample code can be found in in ble_query_poll_resolution_value.py. @@ -814,7 +814,7 @@

                          Individual Query Poll

                          When the response is received in / from the notification handler, we update the global resolution variable:

                          -
                            +
                            • python @@ -825,7 +825,7 @@

                              Individual Query Poll

                            -
                              +
                              • def notification_handler(handle: int, data: bytes) -> None:
                                @@ -878,7 +878,7 @@ 

                                Individual Query Poll

                                has changed:

                                -
                                  +
                                  • python @@ -889,7 +889,7 @@

                                    Individual Query Poll

                                  -
                                    +
                                    • INFO:root:Changing the resolution to Resolution.RES_2_7K...
                                      @@ -945,7 +945,7 @@ 

                                      Multiple Simultaneous Query Polls

                                      The query command now includes 3 settings: Resolution, FPS, and FOV.

                                      -
                                        +
                                        • python @@ -956,7 +956,7 @@

                                          Multiple Simultaneous Query Polls

                                        -
                                          +
                                          • RESOLUTION_ID = 2
                                            @@ -981,7 +981,7 @@ 

                                            Multiple Simultaneous Query Polls

                                            We are also parsing the response to get all 3 values:

                                            -
                                              +
                                              • python @@ -992,7 +992,7 @@

                                                Multiple Simultaneous Query Polls

                                              -
                                                +
                                                • def notification_handler(handle: int, data: bytes) -> None:
                                                  @@ -1024,7 +1024,7 @@ 

                                                  Multiple Simultaneous Query Polls

                                                  They are then printed to the log which will look like the following:

                                                  -
                                                    +
                                                    • python @@ -1035,7 +1035,7 @@

                                                      Multiple Simultaneous Query Polls

                                                    -
                                                      +
                                                      • INFO:root:Received response at handle=62: b'0b:12:00:02:01:07:03:01:01:79:01:00'
                                                        @@ -1085,10 +1085,10 @@ 

                                                        Query All

                                                        Quiz time! 📚 ✏️

                                                        -
                                                        +
                                                        -
                                                        How can we poll the encoding status and the resolution setting using one command?
                                                        -
                                                        +
                                                        How can we poll the encoding status and the resolution setting using one command?
                                                        +

                                                        @@ -1101,10 +1101,10 @@

                                                        Query All

                                                        - -