From 8b41d7ebafff91c943766af9084a503e06088857 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 19 Apr 2024 20:41:48 +0000 Subject: [PATCH] Built Open GoPro docs from Internal Repo --- assets/{ => images}/global_behaviors.png | Bin .../plantuml_ble_cohn_provision.png | Bin .../{ => images}/plantuml_ble_connect_ap.png | Bin .../plantuml_ble_connect_new_ap.png | Bin .../plantuml_ble_disconnect_ap.png | Bin .../plantuml_ble_live_streaming.png | Bin .../plantuml_ble_scan_for_ssids.png | Bin .../plantuml_ble_tlv_vs_protobuf.png | Bin assets/{ => images}/resumeable_ota.png | Bin assets/{ => images}/simple_ota.png | Bin assets/{ => images}/webcam.png | Bin assets/js/lunr/lunr-store.js | 4 +- ble/.buildinfo | 4 - ble/.doctrees/environment.pickle | Bin 2318533 -> 0 bytes ble/.doctrees/features/access_points.doctree | Bin 64089 -> 0 bytes ble/.doctrees/features/cohn.doctree | Bin 65664 -> 0 bytes ble/.doctrees/features/control.doctree | Bin 65646 -> 0 bytes ble/.doctrees/features/hilights.doctree | Bin 7767 -> 0 bytes ble/.doctrees/features/live_streaming.doctree | Bin 32262 -> 0 bytes ble/.doctrees/features/presets.doctree | Bin 57753 -> 0 bytes ble/.doctrees/features/query.doctree | Bin 121110 -> 0 bytes ble/.doctrees/features/settings.doctree | Bin 281226 -> 0 bytes ble/.doctrees/features/statuses.doctree | Bin 239472 -> 0 bytes ble/.doctrees/index.doctree | Bin 17345 -> 0 bytes ble/.doctrees/protocol.doctree | Bin 3747 -> 0 bytes ble/.doctrees/protocol/ble_setup.doctree | Bin 23973 -> 0 bytes ble/.doctrees/protocol/data_protocol.doctree | Bin 70795 -> 0 bytes ble/.doctrees/protocol/id_tables.doctree | Bin 12673 -> 0 bytes ble/.doctrees/protocol/protobuf.doctree | Bin 446901 -> 0 bytes .../protocol/state_management.doctree | Bin 7615 -> 0 bytes ble/_sources/protocol/protobuf.rst.txt | 677 - ble/features/access_points.html | 2 - ble/features/cohn.html | 2 - ble/features/control.html | 2 - ble/features/hilights.html | 2 - ble/features/live_streaming.html | 2 - ble/features/presets.html | 2 - ble/features/query.html | 2 - ble/features/settings.html | 2 - ble/features/statuses.html | 2 - ble/genindex.html | 2 - ble/index.html | 2 - ble/objects.inv | Bin 12035 -> 11981 bytes ble/operation-operation_index.html | 242 +- ble/protocol.html | 2 - ble/protocol/ble_setup.html | 2 - ble/protocol/data_protocol.html | 2 - ble/protocol/id_tables.html | 2 - ble/protocol/protobuf.html | 681 +- ble/protocol/state_management.html | 2 - ble/search.html | 2 - ble/searchindex.js | 2 +- contribution.html | 32 +- feed.xml | 2 +- http.html | 31936 +++++++++++----- sitemap.xml | 101 +- tutorials/ble-protobuf.html | 38 +- tutorials/ble-queries.html | 124 +- tutorials/camera-media-list.html | 46 +- tutorials/cohn.html | 38 +- tutorials/connect-ble.html | 64 +- tutorials/connect-wifi.html | 92 +- tutorials/index.html | 4 +- tutorials/parse-ble-responses.html | 124 +- tutorials/send-ble-commands.html | 96 +- tutorials/send-wifi-commands.html | 96 +- 66 files changed, 22145 insertions(+), 12292 deletions(-) rename assets/{ => images}/global_behaviors.png (100%) rename assets/{ => images}/plantuml_ble_cohn_provision.png (100%) rename assets/{ => images}/plantuml_ble_connect_ap.png (100%) rename assets/{ => images}/plantuml_ble_connect_new_ap.png (100%) rename assets/{ => images}/plantuml_ble_disconnect_ap.png (100%) rename assets/{ => images}/plantuml_ble_live_streaming.png (100%) rename assets/{ => images}/plantuml_ble_scan_for_ssids.png (100%) rename assets/{ => images}/plantuml_ble_tlv_vs_protobuf.png (100%) rename assets/{ => images}/resumeable_ota.png (100%) rename assets/{ => images}/simple_ota.png (100%) rename assets/{ => images}/webcam.png (100%) delete mode 100644 ble/.buildinfo delete mode 100644 ble/.doctrees/environment.pickle delete mode 100644 ble/.doctrees/features/access_points.doctree delete mode 100644 ble/.doctrees/features/cohn.doctree delete mode 100644 ble/.doctrees/features/control.doctree delete mode 100644 ble/.doctrees/features/hilights.doctree delete mode 100644 ble/.doctrees/features/live_streaming.doctree delete mode 100644 ble/.doctrees/features/presets.doctree delete mode 100644 ble/.doctrees/features/query.doctree delete mode 100644 ble/.doctrees/features/settings.doctree delete mode 100644 ble/.doctrees/features/statuses.doctree delete mode 100644 ble/.doctrees/index.doctree delete mode 100644 ble/.doctrees/protocol.doctree delete mode 100644 ble/.doctrees/protocol/ble_setup.doctree delete mode 100644 ble/.doctrees/protocol/data_protocol.doctree delete mode 100644 ble/.doctrees/protocol/id_tables.doctree delete mode 100644 ble/.doctrees/protocol/protobuf.doctree delete mode 100644 ble/.doctrees/protocol/state_management.doctree diff --git a/assets/global_behaviors.png b/assets/images/global_behaviors.png similarity index 100% rename from assets/global_behaviors.png rename to assets/images/global_behaviors.png diff --git a/assets/plantuml_ble_cohn_provision.png b/assets/images/plantuml_ble_cohn_provision.png similarity index 100% rename from assets/plantuml_ble_cohn_provision.png rename to assets/images/plantuml_ble_cohn_provision.png diff --git a/assets/plantuml_ble_connect_ap.png b/assets/images/plantuml_ble_connect_ap.png similarity index 100% rename from assets/plantuml_ble_connect_ap.png rename to assets/images/plantuml_ble_connect_ap.png diff --git a/assets/plantuml_ble_connect_new_ap.png b/assets/images/plantuml_ble_connect_new_ap.png similarity index 100% rename from assets/plantuml_ble_connect_new_ap.png rename to assets/images/plantuml_ble_connect_new_ap.png diff --git a/assets/plantuml_ble_disconnect_ap.png b/assets/images/plantuml_ble_disconnect_ap.png similarity index 100% rename from assets/plantuml_ble_disconnect_ap.png rename to assets/images/plantuml_ble_disconnect_ap.png diff --git a/assets/plantuml_ble_live_streaming.png b/assets/images/plantuml_ble_live_streaming.png similarity index 100% rename from assets/plantuml_ble_live_streaming.png rename to assets/images/plantuml_ble_live_streaming.png diff --git a/assets/plantuml_ble_scan_for_ssids.png b/assets/images/plantuml_ble_scan_for_ssids.png similarity index 100% rename from assets/plantuml_ble_scan_for_ssids.png rename to assets/images/plantuml_ble_scan_for_ssids.png diff --git a/assets/plantuml_ble_tlv_vs_protobuf.png b/assets/images/plantuml_ble_tlv_vs_protobuf.png similarity index 100% rename from assets/plantuml_ble_tlv_vs_protobuf.png rename to assets/images/plantuml_ble_tlv_vs_protobuf.png diff --git a/assets/resumeable_ota.png b/assets/images/resumeable_ota.png similarity index 100% rename from assets/resumeable_ota.png rename to assets/images/resumeable_ota.png diff --git a/assets/simple_ota.png b/assets/images/simple_ota.png similarity index 100% rename from assets/simple_ota.png rename to assets/images/simple_ota.png diff --git a/assets/webcam.png b/assets/images/webcam.png similarity index 100% rename from assets/webcam.png rename to assets/images/webcam.png diff --git a/assets/js/lunr/lunr-store.js b/assets/js/lunr/lunr-store.js index d2fd04e6..78706c21 100644 --- a/assets/js/lunr/lunr-store.js +++ b/assets/js/lunr/lunr-store.js @@ -15,14 +15,14 @@ var store = [ }, { "title": "Tutorials: ", - "excerpt": "This set of tutorials is a series of sample scripts / files and accompanying .html walk-throughs to implement basic functionality to interact with a GoPro device using the following languages: - Python - Kotlin - More to come! The tutorials only support Open GoPro Version 2.0 and must be run on a [supported camera](/ble/index.htmlsupported-cameras). They will provide walk-throughs and sample code to use the relevant language / framework to exercise the Open GoPro Interface using Bluetooth Low Energy (BLE) and HTTP over WiFi. {% warning %} The tutorials are only tested on the latest camera / firmware combination. This is only an issue in cases where capabilities change between cameras such as setting options. {% endwarning %} The tutorials are meant as an introduction to the Open GoPro specification. They are not a substitute for the complete [BLE](/ble/index.html) and [HTTP](/http) specifications which will be your main source of reference after completing the tutorials. {% for tutorial in site.tutorials %} - [{{ tutorial.title }}]({{ tutorial.permalink | prepend: site.baseurl }}) {% endfor %}", + "excerpt": "This set of tutorials is a series of sample scripts / files and accompanying .html walk-throughs to implement basic functionality to interact with a GoPro device using the following languages: - Python - Kotlin - More to come! The tutorials only support Open GoPro Version 2.0 and must be run on a [supported camera](/OpenGoPro/ble/index.htmlsupported-cameras). They will provide walk-throughs and sample code to use the relevant language / framework to exercise the Open GoPro Interface using Bluetooth Low Energy (BLE) and HTTP over WiFi. {% warning %} The tutorials are only tested on the latest camera / firmware combination. This is only an issue in cases where capabilities change between cameras such as setting options. {% endwarning %} The tutorials are meant as an introduction to the Open GoPro specification. They are not a substitute for the complete [BLE](/OpenGoPro/ble/index.html) and [HTTP](/http) specifications which will be your main source of reference after completing the tutorials. {% for tutorial in site.tutorials %} - [{{ tutorial.title }}]({{ tutorial.permalink | prepend: site.baseurl }}) {% endfor %}", "categories": [], "tags": [], "url": "/OpenGoPro/tutorials/#" }, { "title": "Tutorial 1: Connect BLE: ", - "excerpt": "This tutorial will provide a walk-through to connect to the GoPro camera via Bluetooth Low Energy (BLE). Requirements Hardware A GoPro camera that is supported by Open GoPro python kotlin One of the following systems: Windows 10, version 16299 (Fall Creators Update) or greater Linux distribution with BlueZ >= 5.43 OS X/macOS support via Core Bluetooth API, from at least OS X version 10.11 An Android Device supporting SDK >= 33 Software python kotlin Python >= 3.9 and < 3.12 must be installed. See this Python installation guide. Android Studio >= 2022.1.1 (Electric Eel) Overview / Assumptions python kotlin This tutorial will use bleak to control the OS’s Bluetooth Low Energy (BLE). The Bleak BLE controller does not currently support autonomous pairing for the BlueZ backend. So if you are using BlueZ (i.e. Ubuntu, RaspberryPi, etc.), you need to first pair the camera from the command line as shown in the BlueZ tutorial. The bleak module is based on asyncio which means that its awaitable functions need to be called from an async coroutine. In order to do this, all of the code below should be running in an async function. We accomplish this in the tutorial scripts by making main async as such: import asyncio async def main() -> None: Put our code here if __name__ == \"__main__\": asyncio.run(main()) These are stripped down Python tutorials that are only meant to show the basics. For a complete Python SDK that uses bleak as the backend as well as a cross-platform WiFi backend to easily write Python apps that control the GoPro, see the Open GoPro Python SDK This tutorial will provide a set of Kotlin tutorials to demonstrate Open GoPro Functionality. The tutorials are provided as a single Android Studio project targeted to run on an Android device. The tutorials are only concerned with application-level demonstrations of the Open GoPro API and therefore do not prioritize the following: UI: The tutorial project only contains a minimal UI to select, implement, and view logs for each tutorial Android architecture / best practices: the project architecture is designed to encapsulate Kotlin functionality to easily display per-tutorial functionality Android-specific requirements: permission handling, adapter enabling, etc are implemented in the project but not documented in the tutorials BLE / Wifi (HTTP) functionality: A simple BLE API is included in the project and will be touched upon in the tutorials. However, the focus of the tutorials is not on how the BLE API is implemented as a real project would likely use a third-party library for this such as Kable See the Punchthrough tutorials for Android BLE-Specific tutorials These tutorials assume familiarity and a base level of competence with: Android Studio Bluetooth Low Energy JSON HTTP Setup python kotlin This set of tutorials is accompanied by a Python package consisting of scripts separated by tutorial module. These can be found on Github. Once the Github repo has been cloned or downloaded to your local machine, the package can be installed as follows: Enter the python tutorials directory at $INSTALL/demos/python/tutorial/ where $INSTALL is the top level of the Open GoPro repo where it exists on your local machine Use pip to install the package (in editable mode in case you want to test out some changes): pip install -e . While it is out of the scope of this tutorial to describe, it is recommended to install the package in to a virtual environment in order to isolate system dependencies. You can test that installation was successful by viewing the installed package’s information: $ pip show open-gopro-python-tutorials Name: open-gopro-python-tutorials Version: 0.0.3 Summary: Open GoPro Python Tutorials Home-page: https://github.com/gopro/OpenGoPro Author: Tim Camise Author-email: gopro.com License: MIT Location: c:\\users\\tim\\gopro\\opengopro\\demos\\python\\tutorial Requires: bleak, requests Required-by: This set of tutorials is accompanied by an Android Studio project consisting of, among other project infrastructure, Kotlin files separated by tutorial module. The project can be found on Github. Once the Github repo has been cloned or downloaded to your local machine, open the project in Android studio. At this point you should be able to build and load the project to your Android device. The project will not work on an emulated device since BLE can not be emulated. Just Show me the Demo!! python kotlin Each of the scripts for this tutorial can be found in the Tutorial 1 directory. Python >= 3.9 and < 3.12 must be used as specified in the requirements You can test connecting to your camera through BLE using the following script: python ble_connect.py See the help for parameter definitions: $ python ble_connect.py --help usage: ble_connect.py [-h] [-i IDENTIFIER] Connect to a GoPro camera, pair, then enable notifications. optional arguments: -h, --help show this help message and exit -i IDENTIFIER, --identifier IDENTIFIER Last 4 digits of GoPro serial number, which is the last 4 digits of the default camera SSID. If not used, first discovered GoPro will be connected to The Kotlin file for this tutorial can be found on Github. To perform the tutorial, run the Android Studio project, select “Tutorial 1” from the dropdown and click on “Perform.” Perform Tutorial 1 This will start the tutorial and log to the screen as it executes. When the tutorial is complete, click “Exit Tutorial” to return to the Tutorial selection screen. Basic BLE Tutorial This tutorial will walk through the process of connecting to a GoPro via BLE. This same connect functionality will be used as a foundation for all future BLE tutorials. Here is a summary of the sequence that will be described in detail in the following sections: GoProOpen GoPro user deviceGoProOpen GoPro user deviceScanningConnectedalt[If not Previously Paired]PairedReady to CommunicateAdvertisingAdvertisingConnectPair RequestPair ResponseEnable Notifications on Characteristic 1Enable Notifications on Characteristic 2Enable Notifications on Characteristic ..Enable Notifications on Characteristic N Advertise First, we need to ensure the camera is discoverable (i.e. it is advertising). Follow the per-camera steps here. The screen should appear as such: Camera is discoverable. Scan Next, we must scan to discover the advertising GoPro Camera. python kotlin We will do this using bleak. Let’s initialize an empty dict that will store discovered devices, indexed by name: Map of devices indexed by name devices: Dict[str, BleakDevice] = {} We’re then going to scan for all devices. We are passing a scan callback to bleak in order to also find non-connectable scan responses. We are keeping any devices that have a device name. Scan callback to also catch nonconnectable scan responses def _scan_callback(device: BleakDevice, _: Any) -> None: Add to the dict if not unknown if device.name and device.name != \"Unknown\": devices[device.name] = device Now discover and add connectable advertisements for device in await BleakScanner.discover(timeout=5, detection_callback=_scan_callback): if device.name != \"Unknown\" and device.name is not None: devices[device.name] = device Now we can search through the discovered devices to see if we found a GoPro. Any GoPro device name will be structured as GoPro XXXX where XXXX is the last four digits of your camera’s serial number. If you have renamed your GoPro to something other than the default, you will need to update the below steps accordingly. First, we define a regex which is either “GoPro “ followed by any four alphanumeric characters if no identifier was passed, or the identifier if it exists. In the demo ble_connect.py, the identifier is taken from the command-line arguments. token = re.compile(identifier or r\"GoPro [A-Z0-9]{4}\") Now we build a list of matched devices by checking if each device’s name includes the token regex. matched_devices: List[BleakDevice] = [] Now look for our matching device(s) matched_devices = [device for name, device in devices.items() if token.match(name)] Due to potential RF interference and the asynchronous nature of BLE advertising / scanning, it is possible that the advertising GoPro will not be discovered by the scanning PC in one scan. Therefore, you may need to redo the scan (as ble_connect.py does) until a GoPro is found. That is, matched_device must contain at least one device. Similarly, connection establishment can fail for reasons out of our control. Therefore, the connection process is also wrapped in retry logic. Here is an example of the log from ble_connect.py of scanning for devices. Note that this includes several rescans until the devices was found. $ python ble_connect.py INFO:root:Scanning for bluetooth devices... INFO:root: Discovered: INFO:root: Discovered: TR8600 seri INFO:root:Found 0 matching devices. INFO:root: Discovered: INFO:root: Discovered: TR8600 seri INFO:root: Discovered: GoPro Cam INFO:root: Discovered: GoPro 0456 INFO:root:Found 1 matching devices. Among other devices, you should see GoPro XXXX where XXXX is the last four digits of your camera’s serial number. First let’s define a filter that will be used to find GoPro device advertisements. We do this by filtering on the GoPro Service UUID that is included in all GoPro advertisements: private val scanFilters = listOf<ScanFilter>( ScanFilter.Builder().setServiceUuid(ParcelUuid.fromString(GOPRO_UUID)).build() ) We then send this to the BLE API and collect events from the SharedFlow that it returns. We take the first event emitted from this SharedFlow and notify (via a Channel) that a GoPro advertiser has been found, store the GoPro’s BLE address, and stop the scan. ble.startScan(scanFilters).onSuccess { scanResults -> val deviceChannel: Channel<BluetoothDevice> = Channel() // Collect scan results CoroutineScope(Dispatchers.IO).launch { scanResults.collect { scanResult -> // We will take the first discovered gopro deviceChannel.send(scanResult.device) } } // Wait to receive the scan result goproAddress = deviceChannel.receive().address ble.stopScan(scanResults) } At this point, the GoPro’s BLE address is stored (as a string) in goproAddress. Here is an example log output from this process: Scanning for GoPro's Received scan result: GoPro 0992 Found GoPro: GoPro 0992 Connect Now that we have discovered at least one GoPro device to connect to, the next step is to establish a BLE connection to the camera. python kotlin We're just taking the first device if there are multiple. device = matched_devices[0] client = BleakClient(device) await client.connect(timeout=15) An example output of this is shown here where we can see that the connection has successfully been established as well as the GoPro’s BLE MAC address.: INFO:root:Establishing BLE connection to EF:5A:F6:13:E6:5A: GoPro 0456... INFO:bleak.backends.dotnet.client:Services resolved for BleakClientDotNet (EF:5A:F6:13:E6:5A) INFO:root:BLE Connected! ble.connect(goproAddress) At this point, the BLE connection is established but there is more setup to be done before we are ready to communicate. Pair The GoPro has encryption-protected characteristics which require us to pair before writing to them. Therefore now that we are connected, we need to attempt to pair. python kotlin try: await client.pair() except NotImplementedError: This is expected on Mac pass Not all OS’s allow pairing (at this time) but some require it. Rather than checking for the OS, we are just catching the exception when it fails. Rather than explicitly request pairing, we rely on the fact that Android will automatically start the pairing process if you try to read a characteristic that requires encryption. To do this, we read the Wifi AP Password characteristic. First we discover all characteristics (this will also be needed later when enabling notifications): ble.discoverCharacteristics(goproAddress) This API will discover the characteristics over-the-air but not return them here. They are stored to the ble object for later access via the servicesOf method. Then we read the relevant characteristic to trigger pairing: ble.readCharacteristic(goproAddress, GoProUUID.WIFI_AP_PASSWORD.uuid) At this point a pairing popup should occur on the Android Device. Select “Allow Pairing” to continue. Here is an example log output from this process: Discovering characteristics Discovered 9 services for F7:5B:5D:81:64:1B Service 00001801-0000-1000-8000-00805f9b34fb Characteristics: |-- Service 00001800-0000-1000-8000-00805f9b34fb Characteristics: |--00002a00-0000-1000-8000-00805f9b34fb: READABLE |--00002a01-0000-1000-8000-00805f9b34fb: READABLE |--00002a04-0000-1000-8000-00805f9b34fb: READABLE ... |------00002902-0000-1000-8000-00805f9b34fb: EMPTY |--b5f90082-aa8d-11e3-9046-0002a5d5c51b: WRITABLE |--b5f90083-aa8d-11e3-9046-0002a5d5c51b: NOTIFIABLE |------00002902-0000-1000-8000-00805f9b34fb: EMPTY |--b5f90084-aa8d-11e3-9046-0002a5d5c51b: NOTIFIABLE |------00002902-0000-1000-8000-00805f9b34fb: EMPTY Service 00001804-0000-1000-8000-00805f9b34fb Characteristics: |--00002a07-0000-1000-8000-00805f9b34fb: READABLE Pairing Read characteristic b5f90003-aa8d-11e3-9046-0002a5d5c51b : value: 66:3F:54:2D:38:35:72:2D:4E:35:63 Once paired, the camera should beep and display “Connection Successful”. This pairing process only needs to be done once. On subsequent connections, the devices will automatically re-establish encryption using stored keys. That is, they are “bonded.” Enable Notifications As specified in the Open GoPRo BLE Spec, we must enable notifications for a given characteristic to receive responses from it. To enable notifications, we loop over each characteristic in each service and enable the characteristic for notification if it has notify properties: python kotlin It is necessary to define a notification handler to pass to the bleak start_notify method. Since we only care about connecting to the device in this tutorial (and not actually receiving data), we are just passing an empty function. A future tutorial will demonstrate how to use this meaningfully. for service in client.services: for char in service.characteristics: if \"notify\" in char.properties: await client.start_notify(char, notification_handler) In the following example output, we can see that notifications are enabled for each characteristic that is notifiable. INFO:root:Enabling notifications... INFO:root:Enabling notification on char 00002a19-0000-1000-8000-00805f9b34fb INFO:root:Enabling notification on char b5f90073-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90075-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90077-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90079-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90092-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90081-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90083-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90084-aa8d-11e3-9046-0002a5d5c51b INFO:root:Done enabling notifications INFO:root:BLE Connection is ready for communication. ble.servicesOf(goproAddress).onSuccess { services -> services.forEach { service -> service.characteristics.forEach { char -> if (char.isNotifiable()) { ble.enableNotification(goproAddress, char.uuid) } } } } Here is an example log output from this process: Enabling notifications Enabling notifications for 00002a19-0000-1000-8000-00805f9b34fb Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90073-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90075-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90077-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90079-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90092-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90081-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90083-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90084-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Bluetooth is ready for communication! The characteristics that correspond to each UUID listed in the log can be found in the Open GoPro API. These will be used in a future tutorial to send data. Once the notifications are enabled, the GoPro BLE initialization is complete and it is ready to communicate via BLE. Quiz time! 📚 ✏️ How often is it necessary to pair? A: Pairing must occur every time to ensure safe BLE communication. B: We never need to pair as the GoPro does not require it to communicate. C: Pairing only needs to occur once as the keys will be automatically re-used for future connections. Submit Answer Correct!! 😃 Incorrect!! 😭 The correct answer is C. Pairing is only needed once (assuming neither side deletes the keys). If the GoPro deletes the keys (via Connections->Reset Connections), the devices will need to re-pair. Troubleshooting Device not connecting If the connection is not starting, it is likely because the camera is not advertising. This can be due to either: The camera is not in pairing mode. Ensure that this is achieved as done in the advertise section. The devices never disconnected from the previous session so are thus already connected. If this is the case, perform the “Complete System Reset” shown below. Complete System Reset BLE is a fickle beast. If at any point it is impossible to discover or connect to the camera, perform the following. Reset the camera by choosing Connections –> Reset Connections Use your OS’s bluetooth settings GUI to remove / unpair the Gopro Restart the procedure detailed above Logs python kotlin The demo program has enabled bleak logs and is also using the default python logging module to write its own logs. To enable more bleak logs, follow bleak’s troubleshooting section. The demo program is using Timber. It is piping all log messages to the UI but they are also available in the logcat window and can be filtered using: package:mine tag:GP_. Good Job! Congratulations 🤙 You can now successfully connect to the GoPro via BLE and prepare it to receive / send data. To see how to send commands, you should advance to the next tutorial.", + "excerpt": "This tutorial will provide a walk-through to connect to the GoPro camera via Bluetooth Low Energy (BLE). Requirements Hardware A GoPro camera that is supported by Open GoPro python kotlin One of the following systems: Windows 10, version 16299 (Fall Creators Update) or greater Linux distribution with BlueZ >= 5.43 OS X/macOS support via Core Bluetooth API, from at least OS X version 10.11 An Android Device supporting SDK >= 33 Software python kotlin Python >= 3.9 and < 3.12 must be installed. See this Python installation guide. Android Studio >= 2022.1.1 (Electric Eel) Overview / Assumptions python kotlin This tutorial will use bleak to control the OS’s Bluetooth Low Energy (BLE). The Bleak BLE controller does not currently support autonomous pairing for the BlueZ backend. So if you are using BlueZ (i.e. Ubuntu, RaspberryPi, etc.), you need to first pair the camera from the command line. One way to do this is to use bluetoothctl. The bleak module is based on asyncio which means that its awaitable functions need to be called from an async coroutine. In order to do this, all of the code below should be running in an async function. We accomplish this in the tutorial scripts by making main async as such: import asyncio async def main() -> None: Put our code here if __name__ == \"__main__\": asyncio.run(main()) These are stripped down Python tutorials that are only meant to show the basics. For a complete Python SDK that uses bleak as the backend as well as a cross-platform WiFi backend to easily write Python apps that control the GoPro, see the Open GoPro Python SDK This tutorial will provide a set of Kotlin tutorials to demonstrate Open GoPro Functionality. The tutorials are provided as a single Android Studio project targeted to run on an Android device. The tutorials are only concerned with application-level demonstrations of the Open GoPro API and therefore do not prioritize the following: UI: The tutorial project only contains a minimal UI to select, implement, and view logs for each tutorial Android architecture / best practices: the project architecture is designed to encapsulate Kotlin functionality to easily display per-tutorial functionality Android-specific requirements: permission handling, adapter enabling, etc are implemented in the project but not documented in the tutorials BLE / Wifi (HTTP) functionality: A simple BLE API is included in the project and will be touched upon in the tutorials. However, the focus of the tutorials is not on how the BLE API is implemented as a real project would likely use a third-party library for this such as Kable See the Punchthrough tutorials for Android BLE-Specific tutorials These tutorials assume familiarity and a base level of competence with: Android Studio Bluetooth Low Energy JSON HTTP Setup python kotlin This set of tutorials is accompanied by a Python package consisting of scripts separated by tutorial module. These can be found on Github. Once the Github repo has been cloned or downloaded to your local machine, the package can be installed as follows: Enter the python tutorials directory at $INSTALL/demos/python/tutorial/ where $INSTALL is the top level of the Open GoPro repo where it exists on your local machine Use pip to install the package (in editable mode in case you want to test out some changes): pip install -e . While it is out of the scope of this tutorial to describe, it is recommended to install the package in to a virtual environment in order to isolate system dependencies. You can test that installation was successful by viewing the installed package’s information: $ pip show open-gopro-python-tutorials Name: open-gopro-python-tutorials Version: 0.0.3 Summary: Open GoPro Python Tutorials Home-page: https://github.com/gopro/OpenGoPro Author: Tim Camise Author-email: gopro.com License: MIT Location: c:\\users\\tim\\gopro\\opengopro\\demos\\python\\tutorial Requires: bleak, requests Required-by: This set of tutorials is accompanied by an Android Studio project consisting of, among other project infrastructure, Kotlin files separated by tutorial module. The project can be found on Github. Once the Github repo has been cloned or downloaded to your local machine, open the project in Android studio. At this point you should be able to build and load the project to your Android device. The project will not work on an emulated device since BLE can not be emulated. Just Show me the Demo!! python kotlin Each of the scripts for this tutorial can be found in the Tutorial 1 directory. Python >= 3.9 and < 3.12 must be used as specified in the requirements You can test connecting to your camera through BLE using the following script: python ble_connect.py See the help for parameter definitions: $ python ble_connect.py --help usage: ble_connect.py [-h] [-i IDENTIFIER] Connect to a GoPro camera, pair, then enable notifications. optional arguments: -h, --help show this help message and exit -i IDENTIFIER, --identifier IDENTIFIER Last 4 digits of GoPro serial number, which is the last 4 digits of the default camera SSID. If not used, first discovered GoPro will be connected to The Kotlin file for this tutorial can be found on Github. To perform the tutorial, run the Android Studio project, select “Tutorial 1” from the dropdown and click on “Perform.” Perform Tutorial 1 This will start the tutorial and log to the screen as it executes. When the tutorial is complete, click “Exit Tutorial” to return to the Tutorial selection screen. Basic BLE Tutorial This tutorial will walk through the process of connecting to a GoPro via BLE. This same connect functionality will be used as a foundation for all future BLE tutorials. Here is a summary of the sequence that will be described in detail in the following sections: GoProOpen GoPro user deviceGoProOpen GoPro user deviceScanningConnectedalt[If not Previously Paired]PairedReady to CommunicateAdvertisingAdvertisingConnectPair RequestPair ResponseEnable Notifications on Characteristic 1Enable Notifications on Characteristic 2Enable Notifications on Characteristic ..Enable Notifications on Characteristic N Advertise First, we need to ensure the camera is discoverable (i.e. it is advertising). Follow the per-camera steps here. The screen should appear as such: Camera is discoverable. Scan Next, we must scan to discover the advertising GoPro Camera. python kotlin We will do this using bleak. Let’s initialize an empty dict that will store discovered devices, indexed by name: Map of devices indexed by name devices: Dict[str, BleakDevice] = {} We’re then going to scan for all devices. We are passing a scan callback to bleak in order to also find non-connectable scan responses. We are keeping any devices that have a device name. Scan callback to also catch nonconnectable scan responses def _scan_callback(device: BleakDevice, _: Any) -> None: Add to the dict if not unknown if device.name and device.name != \"Unknown\": devices[device.name] = device Now discover and add connectable advertisements for device in await BleakScanner.discover(timeout=5, detection_callback=_scan_callback): if device.name != \"Unknown\" and device.name is not None: devices[device.name] = device Now we can search through the discovered devices to see if we found a GoPro. Any GoPro device name will be structured as GoPro XXXX where XXXX is the last four digits of your camera’s serial number. If you have renamed your GoPro to something other than the default, you will need to update the below steps accordingly. First, we define a regex which is either “GoPro “ followed by any four alphanumeric characters if no identifier was passed, or the identifier if it exists. In the demo ble_connect.py, the identifier is taken from the command-line arguments. token = re.compile(identifier or r\"GoPro [A-Z0-9]{4}\") Now we build a list of matched devices by checking if each device’s name includes the token regex. matched_devices: List[BleakDevice] = [] Now look for our matching device(s) matched_devices = [device for name, device in devices.items() if token.match(name)] Due to potential RF interference and the asynchronous nature of BLE advertising / scanning, it is possible that the advertising GoPro will not be discovered by the scanning PC in one scan. Therefore, you may need to redo the scan (as ble_connect.py does) until a GoPro is found. That is, matched_device must contain at least one device. Similarly, connection establishment can fail for reasons out of our control. Therefore, the connection process is also wrapped in retry logic. Here is an example of the log from ble_connect.py of scanning for devices. Note that this includes several rescans until the devices was found. $ python ble_connect.py INFO:root:Scanning for bluetooth devices... INFO:root: Discovered: INFO:root: Discovered: TR8600 seri INFO:root:Found 0 matching devices. INFO:root: Discovered: INFO:root: Discovered: TR8600 seri INFO:root: Discovered: GoPro Cam INFO:root: Discovered: GoPro 0456 INFO:root:Found 1 matching devices. Among other devices, you should see GoPro XXXX where XXXX is the last four digits of your camera’s serial number. First let’s define a filter that will be used to find GoPro device advertisements. We do this by filtering on the GoPro Service UUID that is included in all GoPro advertisements: private val scanFilters = listOf<ScanFilter>( ScanFilter.Builder().setServiceUuid(ParcelUuid.fromString(GOPRO_UUID)).build() ) We then send this to the BLE API and collect events from the SharedFlow that it returns. We take the first event emitted from this SharedFlow and notify (via a Channel) that a GoPro advertiser has been found, store the GoPro’s BLE address, and stop the scan. ble.startScan(scanFilters).onSuccess { scanResults -> val deviceChannel: Channel<BluetoothDevice> = Channel() // Collect scan results CoroutineScope(Dispatchers.IO).launch { scanResults.collect { scanResult -> // We will take the first discovered gopro deviceChannel.send(scanResult.device) } } // Wait to receive the scan result goproAddress = deviceChannel.receive().address ble.stopScan(scanResults) } At this point, the GoPro’s BLE address is stored (as a string) in goproAddress. Here is an example log output from this process: Scanning for GoPro's Received scan result: GoPro 0992 Found GoPro: GoPro 0992 Connect Now that we have discovered at least one GoPro device to connect to, the next step is to establish a BLE connection to the camera. python kotlin We're just taking the first device if there are multiple. device = matched_devices[0] client = BleakClient(device) await client.connect(timeout=15) An example output of this is shown here where we can see that the connection has successfully been established as well as the GoPro’s BLE MAC address.: INFO:root:Establishing BLE connection to EF:5A:F6:13:E6:5A: GoPro 0456... INFO:bleak.backends.dotnet.client:Services resolved for BleakClientDotNet (EF:5A:F6:13:E6:5A) INFO:root:BLE Connected! ble.connect(goproAddress) At this point, the BLE connection is established but there is more setup to be done before we are ready to communicate. Pair The GoPro has encryption-protected characteristics which require us to pair before writing to them. Therefore now that we are connected, we need to attempt to pair. python kotlin try: await client.pair() except NotImplementedError: This is expected on Mac pass Not all OS’s allow pairing (at this time) but some require it. Rather than checking for the OS, we are just catching the exception when it fails. Rather than explicitly request pairing, we rely on the fact that Android will automatically start the pairing process if you try to read a characteristic that requires encryption. To do this, we read the Wifi AP Password characteristic. First we discover all characteristics (this will also be needed later when enabling notifications): ble.discoverCharacteristics(goproAddress) This API will discover the characteristics over-the-air but not return them here. They are stored to the ble object for later access via the servicesOf method. Then we read the relevant characteristic to trigger pairing: ble.readCharacteristic(goproAddress, GoProUUID.WIFI_AP_PASSWORD.uuid) At this point a pairing popup should occur on the Android Device. Select “Allow Pairing” to continue. Here is an example log output from this process: Discovering characteristics Discovered 9 services for F7:5B:5D:81:64:1B Service 00001801-0000-1000-8000-00805f9b34fb Characteristics: |-- Service 00001800-0000-1000-8000-00805f9b34fb Characteristics: |--00002a00-0000-1000-8000-00805f9b34fb: READABLE |--00002a01-0000-1000-8000-00805f9b34fb: READABLE |--00002a04-0000-1000-8000-00805f9b34fb: READABLE ... |------00002902-0000-1000-8000-00805f9b34fb: EMPTY |--b5f90082-aa8d-11e3-9046-0002a5d5c51b: WRITABLE |--b5f90083-aa8d-11e3-9046-0002a5d5c51b: NOTIFIABLE |------00002902-0000-1000-8000-00805f9b34fb: EMPTY |--b5f90084-aa8d-11e3-9046-0002a5d5c51b: NOTIFIABLE |------00002902-0000-1000-8000-00805f9b34fb: EMPTY Service 00001804-0000-1000-8000-00805f9b34fb Characteristics: |--00002a07-0000-1000-8000-00805f9b34fb: READABLE Pairing Read characteristic b5f90003-aa8d-11e3-9046-0002a5d5c51b : value: 66:3F:54:2D:38:35:72:2D:4E:35:63 Once paired, the camera should beep and display “Connection Successful”. This pairing process only needs to be done once. On subsequent connections, the devices will automatically re-establish encryption using stored keys. That is, they are “bonded.” Enable Notifications As specified in the Open GoPRo BLE Spec, we must enable notifications for a given characteristic to receive responses from it. To enable notifications, we loop over each characteristic in each service and enable the characteristic for notification if it has notify properties: python kotlin It is necessary to define a notification handler to pass to the bleak start_notify method. Since we only care about connecting to the device in this tutorial (and not actually receiving data), we are just passing an empty function. A future tutorial will demonstrate how to use this meaningfully. for service in client.services: for char in service.characteristics: if \"notify\" in char.properties: await client.start_notify(char, notification_handler) In the following example output, we can see that notifications are enabled for each characteristic that is notifiable. INFO:root:Enabling notifications... INFO:root:Enabling notification on char 00002a19-0000-1000-8000-00805f9b34fb INFO:root:Enabling notification on char b5f90073-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90075-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90077-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90079-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90092-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90081-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90083-aa8d-11e3-9046-0002a5d5c51b INFO:root:Enabling notification on char b5f90084-aa8d-11e3-9046-0002a5d5c51b INFO:root:Done enabling notifications INFO:root:BLE Connection is ready for communication. ble.servicesOf(goproAddress).onSuccess { services -> services.forEach { service -> service.characteristics.forEach { char -> if (char.isNotifiable()) { ble.enableNotification(goproAddress, char.uuid) } } } } Here is an example log output from this process: Enabling notifications Enabling notifications for 00002a19-0000-1000-8000-00805f9b34fb Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90073-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90075-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90077-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90079-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90092-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90081-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90083-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Enabling notifications for b5f90084-aa8d-11e3-9046-0002a5d5c51b Wrote to descriptor 00002902-0000-1000-8000-00805f9b34fb Bluetooth is ready for communication! The characteristics that correspond to each UUID listed in the log can be found in the Open GoPro API. These will be used in a future tutorial to send data. Once the notifications are enabled, the GoPro BLE initialization is complete and it is ready to communicate via BLE. Quiz time! 📚 ✏️ How often is it necessary to pair? A: Pairing must occur every time to ensure safe BLE communication. B: We never need to pair as the GoPro does not require it to communicate. C: Pairing only needs to occur once as the keys will be automatically re-used for future connections. Submit Answer Correct!! 😃 Incorrect!! 😭 The correct answer is C. Pairing is only needed once (assuming neither side deletes the keys). If the GoPro deletes the keys (via Connections->Reset Connections), the devices will need to re-pair. Troubleshooting Device not connecting If the connection is not starting, it is likely because the camera is not advertising. This can be due to either: The camera is not in pairing mode. Ensure that this is achieved as done in the advertise section. The devices never disconnected from the previous session so are thus already connected. If this is the case, perform the “Complete System Reset” shown below. Complete System Reset BLE is a fickle beast. If at any point it is impossible to discover or connect to the camera, perform the following. Reset the camera by choosing Connections –> Reset Connections Use your OS’s bluetooth settings GUI to remove / unpair the Gopro Restart the procedure detailed above Logs python kotlin The demo program has enabled bleak logs and is also using the default python logging module to write its own logs. To enable more bleak logs, follow bleak’s troubleshooting section. The demo program is using Timber. It is piping all log messages to the UI but they are also available in the logcat window and can be filtered using: package:mine tag:GP_. Good Job! Congratulations 🤙 You can now successfully connect to the GoPro via BLE and prepare it to receive / send data. To see how to send commands, you should advance to the next tutorial.", "categories": [], "tags": [], "url": "/OpenGoPro/tutorials/connect-ble#" diff --git a/ble/.buildinfo b/ble/.buildinfo deleted file mode 100644 index 8cf4934f..00000000 --- a/ble/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: ca55401b1ba039d0f22292726a740df9 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/ble/.doctrees/environment.pickle b/ble/.doctrees/environment.pickle deleted file mode 100644 index 0c367093da1b86d851e2fcef2212f3a861f9df31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2318533 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%0DfU1ss;2$Dz?Z^5LTkk+7{3_rYlvZ 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

uP0)H$%6t{! zMAiZcLP@Ok<^_^FIT_;$BzMKkLPI1~vy&D`ZYPA(fHl?ZuL7{JW?L(e{E6ytn9H#R zk~l_MG68H#A2p_*u?aAlaH0YUvtDwjU@{Ivf)_}{5KPWkAQaR;1(FvC2&)B>C3ZQ;OMiRbG>09T3iJb@wKv#tX}p8E7dcDJd>=j$Gf$punE5(8m~rObp71ge zcQ7yYw;@@-Q)r)H+X~siOt1A!wt?B;r$mDjd|#*|ydP!A%(Z4Ija{M+$Md?C&!|49 zwvXR!PPZ=;+GX3ld@0Pq-@S~_%+5#cUVerK*zXl)9a~5nGrO1XfH|wXmp>(7A{#3( z(_?J+^1Y*uMaJFB-y07I#O+>wc+?TdwtM+^Dd(?S{xt~ylI>ppBTUfH0>?!>JOq3K z0h@$?a&pt)-OK;6O9-CL{1X7Ho+ZcK%dZ#@sAN2UOACT$Jjnlu=(GOb8J_VxmUb3A z?vC&{L2Xmny7to`P)f9WnFdniPNHDLFu9H>;pXM=@3ZV(CUD%!fw6m+4R>aT=ayz; zcKG)eaD%POGIl~7IsXc)RxE0D;V(2869oz)mS2eH8P$?*BxYO-cB%V;X1$%u9f&F| z`_p>0tpNps9+p2rU!VkC3L}}BM`o?~&SjA&lGDk3=W^ZA?-TbYH)`i{!JLIza;r1c z;X=99OIj9NYdd&}%G2q>JYupX#r&U@eDiPzERS|!wBH%qc2zGti)_!XY0c?GC zPLIuMSYVv*7ejt( z^(syzcrNx80>YsDP=C+ze*t7JrH9uMu!;Ekt51s;GUr8&@itdxUVXx;SfRYeD8?}_ zVHTY0o@KO=S4`e&(pLDNj@hHQd3ht_pR?E|#oV1A$ zN&`01UdJRM?*m|sOG5rbRf4iQg~y3fGX`^mF;!R~#J4S

mNM|)8@}7)!F&; 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

%A4>Y|U}b0pbF&Hx^6773iJ8Woc-DS+ugn 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

=_kY9%Fs06 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

)8jHtFXGA3L$x~r|0(^;CG!qzXRNacX>BFD$84% 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 L@RbrfUakBW{3Ot% diff --git a/ble/.doctrees/features/access_points.doctree b/ble/.doctrees/features/access_points.doctree deleted file mode 100644 index 40621a3c4fb07944ad6c17e3b71ae3dfd6dbdba1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64089 zcmeHw3y>s7dFH-%XLdFFl14($mR8cvN}8Entsc9JkV0>*R$7VOl>`dp-kR>3sjBVi zZgo}fLxJoSMxcelfYsdj&S&6^K|IbrbKx+E*B#<;fOPoIVFwNn=#C38KF%OcXW{^3 zbKjqpRhgAlmGzh&c^zSewx_x}|IGaV{PWNM`|HoFlPll1|L05CfBt&6YuWANQ%1Ad z?letz;IC`zu;@+Z^og&lvuw;dwoKrtg6};%2$sbgAd7 z8!f|iaTC`o+s1rwwWitciZ3%p<4Dh(r80egwP(!HPXlYcb)L1(I^SAuUEp6jjUKqu zGc9v^)-=3+&vd5^##6mZJh@Xn7hSz@-?IJ;SQ|m#jk%uDwInIL;o+rAmK?IoS_9Sh zjGEi;b~`=Ktu;FBHi@%6SMxfxpxRncZOv}i4j=Rkl6CD~j9qQw;Gvth)o!pnuj}ra zo;KT4$Lu3^*KFFxRHrvLP2Z+DMSY@eddE7wBdB`Yjfd;?snJ80?bh%=8pMDYy%V+B zPOld7gg!N_n&H-Jd%*9W!}r)n&Due)XBzX=yBk{gUU$RqHy*AXv&^1Z^8{0E(`>pm zqdmH}?U_9^A92@dPt_iRPMO4$N8OkQKUdZ6I&|oM6q=tm+D#BPiNNc1TD8usTru^z z#9F<@~jQg9C11V#}{wna&@7V+Y z>hk(C=v!A>*OP!CmT~`z;<_X;5f|^XLiB9+{SdaYWuGfSW!RI7q#K4qAO#*oU0(m_QQ1*C`%!$+=4`*52 zatxS;H9PZ$-5yvo{%Vx>PIO^~mou`p_--EWw(N%O4W42@A2WJwT#{ybMsLpaV4>qv zlMU8=)&-y1wK4jo?%G(ZXf=|`_~Qo~Mw^*+dDZ3YFY!khB{LFYw&;n*Gk+HH`$V?< zCj2$%=wx7*)==~8GB%g|k>m5NJ#N<^_hU^L>#Ny2YBDwc7zFcSN!(Y+)6E}u!R;g# zvB_ZJoD3GufkB25egIk?_@mT*XU4%Q8=u1dXx-~H>R7Hl2u%e+0b%=Y};lxx{$tLaYJo#`2) zIcHAab^C$)c3fS%r3IH|a`%oM=FBzV4iaeEO(XDq{G~SytZ%y1^*=?IUyvlX1YQ5H z;nXPBoon;Evm@wE?OwZWPtIPu>*}352G)y@53Fxne?6>j6p#w<#^mg*xnsxfum^wp zD)wMIAD5ktnQN|@;XQDc!0Q`UC#G{pV>j=EdEJiPq7UnIeHigaXGzWKEgL?punAm2 zpvmm##4qIPb4t~ktT;pq7+-*cFOj8i&P8XkjfG-topY%4dCpn%Cs@u%i=&ojI?WS_ zo>^0&lKX4!?{&P+On)}$&91B;M*KDAeAhBu+m)*GSCD@jG9u~{%v@iJnQH@PcHoa} z#8e;7+UswfnwsuX*BhPIG^Vyu55G-W-h68d`$lZhJcn22Oy<-{w5I28pk6kvZ~jnwqLHleuS44b0F9(O{G^-C}NC%T~)~vA^_+fzv_vU4LDtXV2Mfqg7|tdS`{6 zvLRDVGdb1287gOcOhhDA^_8ZP3Ln|GmYbTxoQMYU#P&-zNKL5Gayt4Q4xXj zX{ucC9|!~kC)NS`fa!Jt0?a+NJy7&Lhnbd7!p~%PT^hx35D(XC2tCzYcy_Qz^AuX~ z%+`sTF^iCf9FyoFh=PcS8-z1>41?)A#UVyTlLB-)f2PR6x<6Dd|C0Qk1(WH)ki>bB zY755YJPk)u``=dDSLc=?LtaQK?l03M0pxYQfm(Ef!Xga>U#+$bZ=LUhPDZ%YfFDD+ zrzC`HdA^n_>P-l8_n=oKTa5a+|GI^ZpwL=%w6u$1`b-o$_~!i`&z`j#0UV7hA||Un zt7u`Qgn+PirwPIqX`w5u4G26$z$~LZhe=y|z(p*sQ)`+YfDS7~fwgW6-$i(Az0wOw zH>Qn zk|a{5lKX{C8Om@99aTrIypHNAz6v(N#gMz;SXBj$^G-}V4!1`-VYp@BZ%`eHxGC{h z@tBu$BNIQ?Ar|&>ZlbR&Odx-6cP4`X3k*aXA$N+kobt!Q+mjSbIe|Ot_>bZDjVQrk zx*HW*--ch!pgS3PMn^SKdvG}^5M&bDNVr*_IZ}LEyXHFTrCjkECUeN6kK_xv4pr7#xT8pH$YqXIteS=GaB#!fRgQo8v!pX zr)tt80$yf*xe$2Kz{oR9#fPXe1YWOaMf0_1^p4=MRZZxSd`pP;U!lU%n)EM-NUKRu z+3m--U(HQE#PJMBTut1Zc;q;gY9F#VMs8-0FC}S6cZ4uLUqu+7DKCr{iVK5kAF?o3 z-x~nE(6~h3g&@9DMG!CL3PRYI8b^T)P8|fAs!hOsbhp(ef~URPSm(&C-k_G0+=y3{ zZld_I+JvrvFk36AJ=RL5feMNUsVrMwX0C8k^bc$R;|`8&pka!xkWEpziUyXb7l7x; zQ;f_IvCbTgW!q{xhR6M-1qBj5XD92NDUz^|5XvQ0gmNK>a_sZ|F!niTdscsD3ZCus zTnEyb#v`8got^t}HPh*_AHqD=a*YS9nuUk`0qDjFm-KLS7aCcISF|+S4 z=Zvdl&}d?mn#0=Goz%eE(1Jh|dB4qTmb?qr{LvCqBi^KSOJkA2=lpCkkYyE*sb2LQ4AfhcN5USkWQEtaDaWP>{2TNUIIHO1W?!2l~5M~=;A4rioDjz5066h6~8I0*$=fksYhV{E23ox>;`oL z7eZk40OqfFML7tJLQc#S0=?joT2cl;V7fAb>lG_Ytn8BOy_D0TqrzTac?jtyb9mO! ztR1zDf@o_jP9&M@O-kP?BdhbNqN2#^LZ#KX)h>#x&P6S%7RVMq3t3HoZs^GBHfRa*Bt@s+nIdTxv<)veKrk z-XXHOpA{Vk-)how7WG5Ty3VSKuvFmB;1 z3vA(6iwlElAF?naB*jG$eHViG?^Oixtz1C}vvCRYjEcdkP06y-BK>2fs|ie%C?E_{ z1x&SMRhjw1P0TOYAjTJRc`?RAtgEsy74xp5FfqAZ5uhU8QUFzgWd%?reitIC2&igR z#Bx4}^p@9OEI<_rE(WMnxd=ZZ#UwL8^~0Qzl>ik@k5V&P+j=UX(o&GG6l}@irW-qh z;sn^$EF~miTM^$25X=7!g3fQm&;_p1!*s=5BX(8EH98rkpf2P&+(~&IvoyKZoA1O% z+nevNu?Odf+4Nhqor(N&@z5;0%($QWn=qbT?Of0UxmHBWfZQ$e^zb)h@8YDNLYJ8*7O(zKm6>UwfueT7|+TN37L--0E`<_)C*y=a#~&htyZ>K?3MzmxMc`Vj8* zao!f^oXlFuek^G7mGgn&cBbkUEawxidOy-PVts13{iwPZ>r47>q$CICJIC7nRxhAI z*^p$f+GN{#Zs1plNb3*_*GKG&Qs7bihfFLaiV2hR-BO+AUdjIek!)YoH4eaM9}*PE za?m5CZ{-xHa`Z^)8~Noz;6q|l7a`d%A_?;?Q(rDnYmnI?S(4zP{z7&NB`O<6e#cHJ z(wJyKw{R_BlhBo`b!x3&l(t5+Y*D&HRhmN4#XF!Hm-33z79BA`?xN+{sL}pPI@Kb! zKL|U9`Z)BWiS1KsWUG-#r+65@ya^m*RgnaUnocgkoG7K3|J(27xEUb|t|(GLYNGP6-gn zH0k?_y1f3#@f1UQaXe`zt8OWA<}s=)7~XTk#F-?Sq*!lOTCX<5$5Bg_A$}X^N)54& zDYE)u0u61dBf(Y~<~S0OHI-VR1e(xz@O2heNYFT2&}`K(?=zqcu*^s4ieVXcRRzlg z_MGj1P;zLfi_W?DSe!`jAED;be#<9`sG#4X+i#$FGI>QaeH$I2@OHjdidF9Id=*5x z*`kDbznoJ%^md-hFBf_{By3q}RewwJcK(1B&G%&GO$por$+v{aeu4^1YsV`@q}7f@ zn0NV_!eL&jeaPaFg1TH9(j6g;*PxT7g)vS<1%$Cvgn73X7Y5ZnWMM>MT`r2~yAZ_d zst96Ft{}vUy@l^Sfd6%K_x50E&fKc7Ii;|)Xzo`!n+WtK3W%s?g+TAGD9y#!Xk~#4 zlV=_Vk>1Goli7h@o^C7qF;S$Kn1eHf9U8F>3kjZ;NN?hIA(M)c-e0XEm&fwuvRIMc zNN}-8uPPVeN~Bn225a}_ut3(Er_Rs}DK(k3t@B845-2VpR+^}67_j!5s<3upI~ShU zDx@CS{z*j3knKI{+%1G`3Eg~&SENU_yKat9EyZwa9IRjqy4%2UoB^bzU)soEk#TRB zJ5;>_Vf4Qf@my}t!%KoiVc>5Jw<-k3KeY4rJIK~eptKA1^+?OW%S!j9q@1*bpJa0q zaQhk66#%!_guspMc#x^2w*O9PJH93qh35YcwWx|FuP0g1eC0?<+@|4)+}9Ac9fJOn zRC7$0gwBO3Xe}3mZQ;z|z7wXHpmClsl*0DhQ;J)T-0lLAZoVkU?Y5laA#%Gpzg)PW zle}fUP4N-JIQ1keIz;5=p~BJ%@+c8$6(oV&-U5<>2|85!ki{Y4G#zsLtt!HJUom0q zl91a+iVK5kAF?naq?V1`K37E$&*ln3n2k%rSnHidpxc>grKN@QYf5($*ey{&7^Mo> z?b}Lo@pW2WYsqWpX673p(wmw1p%-C#M112z%yS@9LyyjgyA<%2U|IohiQk1#DuTDa zuOgVAeo!_2_j^EoV#8gTGNlcdyq*0!Dn-n2x_ZweDMxEV(# zNSvlbvd(p*p{H~`T`^CIT~+avaF#QRZbP3J06@bNq4|R~O|s6GTZ8ldX#@5Bz0OhF z#p%?k@JJ-@6sH;Y3zZcf%)O9c_HwL8n|mW#hBgn#*2dq0BbMmB29sWA5~d~OGj>ih zKc+b?*=HZ>X30KuL3Srh_BjCia|drY4V{)uvMG?)q8zx)lYP4ALzL{(;2jb^%B!2~ z^XB1prhrgV&s%n$de!@pp6oLiZa=Cf`+QK}jo~Nzd=w34&t}z8;K@E8CL*nKE!-%P ztiyacv4F>a$i!8mm@q+KEY)f5-FzNIvb|APN+sFn*_`5JVJO+>kMqlg3oD6DUBpxg z^JJgjEl?{@_7RqZFC`=XYI@-VWl4+EeBWRrk%@(vq6AmGSEh}(qTqf)4d zyxvB7XAD-ZJyE+sb^%L0O`Lvv_$oRtwVfypA6(5>JxuGN*>=%|QPxX3bfjmt%%eE> znFqpHBlOhe#0_C|E18zS4u_^dhFC>Kqr8*1-n_ql$2~XSS-Y8R5HTZmNDmodIs#{KtT04+?bd?RA_#wDX18pdC}^~#neF_7s^_^?>9b1e%aXP6zQlnc1#smI_%otOi@{4C z?d$vlHGQ7*^BilH70(?-XA0-xoWkk8S+6P~V;lx^A4G>p;tX!C=JrIAfMzrkFvf@u=E>rdwXbp6+5xHJkEXvsN zV7`cxo$e4LG%6MasSkJM4vh3>r?k1ij=8?A;z%6G9SQkGPM8Rn7Fo{Nqw~~hF%qqF zk_a>t{Cwx6PoNuu$XO7MtvUqpfQRBM z(&H!wqsij^D8~e2mO6ifGAJq>Mxv&d)H@d}Ns6o5@H1Fw%SIJ(c z;XDe@)%g&H#C3XfTp%63QmPiRPWpW9R*6WF40e*ra!Y5I+b>tJBwPE^V?rD9<6>w-za)4kz?f4mkHFE<1X1Fi`X z87}#hpu2_y!03>2ik77Y0>}L!*D84b{xEsJJbY@Bp3lx%6iE{4sq8;dx+MA6=LZW{ ze6@^KD7c3MmO9RhR9&DL=Ld?BPAK(YTIoUDL=;Vwxe~Qh(U0Ar zE2STLwq!N2p(Z3=2Cuf49y?)3)G^BSbrMEYPeD5-!c~PkN?4u*jq@2Od)3sNUx5UI z)SEh8u?I@*s>%bUz>`SZF+p8)K8cUTNxeCOzGoXT*$|QY$b-KY5fu#n>UJ}*2_?e8 zc||h=#5zKuZEr2bDi0Z-1d(p~DS0<<&M8jQh(g9E^2>!GV-mKkv}(|r#)XHBO;&V> zc{l$K6_(bHj}ehpI}&*}p8-k1yc?>0$l@rNck|z>2;*x7g>emEIG`IZ6&D88K4f7O z$h-O5DuVbwxq=Y>@P&L6#I4-b&pK;#EM87pdsm(jSKLIdO`?D>Lltsu&Qh9-FZHSw z<)&pLi1en#pUB-O!5vu^WS}e?;)|`z@huVwc9krf#P32J6|-!vts;^g`65}YESpGh zu`C-^F2Z+6F~iKVFUw(p%r(!lp(#;n_G()XvuqL}g9T)$EJ}dmx~c(=g>8{|LaUJa zq?N}bS{CDIsMEGkjH7|+`53QAALF?05T0Wa;OXOCo3j+hFgy?M8ulmxz-K%Q2E?D# zh5?SMB_JlQm?Low4=pBUgbT;jk5HcL&+rMJ?oPb^}uM)}le?;lM z1pUs-YfFj+{2^5nK)y4>SOD7?5!zfKum7O57`OjLq23>$7FDz4wIeGO@HxSXy5=3%Hkv=_F{J6KJ+7Ci^yM15EZ3T`^3?u7-=r zsEbY)AB%&@et?=wd)?nBBCXdgW~6qbf&$8N%Vwf7Ev1+{%g4%a%YCO`f?M5GQDE8M z5YrOO$W?^{IbwXAlpL7j2KHnW(j^3WS00{$fF`M z`=cr{`NMpfEEY101Q$bQs$7Hzkz$D%GJ7J21=0YH%xG4Wn!wuD|H&Y;>#HKO;k^K2 z$$FhPphs!Hh!mTlG+Uj+g-{wj-1r% zXwy_pF@&~5X)(SK6h&y0s72K(d2F%}+G{~KWQ6u8^pwQNmXsAVT*c&jVKxGeMpXjA z2T5*$h|f*~!Jv`aeSk_Y_>uVQ8C&rYDk9}N=t@aBlOtNQLntf+tu^wgb5c)1k0(P@ z!##7@EJ5S^6n3a86g~-I1W@=1x?)h6T@4osQx~0=@v%5i_+99GwnE8DL8~`MI`1GN zEz%LDQVUXFZ7BSaQrvQH^>;y}vq=gRet%AJQhj{TRRZ7ijZR=V1SWCnnB!qjq`LxAm@;FV2^8wximI8n2 zy>!L=C3aQCUwXCA2e=@N$gvFJ{pPXQ4$c6Jijx6~lpgnUN(t!t4CIw>b&<_!n@rNv8oAlRz3p&jI)_YGvmD&;{9-@Em{+?92ywlWE{S+6A%5Fa3BPeTdEh z_&o2BSbM~7jAH#**h@dYKHSb!J_q1`zUuu*KL_AP!|g}aa{zv>@5b=Y0a&(CH;*&0 z)-TaZp}5XA?9K`IL~`8~PLtTjuK=s~519`XMKNJ~&MVbv?#G-BBH7ZYE244^z~-Fd zWMK$0ZOAVdE}$efb+J+<%#%8Q!HVkrGky+$up~j+hVw&di|QMWEpYok{I}vq0F2sh z?bSL0U^F-aAULRil1vtS1VFQ6x@=dGWgImZ;V^)I9*V-JF)YeZP)54W@0RKjeQ2MC=@6R2WBBuiU>xv`s(cF<(@TmZ?q1lY>wCd7V zY(R!{KEQtx!;yDBz;ijwHeI`1t@gRXHC3;Jwrt0Tf0oa7KWrRyrr(XW)~c6R;E2l&*>7MrQ@Y zg|P1g){TXv(u?Z2bAB?3l`eXGFkxMccd%~3zsvA%EBC7@XD8=P z*EQzM$z5{7hT6a)y+rSvP5PBecUHie5iJY%Jf?!MLKzy5VQe~4`9!-yn4LJ7l@18Qt5!UDD?v; zw1o*NL#$Eo{JLTCyeG^ajBg$9@i*K_DJa3#V|#wyY}z>Xp>={WNzQ%xDFOSGZc1+U zMe($VSPCDkOpxs&3~0Pn{E|#qk1ZIR? zFJyX3=|MG>dXkM_oVJKcJq@~2Dy3&jR;#yR;7Pnptrl{;fI3FywN6h#`8(l4#ABdX z(FBdN0bEqg-}y9XgXdAt(iM9i#jdJ6j|zO5wBrS+i_U6%EKdH;mr-*ztd$jwyicCL z^BfTsd=RhO`p+hmcpRKpG&An3BNX%TrBbZ&Nc1;Bq_gNs^3K}ZBGPI{B6;UbkQ7Ybq1uNmj)KWMS5y(k)`G&g zmir>mja|isLA4KA7zL7d_E!t$>xI8OwXJewMeFHVGNNVik(27oEfgO)2_yd(ydq4|=i|@gC!~EMRSyc_NTn*d@R?qT z_$?PJd0DV0%=(RaM+C$nzPyz`LilBm8d!2>+=G!|V9AXZqf}FX05i8G2*IsW+KsOT zMdJx;P>ZT!vQM5BPZ$SXDe#xc5jm{kGoq)Uw$~>}t3`jk@SOkB`LxYPX^9rGeVbM5J}a#q2z-Hd;JV zid*hVy%9vZ*`i>z2Xcy&>JwHwkY6rb$VuL^-lq5lAy&JQ6&)g0dlD6vR*<(4kyb$x zSnX+$6vS#&`;f&^5UYKxiZDJ>Oc=W)toEtm!l2rREQ|tJ?Q2y8@qDfzgxRFtV z<>w*Agr%a4qq>5J^S2Hg;ASGr}$JD2Q^zvRH5}5?l>*ut4}M>3-c21p-by8uhr`093X^@>pFZ$w3bztyD|0^FDXJzw zZ0QH83HiQLX)(SS6oqSVM=h#W$qPvqTzenrO2M^sc4#dLvD$AyPf3hyO;JxD(8#wW zDE@ttTVYWA@2Rvlhq6ej-X|Da@ewK_k?Y9F#N3V`Bn6+z7B3PPBT z;h#S6gwo{%I8GE0NU#Dpey`G8_G(Lpm7AJ(fk!7X!$uT!dSZVxF1B|J588ND(+drm0eDR%=_&0?1k-_DCVzNzRQq zHm}ENN}N9M1F#hMOaGg$n7_oXs`yLN=>u!khkqNw8~*vX*)Gqet* z0Ou9-y0E8Yt;Y)gazw%4^1Cqkgn|3LL!DYv>7Egue6GCi3_09Q?D+Khy*A5)ZW!}; zJuV%Oj-2TEPSd=K-fW$Co%F%rbdTwarAsZ`JN=UsXG1*$s=jV$8I# zFNO|zvGI!Rdr@tWQB4mF4-CJzQrvRM*>TZIX!RoXWwi=ZEFC(&CvcQ%3lP;q#F--nw^lobxWPHz!a(8R611GF(omAOKtoQ4JUQC9)2&?1wvwF8& zs&JWpez=`}uVD_XtNb&)p3!z&%ox=XNu5LJ-yLA{kiXLFcz8GXz9s%>SjKGPYo8cc z>W?-0y&hi2Q0H~+_t%AYT6WtU?DyBe3VQTnzJb57*=h7WyX8({G}xOd2mY!DjaJ`u zqnD5St2%wJ+xG_ht@Zo;kvX#spM(aI5g9pzv9y%xTm z;dL7I8KZH8enrD8(Zk+}fxl_C)A6vU#gu;Bx70tw#Y->S{rURw*-meMfIDL@4mR!9 z8y#!~X?rfJJTJIowoG=XPHzOQH(I3q^z#{!4b(xZBNyDqt%O?XBU0;XEp`{&+@LsMC zrv|3kIxyp6GO&4uO3&cM>a#YyfdNd>I9;I;*X)sFfU%+4ni%r6J>yvP6)L)s<`*=l zJqJZ>+4HtHxOc-=f2?bE>kx{GSqUSCM%K}t83TQ%$>E=4d0yAuGd+#l?o{`LXLZ_B zo!;E^0B`g}N!9_BtkVl(U=c7JYjA(^vhCMEo@2e)hEhG<5!GKFR*%VQkjfr0dsDXQ z&9XLN0C0TGd<%_@c*YE7QPZ;q`_}juKqu$x(e#WMsJmU#kW>B!_e9$>j@K=F&T8Qw z^mj$8L#n^doi{Mi9_?dZyAaf7_C5GoZ*>|57wrXj*C+aefe+>zq|8JJ>LdLwnixax zJlli(13PdE+S6&+?OEtRXc#t;sX%a0DQC}<^0qogFdJ7es|1~ypD~-5!Y9xL%QQVS za#jPSj?~S0!*11$W|Isp>-I*fnTFgoTeE>#JLNAo+eZi3F6$$Okjx3@FI3TPH*HJ~ zukIPWITPjyin9@&f@*oNuc)JG&XW1|H^uI@;mNYwsBJd-vWliqlUaM`o!AzN-Jwt5 zkKxQNXI~z{AH(_H3ijn&_+vO*R#n^*9KUTk8p zvuE*zj&?QJMizXbeIf=+mckdxMKV~B7+)v`YxMoq)XT7Q55Vd;2k7Ho`na1uZl{l1 z@X_~2sH}IQ%UGOnsPrjT@)Rp|s&8G41&vi;tz*>INk+9nHh!-}4%+>A<(#A+M~TV+I>V)bKn>Up#ro~72s ze}Pi~gWKrz$(#=SwMZdo1zL$Ji0~?W{7V#4jPQ?u6%pK8o?5L z!i5P6Z$}P-wNgC?ihm#Xcin~2@6p_=1v8^|N#d#S_DjNjt&xqvUe>?~hd=p$p*1;y zQ5IeJF{#{49LLBWy1$Yy{7d~6q?52#d-vaQAFaNT(?wRo9PGOSo|N+=R-f}S{)B*f zL2T~OvpIH7F*ettTq!o4HK2I4n7mrgSqyc(M$hD% z3Nrb|)0)X^^-LZu$fP?gCJ!veNM5IB@;wEaeAj8sQ S*o-zQ48RdH#kTr0Q~w{jcXIIn diff --git a/ble/.doctrees/features/cohn.doctree b/ble/.doctrees/features/cohn.doctree deleted file mode 100644 index bc11ef70cb864626bd21c061f11592230c65e86c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65664 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 B_3Z!v diff --git a/ble/.doctrees/features/hilights.doctree b/ble/.doctrees/features/hilights.doctree deleted file mode 100644 index 13d4fcc619b33e5dc263a7eddddca2e2770bca84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7767 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 XO(Zq9L+_?DCINa$uB56aY&HG|e~~Ts diff --git a/ble/.doctrees/features/live_streaming.doctree b/ble/.doctrees/features/live_streaming.doctree deleted file mode 100644 index 5ca1f8eeec42a6df726fbe085f3f59dacec644f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32262 zcmdU2dypJQdDr6}y3^_Ovd#ueX8e$KXM68_l8h~3oA@Q!$d-*B0g9qlv%7OQGuqu* z@61X%z#+z{Vuc}b@EY={kb)43q*5^?yb6c|skp#~5R!sQs0x)z0(t$BB7r<8yHfdm z{h02V-JO};+vDM~_I7)^zyA8`Uw{35U-xwX{OB_;J+_Yh7jE?%wo|__Z&oUGuVVS_ za8t!Aw`x{BXg}Sad%XQvdp4YCn&*A5)ht`>a2;}#ZKqmkTJ`o@+Tk>151gt$FUpVm zRylCIdQ{vVwa4u7x3p*NiEuP)@}kB1{wr*5^6w@PL>X$C>lDYXK$kXp3SsrbbGc)4o& zJ`(YLv~Je;w@sB+L;Wb3<+Dv|iSo3<@xWZBM{RqneWg8R@3uGEd&0d7;J{xfRjq|3 z%M4mg%U`IXT}5BEYrg4&*Q<_gXqC{q2{3OiH_e8vi{ibfY|AKvc+)ieR-@rH1K$Xc zW|o|)6Ra44XK;e-n^$(ss!_8lj%hTiX0YTnYd#8=ZNv19Q|FzaY~N(O$!nczm8_eL zBWBqudEQyWYZ_*K#qdD6Y4}cHO$N3Z7-qR_HBjM+Qx82ddveY=ed0lXo_EJg_>;(* zKmxj9fp^1k`zq>e`&H;+`)a`GTKwCKfBW!n4!vjJXcz1~_D$%A5!rj_k9iJrdo;Xs zgoIP6I0Rq_w_*h*pp6djT7j`_1py$6J}{esRWTr8n~Cct!?&!-GxvMvsbe^njoa-Y zX!wU07M8t6)0;1QwFRrb(DE1R)_H%y_RbdquRtIv@IEbg^#aR!=b2)W3x3v~32$Ew zOKl~iJ9HTl1OaIaBM4(!j&lg$!C^K+f@e!iFd9!sb)I_nTR6f-T$rE}j-d&yrqd2@ z8&uQ`688ZLcK`-6;re-vxtPGLT%a273aVE#4Hszw4jVDd9bl^rXf&#hZv#>oxJzEO z>YeuwOX&?-Ty=dppP2RGF{!m=BHU`#F(WihfW8Pu)y$x)_6d4YggU9|fO_L27&xTE zWP|G%A%~$Y51%<1m^93chcNHlPTI%!iw)1I2mYOBprI;8*{jzvmlzHxct~L?%J&VH ziHj#1y7pW76f+ZE)~!aZU*E1v!(JCoHLQ9C!@76@aMD@7CYw#p#6&pe)Y)94Mw0yt zY$BTpr}SoOY`j}%BaZ#qaD?#^ZuEl+<|up?AhEWURA!gZOBd5L9vdQ5G`zgWywqlj zpyJg`r{1>T7mh;+!Ab)Y{YF-9GpUISfM?kW+E22_=gnpvUrB*L5ke`p!!5DyW25Q` zp=hVTlp$h;JM^1W3D$yi$~*I%$W+ApO?rSA?g|gp3@;4cV&0>W-_{ic^M;_DNx4Vu3|nSxKtNA4)JzL@a2Ccu7Zu zhR8!nMCN9b*Z-o#wmY(Z-8zBJ?HxoEC+-;KW5#tit8TV`c)A-vF|E^jAk^K4a_Jz| z)FOd&SJxhkDaC0Z=p_czeR=y)AvV@Y`4CI>{ZCrsGZDLwR0+-FzTFC-aARdO?6+Lih|^HC~bRqX72us-p*|B-08aC*%`gVHw&cLv7;8Y6I~Usa82s_p5`87> znxy_Huqgay=7~*V93U{@)Xe3WEAra;d4nY$K5Wd-FW`Uj)B}HkCHf0+dFw%|RxQHo zhE*DKwj1?j(Jj4v!Eht<9B%HHY&)DR!!~s)q-YUJ2-n}xc2^)$Kb-QK4hDo-Ei%#v z24I>5tATLd`q-LJf_hcSI#vXYB$b>(E*C zigiJ^I9PzEr;iklBU00JSa5|}_!MiQMw{z+P#!@Ds@y?%7Eh+>Nzr!@eWCb@mZ!T_ zz$Te>;RGwj{6}S+r<9oK{!EGR_acFGotVN+V6njc)lF14`x>*{!-)&E>S4cucno4` z7%0BgJZG`4|0oyChod@}&@b0DceoRSfW-|&*q{b`v~5zX17R&x4uld5Ude^;6t~pE z$ztG@iwHgie%t*BYPksepQSN2SrT>7hll|lD7hRU_$|Q?>-;GuQ5e609wUrALAQp? z5}6#Ty>TH1p>*G!+VZ?_J65&g&pX~i$*e3}3-{l5;^D>p#@$tf;R=Tq7p>C4w)<98 zLWA$MZTGM7)mP)jeNiwg_{W?-086)Iv$V)rG9Gg3PGRYm+x8z=lzh400uSzY)`GE{ zb2C<0TCx@w55;-<-j9i=n??T}D3=Z%EX8?xc`bNa$duC|!IJgr#Y0J!Hf_kl6sD}n zB|>WVfC$ZK?6Ib&q~4B7CbiPYDRR7pbuHa$o6gr$2lgV;m@+ zOCCG}r4Pk0jjXnC(<4nU@Jg*E&dm`yo|6wIF!|RSw&^>*MlKvdWI1YxqNN&hps&U( z^2QYKN7sbO@UH!aa3AJe1Y4oxyy^m`XtOAP&D%k(dM*1!&4RwL5%+WFGH6o10`gs- zozK0Fvq>^Xz`du^BUQDPXPwGHb&_XQT20KASR$!=L2Mp8eTw32ttPFDBqJ7xztv%| z8;`auOvDxA92O0dPF+{O{-w$KTwe$pI z2;}x~!4v==P1L^X=!aVa#WZyGaxdS8a_R16A_mfD{sR8O0Jl$;JkOn1m}UciE$55J;t zGc&I~oaCR^<$j=p{aN?7wKVD<3>;d)1MuD7jXgS{Jp%N`Ra0ibKx6$=3FcR?iy16_o@6wmijF1O-&lHyw3+oLOt`38!dGtbVwcZ6t}nabm#?cNhI+ zKAir$?iINA3$XN13+PVW}`j%9r_w64eJU zj~1KTmuR&9Cbgb4h)}+4K!mTr!VG-8BA~%nax2BsN|9NW@Qp6-`V{K%u{M*G`w@uC z$AI6AzY@Q~Ms>G!N!z8Rg(Ig=KX7kktFj+zd>0_O-U?3#CpAvksy9%f$X0dtYPEIP zr{ni{wHm@ON%J(8?(Ww}xVPYk7?@Em#qp88I2H!!-6)hc@?en8>jo(Ws?e>i1~*3W zvrx7XF)JgUinUXx>_>L#of)KQ(2-sGn(TbiE+zTu!zF1xQ&$MPbRWx_4T8xde6x$8 zpr9uy@p>TGHz2B1C>0Ph;mFMwjw}k53UNG!B7XV~5Gf9#K4fuB+{HFNY0}VAlrWwi zL>N!y6UMEFlrTP+Ul>Gv$if(Zh?`zgM?}AsAU-{aAU=^Ph{#n5XN4_x(hA5}ImtF- z(fX}1i^Xk!&Y0zU#pW23WE@=4tAsXfe>uT6ifu4v(=sUkd4%d^we{3aJd2Xj-z2Jw zTM0>JDpb=qP$)w+?blV4oFchqYI2hnx{BiJJkH3%jHGtRZ6*;Qo`8nWX$#scSs&)e zus)|?#Yvg(x< zXx{`6IUuZ%-1Enz8tL>%XzS-vz@qG#E()6I{O2>+Cq*t|5j0r(8rP|{yFFqNYvBI5 zzoX6F86KtkEb?~o`4(5_^KFtI1Rt(3r*D(=A*6Ow2@0F{j-*X`v;DYzKNFE+Zr`=Z zp*@J(cP+;89fEFGw@>r2?mo)BC_}c}X!*2Tt=#mm9}AY)3U(WCf6G`f5SMb6Xe$Ek z?h+n&v@kUcQcA{ejs(-6C;7&x;pysBxE)eX!W@D8)j)A?2d)0y4)+xpn{E?j-B;2# zpT1ogecO$1m)t$<^D6fFD)wox&#T$zHS|fNy{miRUW>=D_4o2W#HD)xA8TXszXOzY z)t@d_Ve-G73Z+_jYA)XisZEL ziTaSmq1p4om()@ee!eq^F#bNLFf0e- zE4)fhNOFSeW!P^`WYjFMS0tG1u;)86D5W!iJwKPIE?rX!<+2xr(v?d%muAn$Vxf^m zN)78`#&@(gVa9hnSMrb+dY@+e1B1xqzHFI1IG7nPZJDA79?!=O`ABRrLp~`LWg&FY z!%Vf$WHdlC2`gtc> z#jT$w=o_%~qV)cLKAv=rjk@=Dnik zuHMJ&0K0Z_Y>w%^k%({D`8@d1cM?4tmkb7AmsokW4VAjB(;@=3gV~YV5uyl3xym12aXgz26qeN0UWCTGjEjcNPFzQF7s8$y$Pc zAi&|Bwo$b}|os-Xe4*#`5HN?%*d;AF?>KP^XZFmZF4VfXTjvv4;v}3***< zN*MF`g+bJZEQ}n%&wB?E#9f(!P{Gd|#AXE;q-uKue?PeA28UPnE~CxKrxUDqghV?s zD8F)mkf@cYuJ>X=xE1tC7J=F zqZbDe&*RzRS&K~$k`;TY%ZZ# z342Qk+nW!c;U0Vnb-o>d8q=y)t)TmBd9&JCFAom0ZM^nqYIe78f;|H-l=c+v%~g>$ z`|hN|+WR7!N4zhmtT{jGwS?V*AFyL&iBjX_sstzTi8*gTk{i*kK= z#@S6H$3g~0?tpF}QD@8@A}DffJ+g1jXbF+W0YmN-%cp_u&4ht9MZUt`{is}G@8BTy zY5;g0(HbrkPYU+>gyQK0Cxb!p^`J5c6pJXghETi{m?2T;gyIHdKa$asI23!EJmDBu zn0T4Kz-)<05N1(dhWN4UYTOZ7g5J?mb6W2@$#@eHBsnkdBOECN!Nf!M@1#x%*8Wo#P&&A}fD&GN zRxf`rFEoB!!W2^z!r$j!D$dA_B`R(I=~SHd61z?^{RNl45^*+YaOrPXU9&q1OF_O{9{%*jlibZ3|Kiz6+Cjbv z1(5!o<vC zpmPF|!bh_i?T7=hw}In60S)QCiyT52Q1RH&zh#3x9y?M~R__X_8WB5^bFc92FsG|x z?z5MkoUu`|}QcCn*h z@2fGwp?e<+rH$7_?C8B2*=bl%?C6)X^GR=l#Hk~*i-RI#M{i?UhZsBhQxNRC|Nn#v zrS^Zv#-y*KNX~ExQ6I86v`A4}?C75c5yn6EFN`1L7Y0!uvM_SQjwUw`fQoS{l!^+a z6^0)>x-!9XN9?F0g9?%i5IedtQC-|t&<#(Tj)bb&heGM9W)-m`YG0SwQAe{Av7?UX zN-P7$j*bl?nxomGS&P_FB(zxUC@B+VG;~qTOxs_P!9IaN#Exi~^fjVWYws01N-reL zBl&ur7`1q@FJ7#V7d797R&j&qB7I{95&Jf%L8QN^skjO!qc=x={*ECHwM6PZb(vdq zOOP!VqI>plFV+Xn5M!pnlD zS@&@fAC5htbBC9)SBBpFz^%ii$`135DT~CC>{G<+HSh$JU2i z=-NkI1W~+zjXSkAQl@cml+!5Ub~Cz7(g(>ad5TrFSW1yD&@0Lt7*V4rAg*LQ9!@na zx&*OUwa!@(--d9~HmlLk(QvzU!3l83BE57aGmVC$6|2-*Ms?G4Qx$q%+`@>I35XxJ zAfi#Yz-rp5LqxWyp zq%|s|j7mG)lX#LK;eHV#DV*kX6%VrX?)Za5;cy$Z0a){GhzKX+<0gSExDR8wg~M(k zaoh+HZovJV;m)R2_L`Mq#iCozPz_zea6BBtsgt<7iX`GxfK_={$F$iByrN19H_&mq zTPm$ugHA4_11YKaG)uruZB`T4T~NwamcqbI-LH}wzSXLDMcjCRT-$IYrRQ5ky(B{k z4zWDv;3`T6(XGXbXimu{60nzO=zJQ$iGJsfhYPjR

6xZ>4w!%r)pATa7kPPcn9w^ zIKnIBxdKS`=Nl`5?bYYK=JG-tr=%h$V*ojexDAi4=42N=SdGHon-4;s)6J!Ff;^=t z^4Cl9bc8uU_N>*McdTHE)d2;7)9q_jR5lTqC5)mh z;Wli%3(N~e+gY}&_y_!sR6T!`eF+$lieU$-3OKxpeC%EqRA%zgNVm71Z38p460RNe zgB7q~TULNdc9oIqY|+BuYtm)^su75JzF7BQMSgT81tz8N?TJ>{u3v7tZuB1*d zegQ?C-0EO(1Vw(zGy~3dFa>A@(63P86}s~k2dVCerPA@LEE&|6q91e>C0!|tn@8E< zsyHQ@j#o9=;ZXQN2QQiIjVSz}w~b7;xdlIH7)$KrFUAjh@s%;dHp((i z*s4Y=+@eE?wRsC}0p#-=+RIZ&W5|45h)Ks$d_unjEZ@6eK^8SI1Wc1IDX_|n%wwZ&rr7f z3gu&$lZ89S=(#uGk6hA89?aWUGZ)jF`9RKQ9_hE4?mZ~+qiW>-^hTC*HuB7{8acNX zJ$WF#k&oqUO+N!{`@s`OVnyio+C@d!O JZE&RN{{ytE+dKdO diff --git a/ble/.doctrees/features/presets.doctree b/ble/.doctrees/features/presets.doctree deleted file mode 100644 index 8274f7236c1c0a243ee3d6d045114be28639ff44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57753 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 $8G;GdP{*H#X7&9@t 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 RQDuYFaiY1%yFeWMe*mIJ)58D& diff --git a/ble/.doctrees/protocol.doctree b/ble/.doctrees/protocol.doctree deleted file mode 100644 index e74c1d7432cd2127035d1760a7ab94081ff07ac4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3747 zcmcgvTZ<$`7Vhbus;=rw^+jh`nQ6B~)Di72ANFBca0NwtXf54gkX?05qB5iE1Ra@? zMnra3F94{@laPt#nSbovAh25@%~^eZ z+wj;5m9@vILtWZ_>>p6yb*!+GuWY&A2U=MbE9nCdSZ+V!^B{X==SyGd(ajm8T2Du= zAGK=Imh0Bqjooc2GVaI4gt;ANtrnBQ!m41!mPky{csrKN7!dK^$yi#w^^ziAE+#C# z(0m$r3b$?9ENpo?pnJ4O_i2kx+}#m0Fr$g&qr5iZOdBZo?D!J?dJd6&9?uJSUc&P- z+)A&|DV@-(@K>jCYw5QhEXh@oB`a>L5JVe@g^I1_s}QR9o+OCwxn2_>1Rwa(q73Ws&fykd+kr zfF9B#?s_SkCp@?0&o_ZVmX}Ea#LlFe_=W3|ND}1K!tK{rw1i$(q!X@r;?FnSPMJbR zW%3%lJ4nr?Nx`Xa)=u4qQ{PyRfIF!DcX|b2=3INW9+cOcU{v=Yh;&xf0qVHFJ^E?D zA}@!9;R(R3he#YKo5cazfG|#6GA&eLhEvXLfUbh%5~rpG>ThuK5|i}HF*#`50Q>*i z*k42Kt+n-&p-1o0_%Q&r1e!=9%YZfmFfsZN$?$JRe?Q-(e~js)1%14rPZsp}e1kq+ zP*kN!6VXGcbh#c;N`6iRf4v1qE$qveNil5=_%0Z5>t`5n2L}B2|1yBLbz~)(SyNMP z&{pcp4&-fBp)czU>hhBdQrkr6Rrj>jEHko%XvqGV=B8>Q9jh#pRUXznWm*;?^=`RA zTzz&Mv`B0 zxNp<#5R>h)E%^N=JldDpCIscGwnM?+z+YuiVlpZ}IMAZD;KY`kxzA zmo61(j^4kyv3AlO1_J;zL-3D;LEi04mdy&Z6u3LVdJ{dtJ*9b!i6BA)0Zbq!w6L-3 zR?|Rm2kJ_W!Yk&Ux^BPO}hloI_R_DfQ3 zc#)`Ro(4P}@_DWdk5*5X5Q%McDU7J_c@QPSgi;4X!pwq$+f7~|$M#^1fhJ{=VQ;@? zi<-{q?uIuAF)$(k$qjOzM{PF>#_R>k zghBU^8SW2cZEpTD8i8!i@@q>Nos^!9yt@-PO9j9gS)L+17UAfDe)_^|e}X>;dK#}? zA1KS~Uu>=qQ$)b)1=nYS+i58S**_wiN(k$tB_M^8FdX#U2>_W!ZEm&(L?#aiS-3-U zomn=INX$s$0eEjq6>z_2Qid%1tUyv5IO?f#T`eQ2Vpa_$?j$A*r!fLwB^$h4x)7%? zFas^hvA!HM>LP%t1p10>3Jf$=;W*R@Q%u(QL>j;=6{}J)Oyn0Hn865>Ab+o+0] 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 diff --git a/ble/.doctrees/protocol/protobuf.doctree b/ble/.doctrees/protocol/protobuf.doctree deleted file mode 100644 index eb42c84670bd8c026c037d40fd79b7be4a73c8d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446901 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 diff --git a/ble/.doctrees/protocol/state_management.doctree b/ble/.doctrees/protocol/state_management.doctree deleted file mode 100644 index 2d3bf0acfba7602ecada44602d58d01ef6b22f19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7615 zcmd^ETaO$^6<%L<*E4&!<0X;pq#`S^t?bU);-X-J6BBNZ@e;)j1W?rO>8_dTb>Gre zy}R>(WJ^S1rFu*Azym^pDB>9*@xTK=geUxj6e&_9egNO8>f4O%k&Vei#7Z+eRb6%J z)T!@$=hW%Dv%mSvnHlq^S7a)Jc)#cRew_GR7W$ZP_V; z&ThD|JLG0r8jGPvZ}EN7;UObFEUaF0sS7PsA=Y%qsnr%o^jxX!wmupLF)z0BzN@>g zQd!W?6?RFxIuiJjb};XSu9WD+@7dUm?5|^fo;HoX>)pxtfX3u{Ub#bhREQOEN-T=g z;)pn-&uu{ixz!K(R+=R$@se;$(%zh?-dit|(DwQ3hx5Kzu*Pkyvs!iN)i)tMbJ;uG z^`X9$g|W%{Lmrf-fF2jE9^2x1+O2p2TNE$Cl4tRG37>QLT!8xG6{Gg19WFMY&MegF z=nkyu4l_3u?eqE9cX`TVs4-+o%#`5FGs>Nl%H zK_-{%)ho9dB(lk&-;2G(D0~$_+~w8qOBXSo7R1y+=nkRD_mhnAeK$%&e%aXgyja(x zN9_3i-QRw}doG&Oe4~AuVn#2Phv4kP8twCWd2;s;Hb;6 ztm|2Wua+&wkL6nJv9C;?!W0bJqxf+(SLCJnS0?7Pmff3j1mfpUY<>Ay))&Ju8{d0; z8;eMHO3Pll_z2UUn&yg+@B==T)vmOT&#;?ewS|5jhFm#e0P3wGT0^>^J$mB6E27q8 z{a(u#3|kOMNv_x)VjpK=Ld-m5X~xkhH<%~fct|~HD*Q*+Aju+x9MkE0Zsu>WUax0Q z|MmLxKPgZDi&^mg-A`ID`qQIfH0h+3F}v`EkEg+f;>jN{==WAOIS}HH_+zy}ePsgH z53#1_rYg^jJq04?)^6bQghkvB-0pF3Ku#u+9!i!#7)gXyAn=kxwo0F4ALKj>xGa5a{r_R74HEzHH&;k80B$!7 zM=S;GGnNbn%pD+$Vls(1Qvtrt^WLz>z78+hV3+K_uUP%V(1FFt{)1fo#lyjCQ{lb&!={}kT{Ld>x6bZrP_HG z^QLE22d&H%Syg*O6nLwQ^@KQO%x99;vyTIk+P5Asd&2~k*S9^q$_ucfb+f$ROwips zaOh3fICMiArWav>+Ri!KD-|1ah(dYzqJsD&6kb9CKL?q=#}0BBI}8S1}>Te1_Y*8Zj>nNTo7{ zlf+5axrw+rZphoT8O1?&#D$jqyNI#MwyngyKnet4j6}I4h-f2p2;&MjdLt#yAkvF_7T)4P!P-%yi>c~3-558GIqqMn0y zky#Bzz4bptT;uMOr`8bDG$td(Dz_gav*j`mDv=KADobg)d{X(qbW#I{G>Yg|DnRkg zrX<)BYo8&o*QL-0*z!m#vq2GY93O2$t4p9_LqDT3HIXK$@+k`~|A6P|P-7mzPUZzCcX}a{`0PtG!^C)#{ z2*R+Y19>sekR_AA71LwDO~>DKrIP1<;_OERsa2E;6Um+SOoI|nIlF-jEJRlvKaeg8 z{MbmT<$UEDaI-~hMxxwf{0u^u%3;m`6(jR@VV!l&20=HsO`HL|_rrg;U@ix|4J0XN6L!yu7uAZrMvmO5jG2 zWW%jOpQMpS0gQA|?!xgX9LF*AZ@zT#Yp~~XHt;6IQ%@uQYGBp? z0c;5sg;=bk+&;X>SE9InOrHTJBd2!HdIOG32_Xky#S!i@`;G{PBE$#yJsKu4;Jzp$ zT@41Jc0^>qnv!8PkI=2$Kkk}g$`b+5z!j8 z*UFb-0Bbm~w05A6@OYPAP3dEnPT;?QVt|qdoI^RbNNs?#2BiQkg%@pr4YEz5Z+(2M z*S@SmH>3^f29?t3Js0}tsnh;GzoX&gI|uj@pNUU*zDccb(ATf%>mI&x-J$VRQ#Y}~ z%s3FA9hkufX5c|CUc_rAD`!!BDmIM}@wt&;qH3;}+UIT*SwcS#Q1x})V64p>MozF~k)}uRP5`__ - - -A model used to represent a contiguous range of integer values. - -.. list-table:: - :widths: 10 10 15 40 - :header-rows: 1 - - * - field - - typespec - - value - - summary - * - start - - int32 - - 1 - - - Start index of the range. - - * - length - - int32 - - 2 - - - Length of the range. - - - - - - .. _proto-requestcohncert: RequestCOHNCert @@ -3205,25 +2547,6 @@ Returns a :ref:`proto-responsegeneric` with the status of the preset update requ -.. _proto-requestgetallpresetstatus: - -RequestGetAllPresetStatus -------------------------- - - -.. seealso:: - - `Source Protobuf File `__ - - -Get the superset of all possible presets, regardless of the current camera state - -Response: :ref:`proto-notifypresetstatus` sent immediately - - - - - .. _proto-requestgetapentries: RequestGetApEntries diff --git a/ble/features/access_points.html b/ble/features/access_points.html index 9e25773d..608af6a6 100644 --- a/ble/features/access_points.html +++ b/ble/features/access_points.html @@ -116,14 +116,12 @@

  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/features/cohn.html b/ble/features/cohn.html index 1e876ec6..27a04b12 100644 --- a/ble/features/cohn.html +++ b/ble/features/cohn.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/features/control.html b/ble/features/control.html index c687d9c1..8ac43fe6 100644 --- a/ble/features/control.html +++ b/ble/features/control.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/features/hilights.html b/ble/features/hilights.html index a95c85b1..6526712c 100644 --- a/ble/features/hilights.html +++ b/ble/features/hilights.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/features/live_streaming.html b/ble/features/live_streaming.html index 09591fb4..42b85af7 100644 --- a/ble/features/live_streaming.html +++ b/ble/features/live_streaming.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/features/presets.html b/ble/features/presets.html index 045070cb..64c72d9e 100644 --- a/ble/features/presets.html +++ b/ble/features/presets.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/features/query.html b/ble/features/query.html index 230bdaa9..1d50e109 100644 --- a/ble/features/query.html +++ b/ble/features/query.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/features/settings.html b/ble/features/settings.html index f0f78f28..713c26c7 100644 --- a/ble/features/settings.html +++ b/ble/features/settings.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/features/statuses.html b/ble/features/statuses.html index 182cb65c..3595abc4 100644 --- a/ble/features/statuses.html +++ b/ble/features/statuses.html @@ -115,14 +115,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/genindex.html b/ble/genindex.html index efc3732e..dec00517 100644 --- a/ble/genindex.html +++ b/ble/genindex.html @@ -113,14 +113,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/index.html b/ble/index.html index 572cf7bc..0601a38a 100644 --- a/ble/index.html +++ b/ble/index.html @@ -115,14 +115,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/objects.inv b/ble/objects.inv index e89c7f5e1db28b59abe7c11ef0d84124a26626c7..a11ecca8b905543e8d021c0082dedb98621f2391 100644 GIT binary patch delta 11668 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 delta 11779 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 diff --git a/ble/operation-operation_index.html b/ble/operation-operation_index.html index 06fa3531..002fa0f2 100644 --- a/ble/operation-operation_index.html +++ b/ble/operation-operation_index.html @@ -120,14 +120,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • @@ -734,11 +732,6 @@

    operation index

    RequestGetPresetStatus (protocol/protobuf) Proto - - - - RequestGetAllPresetStatus (protocol/protobuf) - Proto @@ -834,163 +827,158 @@

    operation index

    ResponseGeneric (protocol/protobuf) Proto - - - - Range (protocol/protobuf) - Proto   s - Setting 179 (Trail Length) (features/settings) + Setting 128 (Media Format) (features/settings) Setting - Setting 59 (Auto Power Down) (features/settings) + Setting 176 (Easy Mode Speed) (features/settings) Setting - Setting 193 (Framing) (features/settings) + Setting 183 (Bit Depth) (features/settings) Setting - Setting 189 (Max Lens Mod) (features/settings) + Setting 191 (Photo Mode) (features/settings) Setting - Setting 184 (Profiles) (features/settings) + Setting 173 (Video Performance Mode) (features/settings) Setting - Setting 187 (Lapse Mode) (features/settings) + Setting 172 (Duration) (features/settings) Setting - Setting 191 (Photo Mode) (features/settings) + Setting 187 (Lapse Mode) (features/settings) Setting - Setting 175 (Controls) (features/settings) + Setting 59 (Auto Power Down) (features/settings) Setting - Setting 178 (Wireless Band) (features/settings) + Setting 167 (HindSight) (features/settings) Setting - Setting 134 (Anti-Flicker) (features/settings) + Setting 162 (Max Lens) (features/settings) Setting - Setting 177 (Enable Night Photo) (features/settings) + Setting 108 (Aspect Ratio) (features/settings) Setting - Setting 2 (Resolution) (features/settings) + Setting 3 (Frames Per Second) (features/settings) Setting - Setting 173 (Video Performance Mode) (features/settings) + Setting 83 (GPS) (features/settings) Setting - Setting 183 (Bit Depth) (features/settings) + Setting 177 (Enable Night Photo) (features/settings) Setting - Setting 128 (Media Format) (features/settings) + Setting 193 (Framing) (features/settings) Setting - Setting 190 (Max Lens Mod Enable) (features/settings) + Setting 135 (Hypersmooth) (features/settings) Setting - Setting 167 (HindSight) (features/settings) + Setting 122 (Lens) (features/settings) Setting - Setting 121 (Lens) (features/settings) + Setting 175 (Controls) (features/settings) Setting - Setting 123 (Time Lapse Digital Lenses) (features/settings) + Setting 190 (Max Lens Mod Enable) (features/settings) Setting - Setting 171 (Interval) (features/settings) + Setting 121 (Lens) (features/settings) Setting - Setting 135 (Hypersmooth) (features/settings) + Setting 134 (Anti-Flicker) (features/settings) Setting - Setting 122 (Lens) (features/settings) + Setting 179 (Trail Length) (features/settings) Setting - Setting 43 (Webcam Digital Lenses) (features/settings) + Setting 151 (Horizon Leveling) (features/settings) Setting - Setting 108 (Aspect Ratio) (features/settings) + Setting 150 (Horizon Leveling) (features/settings) Setting - Setting 172 (Duration) (features/settings) + Setting 43 (Webcam Digital Lenses) (features/settings) Setting - Setting 3 (Frames Per Second) (features/settings) + Setting 184 (Profiles) (features/settings) Setting - Setting 180 (Video Mode) (features/settings) + Setting 178 (Wireless Band) (features/settings) Setting - Setting 182 (Bit Rate) (features/settings) + Setting 192 (Aspect Ratio) (features/settings) Setting - Setting 176 (Easy Mode Speed) (features/settings) + Setting 189 (Max Lens Mod) (features/settings) Setting - Setting 151 (Horizon Leveling) (features/settings) + Setting 182 (Bit Rate) (features/settings) Setting @@ -1000,427 +988,427 @@

    operation index

    - Setting 150 (Horizon Leveling) (features/settings) + Setting 123 (Time Lapse Digital Lenses) (features/settings) Setting - Setting 83 (GPS) (features/settings) + Setting 171 (Interval) (features/settings) Setting - Setting 192 (Aspect Ratio) (features/settings) + Setting 2 (Resolution) (features/settings) Setting - Setting 162 (Max Lens) (features/settings) + Setting 180 (Video Mode) (features/settings) Setting - Status 23 (Time since boot (milliseconds) that the WiFi Access Point scan completed) (features/statuses) + Status 33 (Primary Storage Status) (features/statuses) Status - Status 77 (Is Digital Zoom feature available?) (features/statuses) + Status 118 (Photo interval capture count) (features/statuses) Status - Status 27 (Is a wireless remote control connected?) (features/statuses) + Status 114 (Camera control status ID) (features/statuses) Status - Status 69 (Is AP mode enabled?) (features/statuses) + Status 60 (The minimum time between camera status updates (milliseconds). Best practice is to not poll for status more often than this) (features/statuses) Status - Status 59 (Time since boot (milliseconds) of most recent hilight in encoding video (set to 0 when encoding stops)) (features/statuses) + Status 54 (Remaining space on the sdcard in Kilobytes) (features/statuses) Status - Status 105 (Camera lens type (reflects changes to lens settings such as 162, 189, 194, ...)) (features/statuses) + Status 117 (Total SD card capacity in Kilobytes) (features/statuses) Status - Status 98 (Preset Modified Status, which contains an event ID and a Preset (Group) ID) (features/statuses) + Status 70 (Internal battery level (percent)) (features/statuses) Status - Status 29 (SSID of the AP the camera is currently connected to. On BLE connection, value is big-endian byte-encoded int32) (features/statuses) + Status 11 (Is LCD lock active?) (features/statuses) Status - Status 38 (Total number of photos on sdcard) (features/statuses) + Status 59 (Time since boot (milliseconds) of most recent hilight in encoding video (set to 0 when encoding stops)) (features/statuses) Status - Status 96 (Current Preset Group (ID) (corresponds to ui_mode_groups in settings.json)) (features/statuses) + Status 76 (Wireless Band) (features/statuses) Status - Status 79 (Is the camera currently in First Time Use (FTU) UI flow?) (features/statuses) + Status 38 (Total number of photos on sdcard) (features/statuses) Status - Status 35 (How many minutes of video can be captured with current settings before sdcard is full) (features/statuses) + Status 85 (Is the camera getting too cold to continue recording?) (features/statuses) Status - Status 26 (Wireless remote control version) (features/statuses) + Status 17 (Are Wireless Connections enabled?) (features/statuses) Status - Status 22 (State of current scan for WiFi Access Points) (features/statuses) + Status 81 (Is 5GHz wireless band available?) (features/statuses) Status - Status 106 (Is Video Hindsight Capture Active?) (features/statuses) + Status 96 (Current Preset Group (ID) (corresponds to ui_mode_groups in settings.json)) (features/statuses) Status - Status 28 (Wireless Pairing State. Each bit contains state information (see WirelessPairingStateFlags)) (features/statuses) + Status 97 (Current Preset (ID)) (features/statuses) Status - Status 65 (Liveview Exposure Select Mode) (features/statuses) + Status 28 (Wireless Pairing State. Each bit contains state information (see WirelessPairingStateFlags)) (features/statuses) Status - Status 85 (Is the camera getting too cold to continue recording?) (features/statuses) + Status 77 (Is Digital Zoom feature available?) (features/statuses) Status - Status 102 (Media Mod state) (features/statuses) + Status 32 (Is Preview Stream enabled?) (features/statuses) Status - Status 117 (Total SD card capacity in Kilobytes) (features/statuses) + Status 106 (Is Video Hindsight Capture Active?) (features/statuses) Status - Status 54 (Remaining space on the sdcard in Kilobytes) (features/statuses) + Status 68 (Does the camera currently have a GPS lock?) (features/statuses) Status - Status 78 (Are current video settings mobile friendly? (related to video compression and frame rate)) (features/statuses) + Status 105 (Camera lens type (reflects changes to lens settings such as 162, 189, 194, ...)) (features/statuses) Status - Status 89 (Current Flatmode ID) (features/statuses) + Status 115 (Is the camera connected to a PC via USB?) (features/statuses) Status - Status 6 (Is the system currently overheating?) (features/statuses) + Status 19 (The pairing state of the camera) (features/statuses) Status - Status 60 (The minimum time between camera status updates (milliseconds). Best practice is to not poll for status more often than this) (features/statuses) + Status 42 (Is there a pending request to cancel a firmware update download?) (features/statuses) Status - Status 108 (Is Scheduled Capture set?) (features/statuses) + Status 2 (Rough approximation of internal battery level in bars (or charging)) (features/statuses) Status - Status 103 (Time Warp Speed) (features/statuses) + Status 41 (The current status of Over The Air (OTA) update) (features/statuses) Status - Status 107 (Scheduled Capture Preset ID) (features/statuses) + Status 100 (Total number of Live Bursts on sdcard) (features/statuses) Status - Status 82 (Is the system fully booted and ready to accept commands?) (features/statuses) + Status 39 (Total number of videos on sdcard) (features/statuses) Status - Status 111 (Does sdcard meet specified minimum write speed?) (features/statuses) + Status 95 (Current Time Lapse Preset (ID)) (features/statuses) Status - Status 33 (Primary Storage Status) (features/statuses) + Status 21 (Time since boot (milliseconds) of last successful pairing complete action) (features/statuses) Status - Status 30 (The camera's WiFi SSID. On BLE connection, value is big-endian byte-encoded int32) (features/statuses) + Status 113 (Is Turbo Transfer active?) (features/statuses) Status - Status 112 (Number of sdcard write speed errors since device booted) (features/statuses) + Status 35 (How many minutes of video can be captured with current settings before sdcard is full) (features/statuses) Status - Status 88 (Is this camera model capable of zooming while encoding?) (features/statuses) + Status 79 (Is the camera currently in First Time Use (FTU) UI flow?) (features/statuses) Status - Status 67 (Liveview Exposure Select: y-coordinate (percent)) (features/statuses) + Status 88 (Is this camera model capable of zooming while encoding?) (features/statuses) Status - Status 31 (The number of wireless devices connected to the camera) (features/statuses) + Status 34 (How many photos can be taken with current settings before sdcard is full) (features/statuses) Status - Status 58 (The number of hilights in currently-encoding video (value is set to 0 when encoding stops)) (features/statuses) + Status 99 (The number of Live Bursts can be captured with current settings before sdcard is full) (features/statuses) Status - Status 21 (Time since boot (milliseconds) of last successful pairing complete action) (features/statuses) + Status 116 (Camera control over USB state) (features/statuses) Status - Status 41 (The current status of Over The Air (OTA) update) (features/statuses) + Status 98 (Preset Modified Status, which contains an event ID and a Preset (Group) ID) (features/statuses) Status - Status 19 (The pairing state of the camera) (features/statuses) + Status 27 (Is a wireless remote control connected?) (features/statuses) Status - Status 81 (Is 5GHz wireless band available?) (features/statuses) + Status 45 (Is locate camera feature active?) (features/statuses) Status - Status 70 (Internal battery level (percent)) (features/statuses) + Status 86 (Rotational orientation of the camera) (features/statuses) Status - Status 100 (Total number of Live Bursts on sdcard) (features/statuses) + Status 94 (Current Photo Preset (ID)) (features/statuses) Status - Status 97 (Current Preset (ID)) (features/statuses) + Status 101 (Is Capture Delay currently active (i.e. counting down)?) (features/statuses) Status - Status 17 (Are Wireless Connections enabled?) (features/statuses) + Status 78 (Are current video settings mobile friendly? (related to video compression and frame rate)) (features/statuses) Status - Status 93 (Current Video Preset (ID)) (features/statuses) + Status 102 (Media Mod state) (features/statuses) Status - Status 68 (Does the camera currently have a GPS lock?) (features/statuses) + Status 24 (WiFi AP provisioning state) (features/statuses) Status - Status 76 (Wireless Band) (features/statuses) + Status 55 (Is preview stream supported in current recording/mode/secondary-stream?) (features/statuses) Status - Status 118 (Photo interval capture count) (features/statuses) + Status 108 (Is Scheduled Capture set?) (features/statuses) Status - Status 104 (Is the system's Linux core active?) (features/statuses) + Status 103 (Time Warp Speed) (features/statuses) Status - Status 94 (Current Photo Preset (ID)) (features/statuses) + Status 22 (State of current scan for WiFi Access Points) (features/statuses) Status - Status 66 (Liveview Exposure Select: y-coordinate (percent)) (features/statuses) + Status 111 (Does sdcard meet specified minimum write speed?) (features/statuses) Status - Status 74 (Microphone Accessory status) (features/statuses) + Status 75 (Digital Zoom level (percent)) (features/statuses) Status - Status 13 (When encoding video, this is the duration (seconds) of the video so far; 0 otherwise) (features/statuses) + Status 9 (Is Quick Capture feature enabled?) (features/statuses) Status - Status 55 (Is preview stream supported in current recording/mode/secondary-stream?) (features/statuses) + Status 49 (The current timelapse interval countdown value (e.g. 5...4...3...2...1...)) (features/statuses) Status - Status 101 (Is Capture Delay currently active (i.e. counting down)?) (features/statuses) + Status 26 (Wireless remote control version) (features/statuses) Status - Status 86 (Rotational orientation of the camera) (features/statuses) + Status 66 (Liveview Exposure Select: y-coordinate (percent)) (features/statuses) Status - Status 9 (Is Quick Capture feature enabled?) (features/statuses) + Status 13 (When encoding video, this is the duration (seconds) of the video so far; 0 otherwise) (features/statuses) Status - Status 20 (The last type of pairing in which the camera was engaged) (features/statuses) + Status 30 (The camera's WiFi SSID. On BLE connection, value is big-endian byte-encoded int32) (features/statuses) Status - Status 75 (Digital Zoom level (percent)) (features/statuses) + Status 69 (Is AP mode enabled?) (features/statuses) Status - Status 83 (Is the internal battery charged sufficiently to start Over The Air (OTA) update?) (features/statuses) + Status 74 (Microphone Accessory status) (features/statuses) Status - Status 114 (Camera control status ID) (features/statuses) + Status 89 (Current Flatmode ID) (features/statuses) Status - Status 56 (WiFi signal strength in bars) (features/statuses) + Status 10 (Is the system currently encoding?) (features/statuses) Status - Status 34 (How many photos can be taken with current settings before sdcard is full) (features/statuses) + Status 110 (Display Mod Status (bitmasked)) (features/statuses) Status - Status 42 (Is there a pending request to cancel a firmware update download?) (features/statuses) + Status 56 (WiFi signal strength in bars) (features/statuses) Status - Status 1 (Is the system's internal battery present?) (features/statuses) + Status 23 (Time since boot (milliseconds) that the WiFi Access Point scan completed) (features/statuses) Status - Status 10 (Is the system currently encoding?) (features/statuses) + Status 20 (The last type of pairing in which the camera was engaged) (features/statuses) Status - Status 110 (Display Mod Status (bitmasked)) (features/statuses) + Status 104 (Is the system's Linux core active?) (features/statuses) Status - Status 2 (Rough approximation of internal battery level in bars (or charging)) (features/statuses) + Status 112 (Number of sdcard write speed errors since device booted) (features/statuses) Status - Status 45 (Is locate camera feature active?) (features/statuses) + Status 31 (The number of wireless devices connected to the camera) (features/statuses) Status - Status 99 (The number of Live Bursts can be captured with current settings before sdcard is full) (features/statuses) + Status 8 (Is the camera busy?) (features/statuses) Status - Status 116 (Camera control over USB state) (features/statuses) + Status 1 (Is the system's internal battery present?) (features/statuses) Status - Status 24 (WiFi AP provisioning state) (features/statuses) + Status 83 (Is the internal battery charged sufficiently to start Over The Air (OTA) update?) (features/statuses) Status - Status 8 (Is the camera busy?) (features/statuses) + Status 65 (Liveview Exposure Select Mode) (features/statuses) Status - Status 95 (Current Time Lapse Preset (ID)) (features/statuses) + Status 29 (SSID of the AP the camera is currently connected to. On BLE connection, value is big-endian byte-encoded int32) (features/statuses) Status - Status 49 (The current timelapse interval countdown value (e.g. 5...4...3...2...1...)) (features/statuses) + Status 58 (The number of hilights in currently-encoding video (value is set to 0 when encoding stops)) (features/statuses) Status - Status 39 (Total number of videos on sdcard) (features/statuses) + Status 107 (Scheduled Capture Preset ID) (features/statuses) Status - Status 115 (Is the camera connected to a PC via USB?) (features/statuses) + Status 6 (Is the system currently overheating?) (features/statuses) Status - Status 11 (Is LCD lock active?) (features/statuses) + Status 93 (Current Video Preset (ID)) (features/statuses) Status - Status 32 (Is Preview Stream enabled?) (features/statuses) + Status 82 (Is the system fully booted and ready to accept commands?) (features/statuses) Status - Status 113 (Is Turbo Transfer active?) (features/statuses) + Status 67 (Liveview Exposure Select: y-coordinate (percent)) (features/statuses) Status diff --git a/ble/protocol.html b/ble/protocol.html index 3680fdb9..a6448b3a 100644 --- a/ble/protocol.html +++ b/ble/protocol.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/protocol/ble_setup.html b/ble/protocol/ble_setup.html index 82b1c0a1..9927d2f5 100644 --- a/ble/protocol/ble_setup.html +++ b/ble/protocol/ble_setup.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/protocol/data_protocol.html b/ble/protocol/data_protocol.html index 6b5be8a2..63ac37b0 100644 --- a/ble/protocol/data_protocol.html +++ b/ble/protocol/data_protocol.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/protocol/id_tables.html b/ble/protocol/id_tables.html index c354088b..4f94d34f 100644 --- a/ble/protocol/id_tables.html +++ b/ble/protocol/id_tables.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/protocol/protobuf.html b/ble/protocol/protobuf.html index 125709cb..3e6f7404 100644 --- a/ble/protocol/protobuf.html +++ b/ble/protocol/protobuf.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • @@ -819,214 +817,6 @@

    Enums -

    PRESET_GROUP_ID_VIDEO_SINGLE_LENS

    -

    0

    -

    Single video

    - -

    PRESET_GROUP_ID_PHOTO_SINGLE_LENS

    -

    1

    -

    Single photo

    - -

    PRESET_GROUP_ID_TIMELAPSE_SINGLE_LENS

    -

    2

    -

    Single timelapse

    - -

    PRESET_GROUP_ID_VIDEO_HEMI_LENS

    -

    3

    -

    Spherical video hemi lens

    - -

    PRESET_GROUP_ID_PHOTO_HEMI_LENS

    -

    4

    -

    Spherical photo hemi lens

    - -

    PRESET_GROUP_ID_TIMELAPSE_HEMI_LENS

    -

    5

    -

    Spherical timelapse hemi lens

    - -

    PRESET_GROUP_ID_SPECIAL_INTERNAL

    -

    6

    -

    Special

    - -

    PRESET_GROUP_ID_SPECIAL_HEMI

    -

    7

    -

    Special hemi lens

    - -

    PRESET_GROUP_ID_VIDEO_ENDURANCE_SINGLE_LENS

    -

    8

    -

    Video battery endurance

    - -

    PRESET_GROUP_ID_VIDEO_LONGEST_BATTERY_SINGLE_LENS

    -

    9

    -

    Video longest battery

    - -

    PRESET_GROUP_ID_EASY_VIDEO_SINGLE_LENS

    -

    10

    -

    Easy single video

    - -

    PRESET_GROUP_ID_EASY_VIDEO_ENDURANCE_SINGLE_LENS

    -

    11

    -

    Easy video battery endurance

    - -

    PRESET_GROUP_ID_EASY_PHOTO_SINGLE_LENS

    -

    12

    -

    Easy single photo

    - -

    PRESET_GROUP_ID_EASY_TIMELAPSE_SINGLE_LENS

    -

    13

    -

    Easy single timelapse

    - -

    PRESET_GROUP_ID_EASY_VIDEO_LONGEST_BATTERY_SINGLE_LENS

    -

    14

    -

    Easy video longest battery

    - -

    PRESET_GROUP_ID_VIDEO_HEMI_LENS_2

    -

    15

    -

    Hemi Lens 2 video

    - -

    PRESET_GROUP_ID_PHOTO_HEMI_LENS_2

    -

    16

    -

    Hemi Lens 2 photo

    - -

    PRESET_GROUP_ID_TIMELAPSE_HEMI_LENS_2

    -

    17

    -

    Hemi Lens 2 timelapse

    - -

    PRESET_GROUP_ID_SPECIAL_HEMI_LENS_2

    -

    18

    -

    Hemi Lens 2 special

    - -

    PRESET_GROUP_ID_EASY_VIDEO_HEMI_LENS

    -

    19

    -

    Hemi Lens easy video

    - -

    PRESET_GROUP_ID_EASY_PHOTO_HEMI_LENS

    -

    20

    -

    Hemi Lens easy photo

    - -

    PRESET_GROUP_ID_EASY_TIMELAPSE_HEMI_LENS

    -

    21

    -

    Hemi Lens easy timelapse

    - -

    PRESET_GROUP_ID_EASY_VIDEO_HEMI_LENS_2

    -

    22

    -

    Hemi Lens 2 easy video

    - -

    PRESET_GROUP_ID_EASY_PHOTO_HEMI_LENS_2

    -

    23

    -

    Hemi Lens 2 easy photo

    - -

    PRESET_GROUP_ID_EASY_TIMELAPSE_HEMI_LENS_2

    -

    24

    -

    Hemi Lens 2 easy timelapse

    - -

    PRESET_GROUP_ID_VIDEO_SINGLE_LENS_STANDARD

    -

    25

    -

    Single video standard profile - for internal preset switch only

    - -

    PRESET_GROUP_ID_VIDEO_SINGLE_LENS_HDR

    -

    26

    -

    Single video hdr profile - for internal preset switch only

    - -

    PRESET_GROUP_ID_VIDEO_SINGLE_LENS_LOG

    -

    27

    -

    Single video log profile - for internal preset switch only

    - -

    PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS

    -

    28

    -

    Spherical video mode

    - -

    PRESET_GROUP_ID_PHOTO_SPHERICAL_LENS

    -

    29

    -

    Spherical photo mode

    - -

    PRESET_GROUP_ID_TIMELAPSE_SPHERICAL_LENS

    -

    30

    -

    Spherical timelapse mode

    - -

    PRESET_GROUP_ID_SPECIAL_SPHERICAL

    -

    31

    -

    Special spherical lens

    - -

    PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS_STANDARD

    -

    32

    -

    Spherical video standard profile - for internal preset switch only

    - -

    PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS_LOG

    -

    33

    -

    Spherical video standard profile - for internal preset switch only

    - -

    PRESET_GROUP_ID_VIDEO_HEMI_LENS_2_STANDARD

    -

    34

    -

    Hemi Lens 2 video standard profile and Hemi Lens 2.5 video standard profile - for internal preset switch only

    - -

    PRESET_GROUP_ID_VIDEO_HEMI_LENS_2_LOG

    -

    35

    -

    Hemi Lens 2 video log profile and Hemi Lens 2.5 video log profile - for internal preset switch only

    - -

    PRESET_GROUP_ID_VIDEO_MACRO_LENS

    -

    36

    -

    Video macro lens

    - -

    PRESET_GROUP_ID_PHOTO_MACRO_LENS

    -

    37

    -

    Photo macro lens

    - -

    PRESET_GROUP_ID_TIMELAPSE_MACRO_LENS

    -

    38

    -

    Timelapse macro lens

    - -

    PRESET_GROUP_ID_EASY_VIDEO_MACRO_LENS

    -

    39

    -

    Easy Video macro lens

    - -

    PRESET_GROUP_ID_EASY_PHOTO_MACRO_LENS

    -

    40

    -

    Easy Photo macro lens

    - -

    PRESET_GROUP_ID_EASY_TIMELAPSE_MACRO_LENS

    -

    41

    -

    Easy Timelapse macro lens

    - -

    PRESET_GROUP_ID_VIDEO_MACRO_LENS_STANDARD

    -

    42

    -

    Macro lens video standard profile - for internal preset switch only

    - -

    PRESET_GROUP_ID_VIDEO_MACRO_LENS_LOG

    -

    43

    -

    Macro lens video log profile - for internal preset switch only

    - -

    PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS

    -

    44

    -

    Video anamorphic lens

    - -

    PRESET_GROUP_ID_PHOTO_ANAMORPHIC_LENS

    -

    45

    -

    Photo anamorphic lens

    - -

    PRESET_GROUP_ID_TIMELAPSE_ANAMORPHIC_LENS

    -

    46

    -

    Timelapse anamorphic lens

    - -

    PRESET_GROUP_ID_EASY_VIDEO_ANAMORPHIC_LENS

    -

    47

    -

    Easy Video anamorphic lens

    - -

    PRESET_GROUP_ID_EASY_PHOTO_ANAMORPHIC_LENS

    -

    48

    -

    Easy Photo anamorphic lens

    - -

    PRESET_GROUP_ID_EASY_TIMELAPSE_ANAMORPHIC_LENS

    -

    49

    -

    Easy Timelapse anamorphic lens

    - -

    PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS_STANDARD

    -

    50

    -

    Anamorphic lens video standard profile - for internal preset switch only

    - -

    PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS_LOG

    -

    51

    -

    Anamorphic lens video log profile - for internal preset switch only

    -

    PRESET_GROUP_ID_VIDEO

    1000

    @@ -1163,142 +953,126 @@

    Enums

    11

    -

    PRESET_ICON_360_VIDEO

    -

    12

    - - -

    PRESET_ICON_PHOTO_2

    +

    PRESET_ICON_PHOTO_2

    13

    -

    PRESET_ICON_PANORAMA

    +

    PRESET_ICON_PANORAMA

    14

    -

    PRESET_ICON_BURST_2

    +

    PRESET_ICON_BURST_2

    15

    -

    PRESET_ICON_TIMEWARP_2

    +

    PRESET_ICON_TIMEWARP_2

    16

    -

    PRESET_ICON_TIMELAPSE_2

    +

    PRESET_ICON_TIMELAPSE_2

    17

    -

    PRESET_ICON_CUSTOM

    +

    PRESET_ICON_CUSTOM

    18

    -

    PRESET_ICON_AIR

    +

    PRESET_ICON_AIR

    19

    -

    PRESET_ICON_BIKE

    +

    PRESET_ICON_BIKE

    20

    -

    PRESET_ICON_EPIC

    +

    PRESET_ICON_EPIC

    21

    -

    PRESET_ICON_INDOOR

    +

    PRESET_ICON_INDOOR

    22

    -

    PRESET_ICON_MOTOR

    +

    PRESET_ICON_MOTOR

    23

    -

    PRESET_ICON_MOUNTED

    +

    PRESET_ICON_MOUNTED

    24

    -

    PRESET_ICON_OUTDOOR

    +

    PRESET_ICON_OUTDOOR

    25

    -

    PRESET_ICON_POV

    +

    PRESET_ICON_POV

    26

    -

    PRESET_ICON_SELFIE

    +

    PRESET_ICON_SELFIE

    27

    -

    PRESET_ICON_SKATE

    +

    PRESET_ICON_SKATE

    28

    -

    PRESET_ICON_SNOW

    +

    PRESET_ICON_SNOW

    29

    -

    PRESET_ICON_TRAIL

    +

    PRESET_ICON_TRAIL

    30

    -

    PRESET_ICON_TRAVEL

    +

    PRESET_ICON_TRAVEL

    31

    -

    PRESET_ICON_WATER

    +

    PRESET_ICON_WATER

    32

    -

    PRESET_ICON_LOOPING

    +

    PRESET_ICON_LOOPING

    33

    -

    PRESET_ICON_STARS

    +

    PRESET_ICON_STARS

    34

    -

    PRESET_ICON_ACTION

    +

    PRESET_ICON_ACTION

    35

    -

    PRESET_ICON_FOLLOW_CAM

    +

    PRESET_ICON_FOLLOW_CAM

    36

    -

    PRESET_ICON_SURF

    +

    PRESET_ICON_SURF

    37

    -

    PRESET_ICON_CITY

    +

    PRESET_ICON_CITY

    38

    -

    PRESET_ICON_SHAKY

    +

    PRESET_ICON_SHAKY

    39

    -

    PRESET_ICON_CHESTY

    +

    PRESET_ICON_CHESTY

    40

    -

    PRESET_ICON_HELMET

    +

    PRESET_ICON_HELMET

    41

    -

    PRESET_ICON_BITE

    +

    PRESET_ICON_BITE

    42

    -

    PRESET_ICON_MAX_VIDEO

    -

    55

    - - -

    PRESET_ICON_MAX_PHOTO

    -

    56

    - - -

    PRESET_ICON_MAX_TIMEWARP

    -

    57

    - -

    PRESET_ICON_BASIC

    58

    @@ -1375,86 +1149,6 @@

    Enums

    79

    -

    PRESET_ICON_EASY_MAX_VIDEO

    -

    80

    - - -

    PRESET_ICON_EASY_MAX_PHOTO

    -

    81

    - - -

    PRESET_ICON_EASY_MAX_TIMEWARP

    -

    82

    - - -

    PRESET_ICON_EASY_MAX_STAR_TRAIL

    -

    83

    - - -

    PRESET_ICON_EASY_MAX_LIGHT_PAINTING

    -

    84

    - - -

    PRESET_ICON_EASY_MAX_LIGHT_TRAIL

    -

    85

    - - -

    PRESET_ICON_MAX_STAR_TRAIL

    -

    89

    - - -

    PRESET_ICON_MAX_LIGHT_PAINTING

    -

    90

    - - -

    PRESET_ICON_MAX_LIGHT_TRAIL

    -

    91

    - - -

    PRESET_ICON_360_BURST

    -

    92

    - - -

    PRESET_ICON_360_PHOTO_NIGHT

    -

    93

    - - -

    PRESET_ICON_360_NIGHTLAPSE

    -

    94

    - - -

    PRESET_ICON_360_TIMELAPSE_PHOTO

    -

    95

    - - -

    PRESET_ICON_360_NIGHTLAPSE_PHOTO

    -

    96

    - - -

    PRESET_ICON_360_PHOTO

    -

    97

    - - -

    PRESET_ICON_360_TIMELAPSE

    -

    98

    - - -

    PRESET_ICON_360_TIMEWARP

    -

    99

    - - -

    PRESET_ICON_EASY_STANDARD_PROFILE

    -

    100

    - - -

    PRESET_ICON_EASY_HDR_PROFILE

    -

    101

    - - -

    PRESET_ICON_BURST_SLOMO

    -

    102

    - -

    PRESET_ICON_TIMELAPSE_PHOTO

    1000

    @@ -1463,10 +1157,6 @@

    Enums

    1001

    -

    PRESET_ICON_MAX

    -

    1002

    - - @@ -1537,190 +1227,118 @@

    Enums

    11

    -

    PRESET_TITLE_360_VIDEO

    -

    12

    - - -

    PRESET_TITLE_PHOTO_2

    +

    PRESET_TITLE_PHOTO_2

    13

    -

    PRESET_TITLE_PANORAMA

    +

    PRESET_TITLE_PANORAMA

    14

    -

    PRESET_TITLE_360_PHOTO

    -

    15

    - -

    PRESET_TITLE_TIME_WARP_2

    16

    -

    PRESET_TITLE_360_TIME_WARP

    -

    17

    - - -

    PRESET_TITLE_CUSTOM

    +

    PRESET_TITLE_CUSTOM

    18

    -

    PRESET_TITLE_AIR

    +

    PRESET_TITLE_AIR

    19

    -

    PRESET_TITLE_BIKE

    +

    PRESET_TITLE_BIKE

    20

    -

    PRESET_TITLE_EPIC

    +

    PRESET_TITLE_EPIC

    21

    -

    PRESET_TITLE_INDOOR

    +

    PRESET_TITLE_INDOOR

    22

    -

    PRESET_TITLE_MOTOR

    +

    PRESET_TITLE_MOTOR

    23

    -

    PRESET_TITLE_MOUNTED

    +

    PRESET_TITLE_MOUNTED

    24

    -

    PRESET_TITLE_OUTDOOR

    +

    PRESET_TITLE_OUTDOOR

    25

    -

    PRESET_TITLE_POV

    +

    PRESET_TITLE_POV

    26

    -

    PRESET_TITLE_SELFIE

    +

    PRESET_TITLE_SELFIE

    27

    -

    PRESET_TITLE_SKATE

    +

    PRESET_TITLE_SKATE

    28

    -

    PRESET_TITLE_SNOW

    +

    PRESET_TITLE_SNOW

    29

    -

    PRESET_TITLE_TRAIL

    +

    PRESET_TITLE_TRAIL

    30

    -

    PRESET_TITLE_TRAVEL

    +

    PRESET_TITLE_TRAVEL

    31

    -

    PRESET_TITLE_WATER

    +

    PRESET_TITLE_WATER

    32

    -

    PRESET_TITLE_LOOPING

    +

    PRESET_TITLE_LOOPING

    33

    -

    PRESET_TITLE_STARS

    +

    PRESET_TITLE_STARS

    34

    -

    PRESET_TITLE_ACTION

    +

    PRESET_TITLE_ACTION

    35

    -

    PRESET_TITLE_FOLLOW_CAM

    +

    PRESET_TITLE_FOLLOW_CAM

    36

    -

    PRESET_TITLE_SURF

    +

    PRESET_TITLE_SURF

    37

    -

    PRESET_TITLE_CITY

    +

    PRESET_TITLE_CITY

    38

    -

    PRESET_TITLE_SHAKY

    +

    PRESET_TITLE_SHAKY

    39

    -

    PRESET_TITLE_CHESTY

    +

    PRESET_TITLE_CHESTY

    40

    -

    PRESET_TITLE_HELMET

    +

    PRESET_TITLE_HELMET

    41

    -

    PRESET_TITLE_BITE

    +

    PRESET_TITLE_BITE

    42

    -

    PRESET_TITLE_CUSTOM_CINEMATIC

    -

    43

    - - -

    PRESET_TITLE_DIVE

    -

    44

    - - -

    PRESET_TITLE_FPV

    -

    45

    - - -

    PRESET_TITLE_HDR

    -

    46

    - - -

    PRESET_TITLE_LANDSCAPE

    -

    47

    - - -

    PRESET_TITLE_LOG

    -

    48

    - - -

    PRESET_TITLE_CUSTOM_SLOMO

    -

    49

    - - -

    PRESET_TITLE_TRIPOD

    -

    50

    - - -

    PRESET_TITLE_360_TIMELAPSE

    -

    51

    - - -

    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

    @@ -1809,14 +1427,6 @@

    Enums

    79

    -

    PRESET_TITLE_MAX_LENS_VIDEO

    -

    80

    - - -

    PRESET_TITLE_MAX_LENS_TIMEWARP

    -

    81

    - -

    PRESET_TITLE_STANDARD_QUALITY_VIDEO

    82

    @@ -1825,133 +1435,14 @@

    Enums

    83

    -

    PRESET_TITLE_EASY_MAX_VIDEO

    -

    84

    - - -

    PRESET_TITLE_EASY_MAX_PHOTO

    -

    85

    - - -

    PRESET_TITLE_EASY_MAX_TIMEWARP

    -

    86

    - - -

    PRESET_TITLE_EASY_MAX_STAR_TRAIL

    -

    87

    - - -

    PRESET_TITLE_EASY_MAX_LIGHT_PAINTING

    -

    88

    - - -

    PRESET_TITLE_EASY_MAX_LIGHT_TRAIL

    -

    89

    - - -

    PRESET_TITLE_MAX_STAR_TRAIL

    -

    90

    - - -

    PRESET_TITLE_MAX_LIGHT_PAINTING

    -

    91

    - - -

    PRESET_TITLE_MAX_LIGHT_TRAIL

    -

    92

    - - -

    PRESET_TITLE_HIGHEST_QUALITY_VIDEO

    +

    PRESET_TITLE_HIGHEST_QUALITY_VIDEO

    93

    -

    PRESET_TITLE_USER_DEFINED_CUSTOM_NAME

    +

    PRESET_TITLE_USER_DEFINED_CUSTOM_NAME

    94

    -

    PRESET_TITLE_360_DEG_BURST

    -

    95

    -
      -
    • FW_PRESET_TITLE_360_BURST

    • -
    - - -

    PRESET_TITLE_360_DEG_NIGHT_PHOTO

    -

    96

    -
      -
    • FW_PRESET_TITLE_360_NIGHT

    • -
    - - -

    PRESET_TITLE_360_DEG_TIME_LAPSE_PHOTO

    -

    97

    -
      -
    • FW_PRESET_TITLE_360_TIME_LAPSE_PHOTO

    • -
    - - -

    PRESET_TITLE_360_DEG_NIGHT_LAPSE_PHOTO

    -

    98

    -
      -
    • FW_PRESET_TITLE_360_NIGHT_LAPSE_PHOTO

    • -
    - - -

    PRESET_TITLE_EASY_STANDARD_PROFILE

    -

    99

    - - -

    PRESET_TITLE_EASY_HDR_PROFILE

    -

    100

    - - -

    PRESET_TITLE_360_DEG_TIME_LAPSE_VIDEO

    -

    101

    -
      -
    • FW_PRESET_TITLE_MAX_2_TIME_LAPSE

    • -
    - - -

    PRESET_TITLE_360_DEG_NIGHT_LAPSE_VIDEO

    -

    102

    -
      -
    • FW_PRESET_TITLE_MAX_2_NIGHT_LAPSE

    • -
    - - -

    PRESET_TITLE_360_DEG_PHOTO

    -

    103

    -
      -
    • FW_PRESET_TITLE_MAX_2_PHOTO

    • -
    - - -

    PRESET_TITLE_360_DEG_TIME_WARP

    -

    104

    -
      -
    • FW_PRESET_TITLE_MAX_2_TIME_WARP

    • -
    - - -

    PRESET_TITLE_360_DEG_VIDEO

    -

    105

    -
      -
    • FW_PRESET_TITLE_MAX_2_VIDEO

    • -
    - - -

    PRESET_TITLE_BURST_SLOMO

    -

    106

    - - -

    PRESET_TITLE_VLOG

    -

    107

    - - -

    PRESET_TITLE_MAX

    -

    108

    - - @@ -2566,16 +2057,6 @@

    Enums

    1

    List of currently available Preset Groups

    -

    custom_icon_ids

    -

    Range

    -

    2

    -

    A list of ranges of icon ID’s available for custom presets

    - -

    custom_title_ids

    -

    Range

    -

    3

    -

    A list of ranges of title ID’s available for custom presets

    - @@ -2739,41 +2220,6 @@

    Enums -
    -

    Range

    -
    -

    See also

    -

    Source Protobuf File

    -
    -

    A model used to represent a contiguous range of integer values.

    - ------ - - - - - - - - - - - - - - - - - - - -

    field

    typespec

    value

    summary

    start

    int32

    1

    Start index of the range.

    length

    int32

    2

    Length of the range.

    -

    RequestCOHNCert

    @@ -3008,15 +2454,6 @@

    Enums

    -
    -

    RequestGetAllPresetStatus

    -
    -

    See also

    -

    Source Protobuf File

    -
    -

    Get the superset of all possible presets, regardless of the current camera state

    -

    Response: NotifyPresetStatus sent immediately

    -

    RequestGetApEntries

    diff --git a/ble/protocol/state_management.html b/ble/protocol/state_management.html index ba1746a9..9c21edb3 100644 --- a/ble/protocol/state_management.html +++ b/ble/protocol/state_management.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/search.html b/ble/search.html index a13fced0..f33ecb0b 100644 --- a/ble/search.html +++ b/ble/search.html @@ -116,14 +116,12 @@
  • Preset
  • PresetGroup
  • PresetSetting
  • -
  • Range
  • RequestCOHNCert
  • RequestClearCOHNCert
  • RequestConnect
  • RequestConnectNew
  • RequestCreateCOHNCert
  • RequestCustomPresetUpdate
  • -
  • RequestGetAllPresetStatus
  • RequestGetApEntries
  • RequestGetCOHNStatus
  • RequestGetLastCapturedMedia
  • diff --git a/ble/searchindex.js b/ble/searchindex.js index 9ea1d17a..632e2044 100644 --- a/ble/searchindex.js +++ b/ble/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"Access Point": [[0, "access-point"]], "Advertisements": [[11, "advertisements"]], "Anti-Flicker (134)": [[7, "anti-flicker-134"]], "Are Wireless Connections enabled? (17)": [[8, "are-wireless-connections-enabled-17"]], "Are current video settings mobile friendly? (related to video compression and frame rate) (78)": [[8, "are-current-video-settings-mobile-friendly-related-to-video-compression-and-frame-rate-78"]], "Aspect Ratio (108)": [[7, "aspect-ratio-108"]], "Aspect Ratio (192)": [[7, "aspect-ratio-192"]], "Auto Off (59)": [[7, "auto-off-59"]], "BLE Characteristics": [[11, "ble-characteristics"]], "BLE Setup": [[11, "ble-setup"]], "Bit Depth (183)": [[7, "bit-depth-183"]], "Bit Rate (182)": [[7, "bit-rate-182"]], "Camera Capabilities": [[7, "camera-capabilities"]], "Camera Control": [[15, "camera-control"]], "Camera Readiness": [[15, "camera-readiness"]], "Camera control over USB state (116)": [[8, "camera-control-over-usb-state-116"]], "Camera control status ID (114)": [[8, "camera-control-status-id-114"]], "Camera lens type (reflects changes to lens settings such as 162, 189, 194, \u2026) (105)": [[8, "camera-lens-type-reflects-changes-to-lens-settings-such-as-162-189-194-105"]], "Camera on the Home Network": [[1, "camera-on-the-home-network"]], "Certificates": [[1, "certificates"]], "Command IDs": [[13, "command-ids"]], "Commands": [[12, "commands"]], "Configure GATT Characteristics": [[11, "configure-gatt-characteristics"]], "Continuation Packets": [[12, "continuation-packets"]], "Control": [[2, "control"]], "Controls (175)": [[7, "controls-175"]], "Current Flatmode ID (89)": [[8, "current-flatmode-id-89"]], "Current Photo Preset (ID) (94)": [[8, "current-photo-preset-id-94"]], "Current Preset (ID) (97)": [[8, "current-preset-id-97"]], "Current Preset Group (ID) (corresponds to ui_mode_groups in settings.json) (96)": [[8, "current-preset-group-id-corresponds-to-ui-mode-groups-in-settings-json-96"]], "Current Time Lapse Preset (ID) (95)": [[8, "current-time-lapse-preset-id-95"]], "Current Video Preset (ID) (93)": [[8, "current-video-preset-id-93"]], "Data Protocol": [[12, "data-protocol"]], "Decipher Message Payload Type": [[12, "decipher-message-payload-type"]], "Digital Zoom level (percent) (75)": [[8, "digital-zoom-level-percent-75"]], "Disconnect from Access Point": [[0, "disconnect-from-access-point"]], "Display Mod Status (bitmasked) (110)": [[8, "display-mod-status-bitmasked-110"]], "Does sdcard meet specified minimum write speed? (111)": [[8, "does-sdcard-meet-specified-minimum-write-speed-111"]], "Does the camera currently have a GPS lock? (68)": [[8, "does-the-camera-currently-have-a-gps-lock-68"]], "Duration (172)": [[7, "duration-172"]], "EnumCOHNNetworkState": [[14, "enumcohnnetworkstate"]], "EnumCOHNStatus": [[14, "enumcohnstatus"]], "EnumCameraControlStatus": [[14, "enumcameracontrolstatus"]], "EnumFlatMode": [[14, "enumflatmode"]], "EnumLens": [[14, "enumlens"]], "EnumLiveStreamError": [[14, "enumlivestreamerror"]], "EnumLiveStreamStatus": [[14, "enumlivestreamstatus"]], "EnumPresetGroup": [[14, "enumpresetgroup"]], "EnumPresetGroupIcon": [[14, "enumpresetgroupicon"]], "EnumPresetIcon": [[14, "enumpreseticon"]], "EnumPresetTitle": [[14, "enumpresettitle"]], "EnumProvisioning": [[14, "enumprovisioning"]], "EnumRegisterLiveStreamStatus": [[14, "enumregisterlivestreamstatus"]], "EnumRegisterPresetStatus": [[14, "enumregisterpresetstatus"]], "EnumResultGeneric": [[14, "enumresultgeneric"]], "EnumScanEntryFlags": [[14, "enumscanentryflags"]], "EnumScanning": [[14, "enumscanning"]], "EnumWindowSize": [[14, "enumwindowsize"]], "Enums": [[14, "enums"]], "Extended (13-bit) Packets": [[12, "extended-13-bit-packets"]], "Extended (16-bit) Packets": [[12, "extended-16-bit-packets"]], "FOV (43)": [[7, "fov-43"]], "Finish Pairing": [[11, "finish-pairing"]], "Format (128)": [[7, "format-128"]], "Frames Per Second (3)": [[7, "frames-per-second-3"]], "Framing (193)": [[7, "framing-193"]], "GPS (83)": [[7, "gps-83"]], "General": [[9, "general"]], "General (5-bit) Packets": [[12, "general-5-bit-packets"]], "Getting Started": [[9, "getting-started"]], "Hilights": [[3, "hilights"]], "HindSight (167)": [[7, "hindsight-167"]], "Horizon Leveling (150)": [[7, "horizon-leveling-150"]], "Horizon Leveling (151)": [[7, "horizon-leveling-151"]], "How many minutes of video can be captured with current settings before sdcard is full (35)": [[8, "how-many-minutes-of-video-can-be-captured-with-current-settings-before-sdcard-is-full-35"]], "How many photos can be taken with current settings before sdcard is full (34)": [[8, "how-many-photos-can-be-taken-with-current-settings-before-sdcard-is-full-34"]], "Hypersmooth (135)": [[7, "hypersmooth-135"]], "ID Tables": [[13, "id-tables"]], "Internal battery level (percent) (70)": [[8, "internal-battery-level-percent-70"]], "Interval (171)": [[7, "interval-171"]], "Is 5GHz wireless band available? (81)": [[8, "is-5ghz-wireless-band-available-81"]], "Is AP mode enabled? (69)": [[8, "is-ap-mode-enabled-69"]], "Is Capture Delay currently active (i.e. counting down)? (101)": [[8, "is-capture-delay-currently-active-i-e-counting-down-101"]], "Is Digital Zoom feature available? (77)": [[8, "is-digital-zoom-feature-available-77"]], "Is LCD lock active? (11)": [[8, "is-lcd-lock-active-11"]], "Is Preview Stream enabled? (32)": [[8, "is-preview-stream-enabled-32"]], "Is Quick Capture feature enabled? (9)": [[8, "is-quick-capture-feature-enabled-9"]], "Is Scheduled Capture set? (108)": [[8, "is-scheduled-capture-set-108"]], "Is Turbo Transfer active? (113)": [[8, "is-turbo-transfer-active-113"]], "Is Video Hindsight Capture Active? (106)": [[8, "is-video-hindsight-capture-active-106"]], "Is a wireless remote control connected? (27)": [[8, "is-a-wireless-remote-control-connected-27"]], "Is locate camera feature active? (45)": [[8, "is-locate-camera-feature-active-45"]], "Is preview stream supported in current recording/mode/secondary-stream? (55)": [[8, "is-preview-stream-supported-in-current-recording-mode-secondary-stream-55"]], "Is the camera busy? (8)": [[8, "is-the-camera-busy-8"]], "Is the camera connected to a PC via USB? (115)": [[8, "is-the-camera-connected-to-a-pc-via-usb-115"]], "Is the camera currently in First Time Use (FTU) UI flow? (79)": [[8, "is-the-camera-currently-in-first-time-use-ftu-ui-flow-79"]], "Is the camera getting too cold to continue recording? (85)": [[8, "is-the-camera-getting-too-cold-to-continue-recording-85"]], "Is the internal battery charged sufficiently to start Over The Air (OTA) update? (83)": [[8, "is-the-internal-battery-charged-sufficiently-to-start-over-the-air-ota-update-83"]], "Is the system currently encoding? (10)": [[8, "is-the-system-currently-encoding-10"]], "Is the system currently overheating? (6)": [[8, "is-the-system-currently-overheating-6"]], "Is the system fully booted and ready to accept commands? (82)": [[8, "is-the-system-fully-booted-and-ready-to-accept-commands-82"]], "Is the system\u2019s Linux core active? (104)": [[8, "is-the-system-s-linux-core-active-104"]], "Is the system\u2019s internal battery present? (1)": [[8, "is-the-system-s-internal-battery-present-1"]], "Is there a pending request to cancel a firmware update download? (42)": [[8, "is-there-a-pending-request-to-cancel-a-firmware-update-download-42"]], "Is this camera model capable of zooming while encoding? (88)": [[8, "is-this-camera-model-capable-of-zooming-while-encoding-88"]], "JSON": [[7, "json"]], "Keep Alive": [[15, "keep-alive"]], "Lapse Mode (187)": [[7, "lapse-mode-187"]], "Lens (121)": [[7, "lens-121"]], "Lens (122)": [[7, "lens-122"]], "Lens (123)": [[7, "lens-123"]], "Limitations": [[9, "limitations"]], "Live Streaming": [[4, "live-streaming"]], "Liveview Exposure Select Mode (65)": [[8, "liveview-exposure-select-mode-65"]], "Liveview Exposure Select: y-coordinate (percent) (66)": [[8, "liveview-exposure-select-y-coordinate-percent-66"]], "Liveview Exposure Select: y-coordinate (percent) (67)": [[8, "liveview-exposure-select-y-coordinate-percent-67"]], "Max Lens Mod (189)": [[7, "max-lens-mod-189"]], "Max Lens Mod Enable (162)": [[7, "max-lens-mod-enable-162"]], "Max Lens Mod Enable (190)": [[7, "max-lens-mod-enable-190"]], "Media": [[14, "media"]], "Media Mod state (102)": [[8, "media-mod-state-102"]], "Message Payload": [[12, "message-payload"]], "Microphone Accessory status (74)": [[8, "microphone-accessory-status-74"]], "Night Photo (177)": [[7, "night-photo-177"]], "NotifProvisioningState": [[14, "notifprovisioningstate"]], "NotifStartScanning": [[14, "notifstartscanning"]], "NotifyCOHNStatus": [[14, "notifycohnstatus"]], "NotifyLiveStreamStatus": [[14, "notifylivestreamstatus"]], "NotifyPresetStatus": [[14, "notifypresetstatus"]], "Number of sdcard write speed errors since device booted (112)": [[8, "number-of-sdcard-write-speed-errors-since-device-booted-112"]], "Operations": [[0, "operations"], [1, "operations"], [2, "operations"], [3, "operations"], [4, "operations"], [5, "operations"], [6, "operations"], [7, "operations"]], "Packet Headers": [[12, "packet-headers"]], "Packetization": [[12, "packetization"]], "Pairing Mode": [[11, "pairing-mode"]], "Photo Mode (191)": [[7, "photo-mode-191"]], "Photo interval capture count (118)": [[8, "photo-interval-capture-count-118"]], "Preset": [[14, "preset"]], "Preset Groups": [[5, "preset-groups"]], "Preset Modified Status": [[5, "preset-modified-status"]], "Preset Modified Status, which contains an event ID and a Preset (Group) ID (98)": [[8, "preset-modified-status-which-contains-an-event-id-and-a-preset-group-id-98"]], "PresetGroup": [[14, "presetgroup"]], "PresetSetting": [[14, "presetsetting"]], "Presets": [[5, "presets"]], "Primary Storage Status (33)": [[8, "primary-storage-status-33"]], "Profiles (184)": [[7, "profiles-184"]], "Protobuf": [[12, "protobuf"]], "Protobuf Documentation": [[14, "protobuf-documentation"]], "Protobuf IDs": [[13, "protobuf-ids"]], "Protocol": [[10, "protocol"]], "Provisioning Procedure": [[1, "provisioning-procedure"]], "Queries": [[12, "queries"]], "Query": [[6, "query"]], "Query IDs": [[13, "query-ids"]], "Range": [[14, "range"]], "Remaining space on the sdcard in Kilobytes (54)": [[8, "remaining-space-on-the-sdcard-in-kilobytes-54"]], "RequestCOHNCert": [[14, "requestcohncert"]], "RequestClearCOHNCert": [[14, "requestclearcohncert"]], "RequestConnect": [[14, "requestconnect"]], "RequestConnectNew": [[14, "requestconnectnew"]], "RequestCreateCOHNCert": [[14, "requestcreatecohncert"]], "RequestCustomPresetUpdate": [[14, "requestcustompresetupdate"]], "RequestGetAllPresetStatus": [[14, "requestgetallpresetstatus"]], "RequestGetApEntries": [[14, "requestgetapentries"]], "RequestGetCOHNStatus": [[14, "requestgetcohnstatus"]], "RequestGetLastCapturedMedia": [[14, "requestgetlastcapturedmedia"]], "RequestGetLiveStreamStatus": [[14, "requestgetlivestreamstatus"]], "RequestGetPresetStatus": [[14, "requestgetpresetstatus"]], "RequestReleaseNetwork": [[14, "requestreleasenetwork"]], "RequestSetCOHNSetting": [[14, "requestsetcohnsetting"]], "RequestSetCameraControlStatus": [[14, "requestsetcameracontrolstatus"]], "RequestSetLiveStreamMode": [[14, "requestsetlivestreammode"]], "RequestSetTurboActive": [[14, "requestsetturboactive"]], "RequestStartScan": [[14, "requeststartscan"]], "Resolution (2)": [[7, "resolution-2"]], "ResponseCOHNCert": [[14, "responsecohncert"]], "ResponseConnect": [[14, "responseconnect"]], "ResponseConnectNew": [[14, "responseconnectnew"]], "ResponseGeneric": [[14, "responsegeneric"]], "ResponseGetApEntries": [[14, "responsegetapentries"]], "ResponseGetApEntries::ScanEntry": [[14, "responsegetapentries-scanentry"]], "ResponseLastCapturedMedia": [[14, "responselastcapturedmedia"]], "ResponseStartScanning": [[14, "responsestartscanning"]], "Rotational orientation of the camera (86)": [[8, "rotational-orientation-of-the-camera-86"]], "Rough approximation of internal battery level in bars (or charging) (2)": [[8, "rough-approximation-of-internal-battery-level-in-bars-or-charging-2"]], "SSID of the AP the camera is currently connected to. On BLE connection, value is big-endian byte-encoded int32 (29)": [[8, "ssid-of-the-ap-the-camera-is-currently-connected-to-on-ble-connection-value-is-big-endian-byte-encoded-int32-29"]], "Scheduled Capture Preset ID (107)": [[8, "scheduled-capture-preset-id-107"]], "Send Messages": [[11, "send-messages"]], "Setting IDs": [[7, "setting-ids"], [13, "setting-ids"]], "Settings": [[7, "settings"]], "Speed (176)": [[7, "speed-176"]], "State Management": [[15, "state-management"]], "State of current scan for WiFi Access Points (22)": [[8, "state-of-current-scan-for-wifi-access-points-22"]], "Status IDs": [[8, "status-ids"], [13, "status-ids"]], "Statuses": [[8, "statuses"]], "Supported Cameras": [[9, "supported-cameras"]], "The camera\u2019s WiFi SSID. On BLE connection, value is big-endian byte-encoded int32 (30)": [[8, "the-camera-s-wifi-ssid-on-ble-connection-value-is-big-endian-byte-encoded-int32-30"]], "The current status of Over The Air (OTA) update (41)": [[8, "the-current-status-of-over-the-air-ota-update-41"]], "The current timelapse interval countdown value (e.g. 5\u20264\u20263\u20262\u20261\u2026) (49)": [[8, "the-current-timelapse-interval-countdown-value-e-g-5-4-3-2-1-49"]], "The last type of pairing in which the camera was engaged (20)": [[8, "the-last-type-of-pairing-in-which-the-camera-was-engaged-20"]], "The minimum time between camera status updates (milliseconds). Best practice is to not poll for status more often than this (60)": [[8, "the-minimum-time-between-camera-status-updates-milliseconds-best-practice-is-to-not-poll-for-status-more-often-than-this-60"]], "The number of Live Bursts can be captured with current settings before sdcard is full (99)": [[8, "the-number-of-live-bursts-can-be-captured-with-current-settings-before-sdcard-is-full-99"]], "The number of hilights in currently-encoding video (value is set to 0 when encoding stops) (58)": [[8, "the-number-of-hilights-in-currently-encoding-video-value-is-set-to-0-when-encoding-stops-58"]], "The number of wireless devices connected to the camera (31)": [[8, "the-number-of-wireless-devices-connected-to-the-camera-31"]], "The pairing state of the camera (19)": [[8, "the-pairing-state-of-the-camera-19"]], "Time Warp Speed (103)": [[8, "time-warp-speed-103"]], "Time since boot (milliseconds) of last successful pairing complete action (21)": [[8, "time-since-boot-milliseconds-of-last-successful-pairing-complete-action-21"]], "Time since boot (milliseconds) of most recent hilight in encoding video (set to 0 when encoding stops) (59)": [[8, "time-since-boot-milliseconds-of-most-recent-hilight-in-encoding-video-set-to-0-when-encoding-stops-59"]], "Time since boot (milliseconds) that the WiFi Access Point scan completed (23)": [[8, "time-since-boot-milliseconds-that-the-wifi-access-point-scan-completed-23"]], "Total SD card capacity in Kilobytes (117)": [[8, "total-sd-card-capacity-in-kilobytes-117"]], "Total number of Live Bursts on sdcard (100)": [[8, "total-number-of-live-bursts-on-sdcard-100"]], "Total number of photos on sdcard (38)": [[8, "total-number-of-photos-on-sdcard-38"]], "Total number of videos on sdcard (39)": [[8, "total-number-of-videos-on-sdcard-39"]], "Trail Length (179)": [[7, "trail-length-179"]], "Type Length Value": [[12, "type-length-value"]], "Verifying Certificate": [[1, "verifying-certificate"]], "Video Mode (180)": [[7, "video-mode-180"]], "Video Mode (186)": [[7, "video-mode-186"]], "Video Performance Modes (173)": [[7, "video-performance-modes-173"]], "View Certificate Details": [[1, "view-certificate-details"]], "Welcome to Open GoPro BLE API\u2019s documentation!": [[9, "welcome-to-open-gopro-ble-api-s-documentation"]], "When encoding video, this is the duration (seconds) of the video so far; 0 otherwise (13)": [[8, "when-encoding-video-this-is-the-duration-seconds-of-the-video-so-far-0-otherwise-13"]], "Wi-fi Band (178)": [[7, "wi-fi-band-178"]], "WiFi AP provisioning state (24)": [[8, "wifi-ap-provisioning-state-24"]], "WiFi signal strength in bars (56)": [[8, "wifi-signal-strength-in-bars-56"]], "Wireless Band (76)": [[8, "wireless-band-76"]], "Wireless Pairing State. Each bit contains state information (see WirelessPairingStateFlags) (28)": [[8, "wireless-pairing-state-each-bit-contains-state-information-see-wirelesspairingstateflags-28"]], "Wireless remote control version (26)": [[8, "wireless-remote-control-version-26"]], "XLSX": [[7, "xlsx"]]}, "docnames": ["features/access_points", "features/cohn", "features/control", "features/hilights", "features/live_streaming", "features/presets", "features/query", "features/settings", "features/statuses", "index", "protocol", "protocol/ble_setup", "protocol/data_protocol", "protocol/id_tables", "protocol/protobuf", "protocol/state_management"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["features/access_points.rst", "features/cohn.rst", "features/control.rst", "features/hilights.rst", "features/live_streaming.rst", "features/presets.rst", "features/query.rst", "features/settings.rst", "features/statuses.rst", "index.rst", "protocol.rst", "protocol/ble_setup.rst", "protocol/data_protocol.rst", "protocol/id_tables.rst", "protocol/protobuf.rst", "protocol/state_management.rst"], "indexentries": {}, "objects": {"": [[14, 0, 0, "enumcohnnetworkstate", "EnumCOHNNetworkState"], [14, 0, 0, "enumcohnstatus", "EnumCOHNStatus"], [14, 0, 0, "enumcameracontrolstatus", "EnumCameraControlStatus"], [14, 0, 0, "enumflatmode", "EnumFlatMode"], [14, 0, 0, "enumlens", "EnumLens"], [14, 0, 0, "enumlivestreamerror", "EnumLiveStreamError"], [14, 0, 0, "enumlivestreamstatus", "EnumLiveStreamStatus"], [14, 0, 0, "enumpresetgroup", "EnumPresetGroup"], [14, 0, 0, "enumpresetgroupicon", "EnumPresetGroupIcon"], [14, 0, 0, "enumpreseticon", "EnumPresetIcon"], [14, 0, 0, "enumpresettitle", "EnumPresetTitle"], [14, 0, 0, "enumprovisioning", "EnumProvisioning"], [14, 0, 0, "enumregisterlivestreamstatus", "EnumRegisterLiveStreamStatus"], [14, 0, 0, "enumregisterpresetstatus", "EnumRegisterPresetStatus"], [14, 0, 0, "enumresultgeneric", "EnumResultGeneric"], [14, 0, 0, "enumscanentryflags", "EnumScanEntryFlags"], [14, 0, 0, "enumscanning", "EnumScanning"], [14, 0, 0, "enumwindowsize", "EnumWindowSize"], [14, 0, 0, "media", "Media"], [14, 0, 0, "notifprovisioningstate", "NotifProvisioningState"], [14, 0, 0, "notifstartscanning", "NotifStartScanning"], [14, 0, 0, "notifycohnstatus", "NotifyCOHNStatus"], [14, 0, 0, "notifylivestreamstatus", "NotifyLiveStreamStatus"], [14, 0, 0, "notifypresetstatus", "NotifyPresetStatus"], [14, 0, 0, "preset", "Preset"], [14, 0, 0, "presetgroup", "PresetGroup"], [14, 0, 0, "presetsetting", "PresetSetting"], [14, 0, 0, "range", "Range"], [14, 0, 0, "requestcohncert", "RequestCOHNCert"], [14, 0, 0, "requestclearcohncert", "RequestClearCOHNCert"], [14, 0, 0, "requestconnect", "RequestConnect"], [14, 0, 0, "requestconnectnew", "RequestConnectNew"], [14, 0, 0, "requestcreatecohncert", "RequestCreateCOHNCert"], [14, 0, 0, "requestcustompresetupdate", "RequestCustomPresetUpdate"], [14, 0, 0, "requestgetallpresetstatus", "RequestGetAllPresetStatus"], [14, 0, 0, "requestgetapentries", "RequestGetApEntries"], [14, 0, 0, "requestgetcohnstatus", "RequestGetCOHNStatus"], [14, 0, 0, "requestgetlastcapturedmedia", "RequestGetLastCapturedMedia"], [14, 0, 0, "requestgetlivestreamstatus", "RequestGetLiveStreamStatus"], [14, 0, 0, "requestgetpresetstatus", "RequestGetPresetStatus"], [14, 0, 0, "requestreleasenetwork", "RequestReleaseNetwork"], [14, 0, 0, "requestsetcohnsetting", "RequestSetCOHNSetting"], [14, 0, 0, "requestsetcameracontrolstatus", "RequestSetCameraControlStatus"], [14, 0, 0, "requestsetlivestreammode", "RequestSetLiveStreamMode"], [14, 0, 0, "requestsetturboactive", "RequestSetTurboActive"], [14, 0, 0, "requeststartscan", "RequestStartScan"], [14, 0, 0, "responsecohncert", "ResponseCOHNCert"], [14, 0, 0, "responseconnect", "ResponseConnect"], [14, 0, 0, "responseconnectnew", "ResponseConnectNew"], [14, 0, 0, "responsegeneric", "ResponseGeneric"], [14, 0, 0, "responsegetapentries", "ResponseGetApEntries"], [14, 0, 0, "responselastcapturedmedia", "ResponseLastCapturedMedia"], [14, 0, 0, "responsestartscanning", "ResponseStartScanning"], [14, 0, 0, "scanentry", "ScanEntry"], [1, 1, 0, "clear-cohn-certificate", "clear cohn certificate"], [0, 1, 0, "connect-to-a-new-access-point", "connect to a new access point"], [0, 1, 0, "connect-to-provisioned-access-point", "connect to provisioned access point"], [1, 1, 0, "create-cohn-certificate", "create cohn certificate"], [0, 1, 0, "get-ap-scan-results", "get ap scan results"], [5, 1, 0, "get-available-presets", "get available presets"], [1, 1, 0, "get-cohn-certificate", "get cohn certificate"], [1, 1, 0, "get-cohn-status", "get cohn status"], [6, 1, 0, "get-date-time", "get date time"], [6, 1, 0, "get-hardware-info", "get hardware info"], [6, 1, 0, "get-last-captured-media", "get last captured media"], [4, 1, 0, "get-livestream-status", "get livestream status"], [6, 1, 0, "get-local-date-time", "get local date time"], [6, 1, 0, "get-open-gopro-version", "get open gopro version"], [6, 1, 0, "get-setting-capabilities", "get setting capabilities"], [6, 1, 0, "get-setting-values", "get setting values"], [6, 1, 0, "get-status-values", "get status values"], [3, 1, 0, "hilight-moment", "hilight moment"], [2, 1, 0, "keep-alive", "keep alive"], [5, 1, 0, "load-preset", "load preset"], [5, 1, 0, "load-preset-group", "load preset group"], [6, 1, 0, "register-for-setting-capability-updates", "register for setting capability updates"], [6, 1, 0, "register-for-setting-value-updates", "register for setting value updates"], [6, 1, 0, "register-for-status-value-updates", "register for status value updates"], [0, 1, 0, "scan-for-access-points", "scan for access points"], [2, 1, 0, "set-analytics", "set analytics"], [2, 1, 0, "set-ap-control", "set ap control"], [2, 1, 0, "set-camera-control", "set camera control"], [1, 1, 0, "set-cohn-setting", "set cohn setting"], [2, 1, 0, "set-date-time", "set date time"], [4, 1, 0, "set-livestream-mode", "set livestream mode"], [2, 1, 0, "set-local-date-time", "set local date time"], [7, 1, 0, "set-setting", "set setting"], [2, 1, 0, "set-shutter", "set shutter"], [2, 1, 0, "set-turbo-transfer", "set turbo transfer"], [2, 1, 0, "sleep", "sleep"], [6, 1, 0, "unregister-for-setting-capability-updates", "unregister for setting capability updates"], [6, 1, 0, "unregister-for-setting-value-updates", "unregister for setting value updates"], [6, 1, 0, "unregister-for-status-value-updates", "unregister for status value updates"], [5, 1, 0, "update-custom-preset", "update custom preset"], [7, 2, 0, "setting-108", "Setting 108 (Aspect Ratio)"], [7, 2, 0, "setting-121", "Setting 121 (Lens)"], [7, 2, 0, "setting-122", "Setting 122 (Lens)"], [7, 2, 0, "setting-123", "Setting 123 (Time Lapse Digital Lenses)"], [7, 2, 0, "setting-128", "Setting 128 (Media Format)"], [7, 2, 0, "setting-134", "Setting 134 (Anti-Flicker)"], [7, 2, 0, "setting-135", "Setting 135 (Hypersmooth)"], [7, 2, 0, "setting-150", "Setting 150 (Horizon Leveling)"], [7, 2, 0, "setting-151", "Setting 151 (Horizon Leveling)"], [7, 2, 0, "setting-162", "Setting 162 (Max Lens)"], [7, 2, 0, "setting-167", "Setting 167 (HindSight)"], [7, 2, 0, "setting-171", "Setting 171 (Interval)"], [7, 2, 0, "setting-172", "Setting 172 (Duration)"], [7, 2, 0, "setting-173", "Setting 173 (Video Performance Mode)"], [7, 2, 0, "setting-175", "Setting 175 (Controls)"], [7, 2, 0, "setting-176", "Setting 176 (Easy Mode Speed)"], [7, 2, 0, "setting-177", "Setting 177 (Enable Night Photo)"], [7, 2, 0, "setting-178", "Setting 178 (Wireless Band)"], [7, 2, 0, "setting-179", "Setting 179 (Trail Length)"], [7, 2, 0, "setting-180", "Setting 180 (Video Mode)"], [7, 2, 0, "setting-182", "Setting 182 (Bit Rate)"], [7, 2, 0, "setting-183", "Setting 183 (Bit Depth)"], [7, 2, 0, "setting-184", "Setting 184 (Profiles)"], [7, 2, 0, "setting-186", "Setting 186 (Video Mode)"], [7, 2, 0, "setting-187", "Setting 187 (Lapse Mode)"], [7, 2, 0, "setting-189", "Setting 189 (Max Lens Mod)"], [7, 2, 0, "setting-190", "Setting 190 (Max Lens Mod Enable)"], [7, 2, 0, "setting-191", "Setting 191 (Photo Mode)"], [7, 2, 0, "setting-192", "Setting 192 (Aspect Ratio)"], [7, 2, 0, "setting-193", "Setting 193 (Framing)"], [7, 2, 0, "setting-2", "Setting 2 (Resolution)"], [7, 2, 0, "setting-3", "Setting 3 (Frames Per Second)"], [7, 2, 0, "setting-43", "Setting 43 (Webcam Digital Lenses)"], [7, 2, 0, "setting-59", "Setting 59 (Auto Power Down)"], [7, 2, 0, "setting-83", "Setting 83 (GPS)"], [8, 3, 0, "status-1", "Status 1 (Is the system's internal battery present?)"], [8, 3, 0, "status-10", "Status 10 (Is the system currently encoding?)"], [8, 3, 0, "status-100", "Status 100 (Total number of Live Bursts on sdcard)"], [8, 3, 0, "status-102", "Status 102 (Media Mod state)"], [8, 3, 0, "status-103", "Status 103 (Time Warp Speed)"], [8, 3, 0, "status-104", "Status 104 (Is the system's Linux core active?)"], [8, 3, 0, "status-106", "Status 106 (Is Video Hindsight Capture Active?)"], [8, 3, 0, "status-107", "Status 107 (Scheduled Capture Preset ID)"], [8, 3, 0, "status-108", "Status 108 (Is Scheduled Capture set?)"], [8, 3, 0, "status-11", "Status 11 (Is LCD lock active?)"], [8, 3, 0, "status-110", "Status 110 (Display Mod Status (bitmasked))"], [8, 3, 0, "status-111", "Status 111 (Does sdcard meet specified minimum write speed?)"], [8, 3, 0, "status-112", "Status 112 (Number of sdcard write speed errors since device booted)"], [8, 3, 0, "status-113", "Status 113 (Is Turbo Transfer active?)"], [8, 3, 0, "status-114", "Status 114 (Camera control status ID)"], [8, 3, 0, "status-115", "Status 115 (Is the camera connected to a PC via USB?)"], [8, 3, 0, "status-116", "Status 116 (Camera control over USB state)"], [8, 3, 0, "status-117", "Status 117 (Total SD card capacity in Kilobytes)"], [8, 3, 0, "status-118", "Status 118 (Photo interval capture count)"], [8, 3, 0, "status-13", "Status 13 (When encoding video, this is the duration (seconds) of the video so far; 0 otherwise)"], [8, 3, 0, "status-17", "Status 17 (Are Wireless Connections enabled?)"], [8, 3, 0, "status-19", "Status 19 (The pairing state of the camera)"], [8, 3, 0, "status-2", "Status 2 (Rough approximation of internal battery level in bars (or charging))"], [8, 3, 0, "status-20", "Status 20 (The last type of pairing in which the camera was engaged)"], [8, 3, 0, "status-21", "Status 21 (Time since boot (milliseconds) of last successful pairing complete action)"], [8, 3, 0, "status-22", "Status 22 (State of current scan for WiFi Access Points)"], [8, 3, 0, "status-23", "Status 23 (Time since boot (milliseconds) that the WiFi Access Point scan completed)"], [8, 3, 0, "status-24", "Status 24 (WiFi AP provisioning state)"], [8, 3, 0, "status-26", "Status 26 (Wireless remote control version)"], [8, 3, 0, "status-27", "Status 27 (Is a wireless remote control connected?)"], [8, 3, 0, "status-31", "Status 31 (The number of wireless devices connected to the camera)"], [8, 3, 0, "status-32", "Status 32 (Is Preview Stream enabled?)"], [8, 3, 0, "status-33", "Status 33 (Primary Storage Status)"], [8, 3, 0, "status-34", "Status 34 (How many photos can be taken with current settings before sdcard is full)"], [8, 3, 0, "status-35", "Status 35 (How many minutes of video can be captured with current settings before sdcard is full)"], [8, 3, 0, "status-38", "Status 38 (Total number of photos on sdcard)"], [8, 3, 0, "status-39", "Status 39 (Total number of videos on sdcard)"], [8, 3, 0, "status-41", "Status 41 (The current status of Over The Air (OTA) update)"], [8, 3, 0, "status-42", "Status 42 (Is there a pending request to cancel a firmware update download?)"], [8, 3, 0, "status-45", "Status 45 (Is locate camera feature active?)"], [8, 3, 0, "status-54", "Status 54 (Remaining space on the sdcard in Kilobytes)"], [8, 3, 0, "status-55", "Status 55 (Is preview stream supported in current recording/mode/secondary-stream?)"], [8, 3, 0, "status-56", "Status 56 (WiFi signal strength in bars)"], [8, 3, 0, "status-58", "Status 58 (The number of hilights in currently-encoding video (value is set to 0 when encoding stops))"], [8, 3, 0, "status-59", "Status 59 (Time since boot (milliseconds) of most recent hilight in encoding video (set to 0 when encoding stops))"], [8, 3, 0, "status-6", "Status 6 (Is the system currently overheating?)"], [8, 3, 0, "status-65", "Status 65 (Liveview Exposure Select Mode)"], [8, 3, 0, "status-66", "Status 66 (Liveview Exposure Select: y-coordinate (percent))"], [8, 3, 0, "status-67", "Status 67 (Liveview Exposure Select: y-coordinate (percent))"], [8, 3, 0, "status-68", "Status 68 (Does the camera currently have a GPS lock?)"], [8, 3, 0, "status-69", "Status 69 (Is AP mode enabled?)"], [8, 3, 0, "status-70", "Status 70 (Internal battery level (percent))"], [8, 3, 0, "status-74", "Status 74 (Microphone Accessory status)"], [8, 3, 0, "status-75", "Status 75 (Digital Zoom level (percent))"], [8, 3, 0, "status-76", "Status 76 (Wireless Band)"], [8, 3, 0, "status-77", "Status 77 (Is Digital Zoom feature available?)"], [8, 3, 0, "status-78", "Status 78 (Are current video settings mobile friendly? (related to video compression and frame rate))"], [8, 3, 0, "status-79", "Status 79 (Is the camera currently in First Time Use (FTU) UI flow?)"], [8, 3, 0, "status-8", "Status 8 (Is the camera busy?)"], [8, 3, 0, "status-81", "Status 81 (Is 5GHz wireless band available?)"], [8, 3, 0, "status-82", "Status 82 (Is the system fully booted and ready to accept commands?)"], [8, 3, 0, "status-83", "Status 83 (Is the internal battery charged sufficiently to start Over The Air (OTA) update?)"], [8, 3, 0, "status-85", "Status 85 (Is the camera getting too cold to continue recording?)"], [8, 3, 0, "status-86", "Status 86 (Rotational orientation of the camera)"], [8, 3, 0, "status-88", "Status 88 (Is this camera model capable of zooming while encoding?)"], [8, 3, 0, "status-89", "Status 89 (Current Flatmode ID)"], [8, 3, 0, "status-9", "Status 9 (Is Quick Capture feature enabled?)"], [8, 3, 0, "status-93", "Status 93 (Current Video Preset (ID))"], [8, 3, 0, "status-94", "Status 94 (Current Photo Preset (ID))"], [8, 3, 0, "status-95", "Status 95 (Current Time Lapse Preset (ID))"], [8, 3, 0, "status-97", "Status 97 (Current Preset (ID))"], [8, 3, 0, "status-98", "Status 98 (Preset Modified Status, which contains an event ID and a Preset (Group) ID)"], [8, 3, 0, "status-99", "Status 99 (The number of Live Bursts can be captured with current settings before sdcard is full)"]], "Status 101 (Is Capture Delay currently active (i.e": [[8, 3, 0, "status-101", " counting down)?)"]], "Status 105 (Camera lens type (reflects changes to lens settings such as 162, 189, 194, ..": [[8, 3, 0, "status-105", "))"]], "Status 28 (Wireless Pairing State": [[8, 3, 0, "status-28", " Each bit contains state information (see WirelessPairingStateFlags))"]], "Status 29 (SSID of the AP the camera is currently connected to": [[8, 3, 0, "status-29", " On BLE connection, value is big-endian byte-encoded int32)"]], "Status 30 (The camera's WiFi SSID": [[8, 3, 0, "status-30", " On BLE connection, value is big-endian byte-encoded int32)"]], "Status 49 (The current timelapse interval countdown value (e.g. 5...4...3...2...1..": [[8, 3, 0, "status-49", "))"]], "Status 60 (The minimum time between camera status updates (milliseconds)": [[8, 3, 0, "status-60", " Best practice is to not poll for status more often than this)"]], "Status 96 (Current Preset Group (ID) (corresponds to ui_mode_groups in settings": [[8, 3, 0, "status-96", "json))"]]}, "objnames": {"0": ["operation", "Proto", "Proto"], "1": ["operation", "Operation", "Operation"], "2": ["operation", "Setting", "Setting"], "3": ["operation", "Status", "Status"]}, "objtypes": {"0": "operation:Proto", "1": "operation:Operation", "2": "operation:Setting", "3": "operation:Status"}, "terms": {"": [1, 2, 4, 5, 6, 7, 11, 12, 13, 14, 15], "0": [2, 6, 7, 12, 13, 14], "00": [2, 9, 12], "000": 8, "0001": 11, "0002": 11, "0002a5d5c51b": 11, "0003": 11, "0004": 11, "0005": 11, "001": 8, "0072": [11, 12], "0073": 11, "0074": [11, 12], "0075": 11, "0076": [11, 12], "0077": 11, "0090": 11, "0091": 11, "0092": 11, "01": [2, 6, 9, 12], "010": 8, "011": 8, "02": 2, "03": [2, 9], "04": 2, "05": 2, "07": 2, "0x0": 12, "0x01": [2, 13], "0x02": [0, 13], "0x03": [0, 13], "0x04": [0, 13], "0x05": [0, 2, 13], "0x0b": [0, 13], "0x0c": [0, 13], "0x0d": [2, 13], "0x0e": [6, 13], "0x0f": [2, 13], "0x10": [6, 13], "0x12": [6, 13], "0x13": [6, 13], "0x17": [2, 13], "0x18": [3, 13], "0x32": [6, 13], "0x3c": [6, 13], "0x3e": [5, 13], "0x40": [5, 13], "0x42": 2, "0x50": [2, 13], "0x51": [6, 13], "0x52": [6, 13], "0x53": [6, 13], "0x5b": [2, 13], "0x62": [6, 13], "0x64": [5, 13], "0x65": [1, 13], "0x66": [1, 13], "0x67": [1, 13], "0x69": [2, 13], "0x6b": [2, 13], "0x6d": [6, 13], "0x6e": [1, 13], "0x6f": [1, 13], "0x72": [5, 6, 13], "0x73": [6, 13], "0x74": [4, 13], "0x79": [4, 13], "0x82": [0, 6, 13], "0x83": [0, 13], "0x84": [0, 13], "0x85": [0, 13], "0x92": [6, 13], "0x93": [6, 13], "0xa2": [6, 13], "0xe4": [5, 13], "0xe5": [1, 13], "0xe6": [1, 13], "0xe7": [1, 13], "0xe9": [2, 13], "0xeb": [2, 13], "0xed": [6, 13], "0xee": [1, 13], "0xef": [1, 13], "0xf": 12, "0xf1": [1, 2, 4, 5, 13], "0xf2": [5, 13], "0xf3": [5, 13], "0xf4": [4, 13], "0xf5": [1, 4, 5, 6, 13], "0xf9": [4, 13], "0xfea6": 11, "1": [1, 2, 6, 7, 12, 13, 14], "10": [2, 7, 9, 12, 13, 14], "100": [7, 13, 14], "1000": 14, "1001": 14, "1002": 14, "101": [7, 13, 14], "102": [7, 13, 14], "103": [7, 13, 14], "104": [7, 13, 14], "105": [7, 13, 14], "106": [7, 13, 14], "107": [7, 13, 14], "108": [13, 14], "1080": 7, "109": 7, "10x": 8, "11": [6, 7, 13, 14], "110": [7, 13], "111": [7, 13], "112": [7, 13], "113": [7, 13], "114": [2, 7, 13, 14], "115": [7, 13], "116": [7, 13], "117": [7, 13], "118": [7, 13], "119": 7, "11e3": 11, "12": [2, 6, 7, 8, 14], "120": 7, "121": 13, "122": 13, "123": 13, "124": 7, "125": 7, "126": 7, "127": 7, "128": [11, 13], "129": 7, "13": [7, 13, 14], "130": 7, "131": 7, "132": 7, "133": 7, "134": 13, "135": 13, "136": 7, "137": 7, "14": [7, 14], "1440": 7, "15": [7, 14], "150": 13, "150x": 8, "151": 13, "15min": 15, "15x": 8, "16": [7, 14], "162": [5, 13], "167": 13, "17": [7, 13, 14], "171": 13, "172": 13, "173": [5, 13], "175": [5, 13], "176": 13, "177": [5, 13], "178": 13, "179": 13, "18": [7, 14], "180": [5, 8, 13], "1800x": 8, "182": 13, "183": 13, "184": 13, "186": [5, 13], "187": [5, 13], "189": [5, 13], "19": [7, 13, 14], "190": [5, 13], "191": [5, 13], "192": 13, "193": 13, "194": 13, "1f": 2, "1x": [7, 8], "2": [12, 13, 14], "20": [7, 12, 13, 14], "200": 7, "2023": 2, "21": [7, 13, 14], "22": [7, 13, 14], "23": [2, 6, 7, 13, 14], "24": [7, 13, 14], "240": 7, "240fp": 7, "25": [7, 14], "255": 12, "26": [7, 13, 14], "2674f7f65f78": 6, "27": [7, 13, 14], "270": 8, "28": [7, 13, 14], "29": [13, 14], "2x": [7, 8], "3": [2, 12, 13, 14], "30": [7, 13, 14], "300x": 8, "30min": 15, "30x": 8, "31": [2, 6, 12, 13, 14], "32": [13, 14], "33": [13, 14], "34": [13, 14], "35": [13, 14], "36": 14, "37": 14, "38": [13, 14], "39": [13, 14], "3k": 7, "4": [7, 12, 13, 14], "40": 14, "41": [13, 14], "42": [13, 14], "43": [13, 14], "44": 14, "45": [13, 14], "46": 14, "47": 14, "48": 14, "49": [13, 14], "4ghz": 7, "4k": 7, "4x": 7, "5": [7, 13, 14], "50": [7, 14], "50hz": 7, "51": 14, "52": 14, "53": 14, "54": [13, 14], "55": [9, 13, 14], "56": [6, 13, 14], "57": [9, 14], "58": [9, 13, 14], "59": [2, 6, 13, 14], "5ghz": [7, 13], "5k": 7, "5min": 15, "5x": 8, "6": [6, 7, 12, 13, 14], "60": [7, 9, 13, 14], "60hz": 7, "60x": 8, "61": 14, "62": [9, 14], "63": [2, 14], "64": 14, "65": [13, 14], "66": [13, 14], "67": [13, 14], "68": [13, 14], "69": [13, 14], "7": [2, 7, 8, 12, 14], "70": [9, 13, 14], "71": 14, "72": 14, "73": 14, "74": [13, 14], "75": [13, 14], "76": [13, 14], "77": [13, 14], "78": [13, 14], "79": [13, 14], "7k": 7, "8": [7, 11, 13, 14], "80": 14, "81": [13, 14], "8191": 12, "8192": 12, "82": [13, 14], "83": [13, 14], "84": 14, "85": [13, 14], "86": [13, 14], "87": 14, "88": [2, 13, 14], "89": [13, 14], "8x": 7, "9": [7, 13, 14], "90": [8, 14], "900x": 8, "9046": 11, "91": 14, "92": 14, "93": [13, 14], "94": [5, 13, 14], "95": [13, 14], "96": [13, 14], "97": [13, 14], "98": [5, 13, 14], "99": [6, 13, 14], "A": [0, 1, 5, 7, 12, 14, 15], "As": [4, 14], "At": 1, "For": [1, 2, 4, 7, 9, 11, 12, 15], "If": [2, 6, 7, 11, 12, 14, 15], "In": [1, 2, 7, 11, 12, 15], "It": 12, "NOT": 14, "No": [8, 14], "Not": [8, 14], "ON": [7, 11], "On": [0, 1, 2, 7, 13, 14], "One": 8, "The": [0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14], "Then": 9, "There": 12, "These": 7, "To": [0, 5, 8, 12], "aa8d": 11, "abil": 4, "abort": 8, "about": [1, 2, 4, 6, 14], "abov": [2, 6, 7, 9], "accept": [4, 13, 14, 15], "access": [1, 2, 4, 9, 11, 13, 14], "accessori": 13, "accommod": 12, "accomplish": [4, 12], "accordingli": [2, 14], "accumul": 12, "across": [1, 2, 4, 5, 14], "act": 1, "action": [0, 1, 2, 4, 5, 6, 12, 13], "activ": [5, 9, 13, 14, 15], "adapt": 14, "add": [3, 14], "addit": [4, 14], "addition": [1, 9, 14], "address": [1, 14], "adher": 7, "advertis": [2, 10, 14], "affect": 5, "after": [0, 2, 11, 12, 14, 15], "again": 11, "air": 13, "aliv": [2, 10, 13], "all": [1, 2, 6, 11, 12, 14], "allow": [1, 11], "alreadi": 14, "also": [1, 14], "altern": [7, 11, 12], "alwai": [5, 7, 9, 12, 14, 15], "an": [0, 1, 4, 6, 7, 9, 11, 12, 13, 14, 15], "analyt": [2, 13], "anamorph": 14, "ani": [2, 4, 5, 9, 14], "anoth": 7, "anti": 13, "ap": [0, 2, 11, 13, 14], "ap_mac_address": 6, "ap_mac_address_length": 6, "ap_ssid": 6, "ap_ssid_length": 6, "api": [5, 6, 14], "app": [2, 8, 14, 15], "appear": 14, "appropri": 12, "approxim": 13, "ar": [0, 1, 5, 6, 7, 9, 10, 11, 12, 13, 14], "arrai": [6, 12, 14], "arrow": [5, 14], "ascii": 14, "aspect": 13, "associ": [6, 9, 14], "assum": 9, "asynchron": [1, 4, 5, 11, 13, 14], "attain": 7, "attemp": 14, "attempt": [0, 8, 14], "auth": [1, 14], "authent": [0, 14], "author": 1, "auto": [2, 8, 13], "automat": [2, 14, 15], "avail": [0, 5, 9, 13, 14], "avoid": 12, "b5f9xxxx": 11, "back": [5, 14], "bad": 14, "band": 13, "bandwidth": 12, "bar": [13, 14], "base": 9, "basic": [1, 7, 9, 14], "batch": 14, "batteri": [2, 7, 13, 14], "becaus": [7, 14], "been": [0, 12, 14], "befor": [11, 12, 13, 14, 15], "begin": 4, "behavior": [2, 14, 15], "being": 14, "below": [5, 7, 9, 11, 12], "best": [2, 11, 13, 15], "between": [9, 13, 14, 15], "big": [12, 13], "bit": [0, 11, 13], "bitmask": [13, 14], "bitrat": 14, "black": [1, 6, 7, 9], "blacklist": 7, "ble": [2, 10, 12, 13], "bluetooth": [8, 9], "bool": 14, "boost": 7, "boot": [11, 13], "both": 2, "buffer": 12, "build": 11, "burst": 13, "busi": [13, 15], "button": [2, 14], "byte": [0, 2, 6, 12, 13, 14], "c1234567812345": 6, "ca": [1, 14], "cach": 11, "cafil": 1, "camera": [0, 2, 4, 5, 6, 10, 11, 12, 13, 14], "camera_control": 14, "camera_control_statu": 14, "camera_external_control": 14, "camera_idl": 14, "can": [0, 1, 2, 3, 4, 5, 7, 9, 11, 12, 13, 14], "can_add_preset": 14, "cancel": [6, 13], "capabl": [1, 6, 9, 13], "capac": 13, "caption": [5, 14], "captur": [6, 13, 14, 15], "card": [13, 14], "case": [1, 5, 9, 14], "caus": [2, 11, 14], "cert": [1, 14], "certif": [13, 14], "chain": 1, "chang": [0, 1, 4, 5, 6, 7, 9, 13, 14, 15], "charact": 14, "characterist": [10, 12], "charg": 13, "claim": [2, 14, 15], "clear": [1, 13, 14], "click": 1, "client": [1, 2, 5, 11, 14, 15], "close": 14, "code": [2, 9], "cohn": [1, 13, 14], "cohn_act": 14, "cohn_provis": 14, "cohn_state_connectingtonetwork": 14, "cohn_state_error": 14, "cohn_state_exit": 14, "cohn_state_idl": 14, "cohn_state_init": 14, "cohn_state_invalid": 14, "cohn_state_networkconnect": 14, "cohn_state_networkdisconnect": 14, "cohn_unprovis": 14, "cold": 13, "collect": 5, "combin": 2, "command": [0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 14, 15], "common": 14, "commonli": 14, "commun": [1, 9, 10, 11], "complet": [0, 9, 13, 14], "compress": 13, "compris": [7, 12, 14], "configur": [0, 1, 2, 4, 10, 14], "connect": [0, 1, 2, 4, 11, 13, 14, 15], "consid": 12, "construct": 7, "contain": [1, 6, 7, 12, 13, 14], "contextu": [2, 14], "contigu": 14, "continu": 13, "control": [0, 1, 5, 9, 10, 11, 13, 14], "coordin": 13, "core": [9, 13], "correspond": [11, 13, 14], "count": [13, 14], "countdown": 13, "counter": 12, "creat": [1, 5, 13, 14], "creation": [1, 14], "credenti": 1, "crt": 1, "current": [0, 1, 2, 4, 5, 6, 7, 9, 12, 13, 14], "custom": [5, 13, 14], "custom1": 14, "custom2": 14, "custom3": 14, "custom_icon_id": 14, "custom_nam": [5, 14], "custom_title_id": 14, "dai": [2, 6], "data": [2, 6, 9, 10, 11], "date": [2, 6, 13], "date_tim": 2, "daylight": [2, 6], "dbm": 14, "dcim": [6, 14], "deciph": 10, "declar": 14, "default": [5, 8, 14], "defin": [2, 6, 7, 12, 14], "degre": 8, "delai": 13, "delet": [5, 14], "demo": 9, "demonstr": 9, "depacket": 12, "depend": [1, 5, 6, 7, 12, 14, 15], "deprec": 6, "deprecated_length": 6, "depth": 13, "describ": [0, 6, 8, 9, 12, 14], "descript": [11, 12], "deseri": 12, "desir": [9, 14], "detail": [2, 4, 7, 14], "detect": [0, 14], "determin": 12, "devic": [11, 13], "dhcp": 1, "differ": [5, 12], "digit": [9, 13], "directori": [6, 14], "disabl": [0, 2, 8, 14], "disconnect": 14, "discourag": 15, "discov": [11, 14], "discover": 11, "displai": [2, 13, 14], "dn": 14, "dns_primari": 14, "dns_secondari": 14, "do": [0, 11, 12, 14], "doc": [0, 1, 2, 4, 5, 6], "document": [6, 7, 10, 12], "doe": [0, 1, 11, 13, 14], "done": 11, "down": [2, 13], "download": [1, 13], "drop": 14, "dst": 2, "due": 14, "durat": 13, "dure": [0, 3, 11, 14], "dynam": [7, 11], "e": [1, 2, 5, 6, 13, 14, 15], "e7": 2, "each": [7, 11, 12, 13], "easi": [7, 13, 14], "either": [4, 5, 12, 14], "element": [6, 12, 13], "els": 12, "empti": 6, "enabl": [2, 5, 11, 13, 14], "encod": [3, 9, 13, 14, 15], "endian": [12, 13], "endur": 14, "energi": 9, "engag": 13, "english": 14, "enough": 14, "ensur": [0, 11], "entiti": [2, 8, 14], "entri": [0, 14], "enumpresetgroup": 5, "error": [12, 13, 14], "establish": 2, "event": 13, "everi": [2, 7], "exampl": [2, 7, 9, 11, 12, 15], "exit": [2, 5, 12, 14], "expir": 1, "exposur": 13, "extend": 7, "extern": [2, 8, 14], "extract": 12, "f": 12, "facebook": 4, "factori": [5, 11, 14], "fail": [5, 7, 8, 14], "failur": 7, "fals": [8, 14], "far": 13, "fea6": 11, "featur": [0, 1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14], "fewer": 12, "ff": 2, "field": [6, 14], "file": [1, 7, 14], "filenam": [6, 14], "find": 5, "finish": [10, 14], "firmwar": [6, 7, 9, 13], "firmware_vers": 6, "firmware_version_length": 6, "first": [0, 1, 6, 7, 9, 11, 12, 13, 14], "flag": [11, 15], "flat_mode_broadcast_broadcast": 14, "flat_mode_broadcast_record": 14, "flat_mode_idl": 14, "flat_mode_live_burst": 14, "flat_mode_loop": 14, "flat_mode_night_lapse_photo": 14, "flat_mode_night_lapse_video": 14, "flat_mode_photo": 14, "flat_mode_photo_burst": 14, "flat_mode_photo_night": 14, "flat_mode_photo_singl": 14, "flat_mode_playback": 14, "flat_mode_setup": 14, "flat_mode_slomo": 14, "flat_mode_time_lapse_photo": 14, "flat_mode_time_lapse_video": 14, "flat_mode_time_warp_video": 14, "flat_mode_unknown": 14, "flat_mode_video": 14, "flat_mode_video_burst_slomo": 14, "flat_mode_video_light_paint": 14, "flat_mode_video_light_trail": 14, "flat_mode_video_star_trail": 14, "flatmod": [13, 14], "flicker": 13, "flow": 13, "flowchart": 12, "folder": 14, "follow": [1, 4, 7, 10, 11, 12, 14], "form": 12, "format": [8, 9, 12, 13, 14, 15], "found": [0, 5, 6, 7, 14], "fov": [9, 14], "fp": 7, "frame": 13, "french": 14, "frequenc": 14, "friendli": 13, "from": [2, 5, 6, 7, 8, 11, 12, 14], "ftu": 13, "full": [7, 13, 14], "fulli": 13, "function": [1, 9], "futur": [4, 14], "fw_preset_title_360_burst": 14, "fw_preset_title_360_night": 14, "fw_preset_title_360_night_lapse_photo": 14, "fw_preset_title_360_time_lapse_photo": 14, "fw_preset_title_max_2_night_laps": 14, "fw_preset_title_max_2_photo": 14, "fw_preset_title_max_2_time_laps": 14, "fw_preset_title_max_2_time_warp": 14, "fw_preset_title_max_2_video": 14, "g": [1, 5, 13, 14, 15], "gatewai": 14, "gatt": [10, 12], "gener": [1, 2, 4, 5, 14], "german": 14, "get": [0, 1, 4, 5, 6, 7, 13, 14, 15], "ghz": 8, "given": [7, 14], "global": [2, 14], "go": 2, "googl": 12, "gopro": [1, 2, 6, 8, 10, 11, 12, 13, 15], "goprorootca": 1, "gp": [11, 12, 13], "gp12345678": 6, "group": [6, 13, 14], "guarante": 7, "h21": 9, "h22": 9, "h23": [6, 9], "ha": [0, 1, 8, 12, 14], "had": 12, "handl": 2, "handshak": 14, "hard": 2, "hardwar": [6, 13], "have": [0, 1, 11, 12, 13], "hd9": 9, "hdmi": 8, "hdr": [7, 14], "header": [1, 14], "hemi": 14, "hemispher": 8, "here": [7, 12], "hero": 7, "hero10": [1, 9], "hero11": [1, 9], "hero12": [1, 6, 9], "hero9": [1, 9], "high": [1, 7], "highest": 7, "hilight": [9, 13], "hindsight": [9, 13], "home": [9, 14], "honor": 14, "horizon": 13, "hour": [2, 6, 7, 11], "how": [4, 9, 12, 13], "howev": 15, "http": [0, 1, 14], "hypersmooth": 13, "hyperview": 7, "hz": 7, "i": [0, 1, 2, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15], "icon": [5, 14], "icon_id": [5, 14], "id": [0, 1, 2, 3, 4, 5, 6, 9, 10, 12, 14], "identifi": 12, "idl": [2, 8, 14], "immedi": [0, 2, 5, 14], "inadvert": 2, "includ": [12, 14], "inclus": 14, "incom": 15, "incorrect": 14, "index": 14, "indic": [4, 11, 14], "indirectli": 1, "individu": [6, 7, 12, 14], "info": [6, 13, 14], "inform": [2, 6, 7, 11, 13, 14], "initi": [0, 4, 5, 6, 10, 14], "instal": 1, "instruct": 1, "int": 12, "int16": [2, 6], "int32": [13, 14], "integ": 14, "intend": [0, 14], "interact": [2, 14], "intern": [13, 14], "internet": [0, 14], "interv": 13, "interven": 8, "invalid": [12, 14], "ip": [1, 14], "ipaddress": 14, "is_capt": 14, "is_dst": [2, 6], "is_fix": 14, "is_modifi": 14, "iso": 8, "italian": 14, "its": [8, 12], "json": 13, "kbp": 14, "keep": [2, 10, 13], "keep_al": 2, "kilobyt": 13, "lai": 8, "languag": [9, 14], "laps": [5, 13], "larger": 12, "last": [6, 13, 14], "lcd": [2, 13], "leas": 1, "left": 8, "len": [5, 13, 14], "length": [6, 13, 14], "lens": [9, 13, 14], "lens_linear": 14, "lens_superview": 14, "lens_wid": 14, "less": 12, "level": [1, 12, 13, 14], "life": 2, "lifespan": 1, "light": 7, "limit": [11, 12], "linear": 7, "linux": [13, 14], "list": [0, 7, 9, 14], "live": [0, 9, 13, 14], "live_stream_bitr": 14, "live_stream_encod": 14, "live_stream_encode_support": 14, "live_stream_error": 14, "live_stream_error_camera_block": 14, "live_stream_error_createstream": 14, "live_stream_error_inputstream": 14, "live_stream_error_internet": 14, "live_stream_error_network": 14, "live_stream_error_non": 14, "live_stream_error_osnetwork": 14, "live_stream_error_outofmemori": 14, "live_stream_error_sd_card_ful": 14, "live_stream_error_sd_card_remov": 14, "live_stream_error_selectednetworktimeout": 14, "live_stream_error_ssl_handshak": 14, "live_stream_error_unknown": 14, "live_stream_lens_support": 14, "live_stream_lens_supported_arrai": 14, "live_stream_max_lens_unsupport": 14, "live_stream_maximum_stream_bitr": 14, "live_stream_minimum_stream_bitr": 14, "live_stream_state_complete_stay_on": 14, "live_stream_state_config": 14, "live_stream_state_failed_stay_on": 14, "live_stream_state_idl": 14, "live_stream_state_readi": 14, "live_stream_state_reconnect": 14, "live_stream_state_stream": 14, "live_stream_state_unavail": 14, "live_stream_statu": 14, "live_stream_window_size_supported_arrai": 14, "livestream": [4, 13, 14], "liveview": 13, "load": [2, 5, 13, 15], "local": [1, 2, 6, 13, 14], "locat": 13, "lock": [7, 13], "log": [7, 14], "logic": 2, "long": [5, 7, 14], "longer": 12, "longest": [7, 14], "look": 1, "low": [7, 9, 14], "mac": 14, "macaddress": 14, "maco": 1, "macro": 14, "mai": [7, 14, 15], "maintain": 15, "major": 6, "major_length": 6, "manag": [0, 9, 10, 11], "mani": [1, 2, 4, 5, 13, 14], "map": 12, "market": 9, "mask": 14, "match": 12, "max": [5, 8, 13, 14], "max_entri": 14, "maxim": [2, 12], "maximum": [7, 14], "maximum_bitr": 14, "mean": [7, 14], "media": [2, 4, 6, 13, 15], "meet": 13, "memori": 14, "menu": [2, 8, 14], "messag": [0, 1, 2, 4, 5, 6, 9, 10, 13, 14, 15], "meta": 14, "mhz": 14, "microphon": 13, "millisecond": 13, "min": 7, "mini": [1, 9], "minim": 9, "minimum": [9, 13, 14], "minimum_bitr": 14, "minor": 6, "minor_length": 6, "minut": [2, 6, 7, 13], "mo": 7, "mobil": 13, "mod": [5, 13], "mode": [0, 2, 4, 5, 9, 10, 13, 14], "model": [6, 9, 13, 14], "model_nam": 6, "model_name_length": 6, "model_numb": 6, "model_number_length": 6, "modifi": [13, 14], "moment": [3, 13], "month": [2, 6], "more": [1, 6, 7, 11, 12, 13, 14], "most": [1, 2, 9, 13, 14], "motion": 8, "mous": 1, "multipl": 12, "must": [1, 5, 8, 11, 12, 14], "mutabl": 14, "n": 12, "name": [5, 7, 8, 9, 14], "narrow": [7, 11], "nearli": 1, "necessari": [0, 7, 11, 12, 15], "need": [0, 1, 9, 11], "network": [0, 9, 11, 14], "never": [7, 8], "new": [0, 1, 5, 11, 13, 14], "next": 7, "night": [5, 13], "non": [5, 14], "none": 7, "noout": 1, "nope": 12, "note": [6, 12], "notif": [0, 1, 2, 4, 5, 6, 11, 13, 14], "notifi": [5, 11, 14], "notifprovisioningst": [0, 13], "notifstartscan": [0, 13], "notifycohnstatu": [1, 13], "notifylivestreamstatu": [4, 13], "notifypresetstatu": [5, 13], "number": [6, 13, 14], "obei": 14, "object": [0, 7, 12, 14], "occur": 14, "off": [2, 15], "offset": [2, 6], "often": [7, 13], "ok": [1, 8], "onc": [1, 11, 12], "one": [5, 6, 7, 8, 12, 14], "ongo": 6, "onli": [0, 3, 5, 6, 7, 8, 12, 14], "onto": 12, "open": [1, 6, 10, 12, 13], "openssl": 1, "oper": [8, 10, 13, 14], "option": [4, 5, 6, 7, 8, 12, 14], "order": [1, 2, 5, 7, 10, 11, 12, 15], "organ": 5, "orient": 13, "ota": 13, "other": [4, 15], "otherwis": [2, 12, 13], "out": 14, "outlin": 7, "outsid": [8, 14], "over": [1, 13], "overh": 13, "overrid": 14, "overview": 11, "p": 12, "packet": 10, "page": [2, 14], "paint": 7, "pair": [10, 12, 13], "paramet": [2, 5, 6, 7, 12], "pars": [11, 12], "part": [2, 6, 14], "parti": [2, 14, 15], "pass": [5, 14], "password": [1, 11, 14], "path": [1, 6, 14], "payload": [6, 10], "pc": 13, "pem": 14, "pend": 13, "per": [12, 13], "percent": 13, "perform": [1, 5, 9, 13, 14], "period": [0, 5, 14, 15], "peripher": 11, "permiss": 11, "pertain": 9, "photo": [5, 6, 9, 13, 14, 15], "physic": [2, 14], "pill": [5, 14], "platform": 4, "plug": 8, "point": [1, 2, 4, 9, 11, 13, 14], "poll": [4, 13], "portugues": 14, "possibl": [12, 14], "power": [2, 11, 13, 15], "practic": [2, 11, 13, 15], "prepend": 12, "present": [7, 13], "preset": [2, 7, 9, 13, 15], "preset_arrai": 14, "preset_group_arrai": 14, "preset_group_endurance_video_icon_id": 14, "preset_group_id_easy_photo_anamorphic_len": 14, "preset_group_id_easy_photo_hemi_len": 14, "preset_group_id_easy_photo_hemi_lens_2": 14, "preset_group_id_easy_photo_macro_len": 14, "preset_group_id_easy_photo_single_len": 14, "preset_group_id_easy_timelapse_anamorphic_len": 14, "preset_group_id_easy_timelapse_hemi_len": 14, "preset_group_id_easy_timelapse_hemi_lens_2": 14, "preset_group_id_easy_timelapse_macro_len": 14, "preset_group_id_easy_timelapse_single_len": 14, "preset_group_id_easy_video_anamorphic_len": 14, "preset_group_id_easy_video_endurance_single_len": 14, "preset_group_id_easy_video_hemi_len": 14, "preset_group_id_easy_video_hemi_lens_2": 14, "preset_group_id_easy_video_longest_battery_single_len": 14, "preset_group_id_easy_video_macro_len": 14, "preset_group_id_easy_video_single_len": 14, "preset_group_id_photo": 14, "preset_group_id_photo_anamorphic_len": 14, "preset_group_id_photo_hemi_len": 14, "preset_group_id_photo_hemi_lens_2": 14, "preset_group_id_photo_macro_len": 14, "preset_group_id_photo_single_len": 14, "preset_group_id_photo_spherical_len": 14, "preset_group_id_special_hemi": 14, "preset_group_id_special_hemi_lens_2": 14, "preset_group_id_special_intern": 14, "preset_group_id_special_spher": 14, "preset_group_id_timelaps": 14, "preset_group_id_timelapse_anamorphic_len": 14, "preset_group_id_timelapse_hemi_len": 14, "preset_group_id_timelapse_hemi_lens_2": 14, "preset_group_id_timelapse_macro_len": 14, "preset_group_id_timelapse_single_len": 14, "preset_group_id_timelapse_spherical_len": 14, "preset_group_id_video": 14, "preset_group_id_video_anamorphic_len": 14, "preset_group_id_video_anamorphic_lens_log": 14, "preset_group_id_video_anamorphic_lens_standard": 14, "preset_group_id_video_endurance_single_len": 14, "preset_group_id_video_hemi_len": 14, "preset_group_id_video_hemi_lens_2": 14, "preset_group_id_video_hemi_lens_2_log": 14, "preset_group_id_video_hemi_lens_2_standard": 14, "preset_group_id_video_longest_battery_single_len": 14, "preset_group_id_video_macro_len": 14, "preset_group_id_video_macro_lens_log": 14, "preset_group_id_video_macro_lens_standard": 14, "preset_group_id_video_single_len": 14, "preset_group_id_video_single_lens_hdr": 14, "preset_group_id_video_single_lens_log": 14, "preset_group_id_video_single_lens_standard": 14, "preset_group_id_video_spherical_len": 14, "preset_group_id_video_spherical_lens_log": 14, "preset_group_id_video_spherical_lens_standard": 14, "preset_group_long_bat_video_icon_id": 14, "preset_group_max_photo_icon_id": 14, "preset_group_max_timelapse_icon_id": 14, "preset_group_max_video_icon_id": 14, "preset_group_photo_icon_id": 14, "preset_group_timelapse_icon_id": 14, "preset_group_video_icon_id": 14, "preset_icon_360_burst": 14, "preset_icon_360_nightlaps": 14, "preset_icon_360_nightlapse_photo": 14, "preset_icon_360_photo": 14, "preset_icon_360_photo_night": 14, "preset_icon_360_timelaps": 14, "preset_icon_360_timelapse_photo": 14, "preset_icon_360_timewarp": 14, "preset_icon_360_video": 14, "preset_icon_act": 14, "preset_icon_activity_endur": 14, "preset_icon_air": 14, "preset_icon_bas": 14, "preset_icon_basic_quality_video": 14, "preset_icon_bik": 14, "preset_icon_bit": 14, "preset_icon_burst": 14, "preset_icon_burst_2": 14, "preset_icon_burst_slomo": 14, "preset_icon_c": 14, "preset_icon_chesti": 14, "preset_icon_cinemat": 14, "preset_icon_cinematic_endur": 14, "preset_icon_custom": 14, "preset_icon_easy_hdr_profil": 14, "preset_icon_easy_max_light_paint": 14, "preset_icon_easy_max_light_trail": 14, "preset_icon_easy_max_photo": 14, "preset_icon_easy_max_star_trail": 14, "preset_icon_easy_max_timewarp": 14, "preset_icon_easy_max_video": 14, "preset_icon_easy_standard_profil": 14, "preset_icon_ep": 14, "preset_icon_follow_cam": 14, "preset_icon_full_fram": 14, "preset_icon_helmet": 14, "preset_icon_highest_quality_video": 14, "preset_icon_indoor": 14, "preset_icon_light_paint": 14, "preset_icon_light_trail": 14, "preset_icon_live_burst": 14, "preset_icon_loop": 14, "preset_icon_max": 14, "preset_icon_max_light_paint": 14, "preset_icon_max_light_trail": 14, "preset_icon_max_photo": 14, "preset_icon_max_star_trail": 14, "preset_icon_max_timewarp": 14, "preset_icon_max_video": 14, "preset_icon_motor": 14, "preset_icon_mount": 14, "preset_icon_nightlaps": 14, "preset_icon_nightlapse_photo": 14, "preset_icon_outdoor": 14, "preset_icon_panorama": 14, "preset_icon_photo": 14, "preset_icon_photo_2": 14, "preset_icon_photo_night": 14, "preset_icon_pov": 14, "preset_icon_selfi": 14, "preset_icon_shaki": 14, "preset_icon_simple_night_photo": 14, "preset_icon_simple_super_photo": 14, "preset_icon_sk": 14, "preset_icon_slomo_endur": 14, "preset_icon_snail": 14, "preset_icon_snow": 14, "preset_icon_standard_endur": 14, "preset_icon_standard_quality_video": 14, "preset_icon_star": 14, "preset_icon_star_trail": 14, "preset_icon_stationary_1": 14, "preset_icon_stationary_2": 14, "preset_icon_stationary_3": 14, "preset_icon_stationary_4": 14, "preset_icon_surf": 14, "preset_icon_timelaps": 14, "preset_icon_timelapse_2": 14, "preset_icon_timelapse_photo": 14, "preset_icon_timewarp": 14, "preset_icon_timewarp_2": 14, "preset_icon_trail": 14, "preset_icon_travel": 14, "preset_icon_ultra_slo_mo": 14, "preset_icon_video": 14, "preset_icon_video_2": 14, "preset_icon_wat": 14, "preset_title_360_deg_burst": 14, "preset_title_360_deg_night_lapse_photo": 14, "preset_title_360_deg_night_lapse_video": 14, "preset_title_360_deg_night_photo": 14, "preset_title_360_deg_photo": 14, "preset_title_360_deg_time_lapse_photo": 14, "preset_title_360_deg_time_lapse_video": 14, "preset_title_360_deg_time_warp": 14, "preset_title_360_deg_video": 14, "preset_title_360_night_laps": 14, "preset_title_360_night_photo": 14, "preset_title_360_photo": 14, "preset_title_360_time_warp": 14, "preset_title_360_timelaps": 14, "preset_title_360_video": 14, "preset_title_act": 14, "preset_title_activity_endur": 14, "preset_title_air": 14, "preset_title_bas": 14, "preset_title_basic_quality_video": 14, "preset_title_bik": 14, "preset_title_bit": 14, "preset_title_burst": 14, "preset_title_burst_slomo": 14, "preset_title_c": 14, "preset_title_chesti": 14, "preset_title_cinemat": 14, "preset_title_cinematic_endur": 14, "preset_title_custom": 14, "preset_title_custom_cinemat": 14, "preset_title_custom_slomo": 14, "preset_title_d": 14, "preset_title_easy_hdr_profil": 14, "preset_title_easy_max_light_paint": 14, "preset_title_easy_max_light_trail": 14, "preset_title_easy_max_photo": 14, "preset_title_easy_max_star_trail": 14, "preset_title_easy_max_timewarp": 14, "preset_title_easy_max_video": 14, "preset_title_easy_standard_profil": 14, "preset_title_ep": 14, "preset_title_extended_batteri": 14, "preset_title_follow_cam": 14, "preset_title_fpv": 14, "preset_title_full_fram": 14, "preset_title_hdr": 14, "preset_title_helmet": 14, "preset_title_highest_qu": 14, "preset_title_highest_quality_video": 14, "preset_title_indoor": 14, "preset_title_landscap": 14, "preset_title_light_paint": 14, "preset_title_light_trail": 14, "preset_title_live_burst": 14, "preset_title_log": 14, "preset_title_longest_batteri": 14, "preset_title_loop": 14, "preset_title_max": 14, "preset_title_max_lens_timewarp": 14, "preset_title_max_lens_video": 14, "preset_title_max_light_paint": 14, "preset_title_max_light_trail": 14, "preset_title_max_photo": 14, "preset_title_max_star_trail": 14, "preset_title_max_timewarp": 14, "preset_title_max_video": 14, "preset_title_motor": 14, "preset_title_mount": 14, "preset_title_night": 14, "preset_title_night_laps": 14, "preset_title_outdoor": 14, "preset_title_pano_time_laps": 14, "preset_title_panorama": 14, "preset_title_photo": 14, "preset_title_photo_2": 14, "preset_title_pov": 14, "preset_title_selfi": 14, "preset_title_shaki": 14, "preset_title_simple_night_photo": 14, "preset_title_simple_super_photo": 14, "preset_title_simple_time_warp": 14, "preset_title_simple_video": 14, "preset_title_simple_video_endur": 14, "preset_title_sk": 14, "preset_title_slomo": 14, "preset_title_slomo_endur": 14, "preset_title_snow": 14, "preset_title_standard": 14, "preset_title_standard_endur": 14, "preset_title_standard_quality_video": 14, "preset_title_star": 14, "preset_title_star_trail": 14, "preset_title_stationary_1": 14, "preset_title_stationary_2": 14, "preset_title_stationary_3": 14, "preset_title_stationary_4": 14, "preset_title_surf": 14, "preset_title_time_laps": 14, "preset_title_time_warp": 14, "preset_title_time_warp_2": 14, "preset_title_trail": 14, "preset_title_travel": 14, "preset_title_tripod": 14, "preset_title_ultra_slo_mo": 14, "preset_title_user_defined_custom_nam": [5, 14], "preset_title_video": 14, "preset_title_vlog": 14, "preset_title_wat": 14, "press": [2, 5, 14], "prevent": [2, 15], "preview": 13, "previous": [0, 7, 14], "primari": [13, 14], "pro": 7, "procedur": [11, 12], "process": [1, 11], "profil": [13, 14], "program": 9, "programmat": 2, "properti": [1, 14], "protobuf": [0, 1, 2, 4, 5, 6, 9, 10], "protocol": [9, 11], "provid": 1, "provis": [0, 13, 14], "provisioning_aborted_by_system": 14, "provisioning_cancelled_by_us": 14, "provisioning_error_eula_block": 14, "provisioning_error_failed_to_associ": 14, "provisioning_error_no_internet": 14, "provisioning_error_password_auth": 14, "provisioning_error_unsupported_typ": 14, "provisioning_never_start": 14, "provisioning_st": 14, "provisioning_start": 14, "provisioning_success_new_ap": 14, "provisioning_success_old_ap": 14, "provisioning_unknown": 14, "pseudocod": 12, "public": 9, "purpos": 1, "put": [2, 4, 11], "qualiti": 7, "queri": [1, 4, 5, 7, 8, 9, 10, 11, 15], "quick": [1, 13], "rate": 13, "ratio": 13, "re": [7, 11, 14], "reach": 2, "read": [9, 10, 11], "readi": [4, 10, 13, 14], "realtim": 8, "receiv": [0, 6, 9, 11, 12, 14], "recent": [9, 13], "reclaim": [2, 14], "reconnect": 14, "record": [3, 13], "refer": 10, "reflect": 13, "regardless": 14, "regist": [1, 4, 5, 6, 13, 14], "register_cohn_statu": 14, "register_live_stream_statu": 14, "register_live_stream_status_bitr": 14, "register_live_stream_status_error": 14, "register_live_stream_status_mod": 14, "register_live_stream_status_statu": 14, "register_preset_statu": 14, "register_preset_status_preset": 14, "register_preset_status_preset_group_arrai": 14, "regularli": 2, "reject": [7, 9, 14, 15], "rel": [6, 14], "relat": 13, "releas": 7, "relev": [0, 9, 11, 12], "remain": 13, "remot": 13, "remov": [8, 14], "reorder": [5, 14], "replac": 1, "report": 6, "repres": [7, 14], "represent": 14, "request": [0, 1, 2, 3, 4, 5, 6, 7, 9, 12, 13, 14], "requestclearcohncert": [1, 13], "requestcohncert": [1, 13], "requestconnect": [0, 13], "requestconnectnew": [0, 13], "requestcreatecohncert": [1, 13], "requestcustompresetupd": [5, 13], "requestgetapentri": [0, 13], "requestgetcohnstatu": [1, 13], "requestgetlastcapturedmedia": [6, 13], "requestgetlivestreamstatu": [4, 13], "requestgetpresetstatu": [5, 13], "requestsetcameracontrolstatu": [2, 13], "requestsetcohnset": [1, 13], "requestsetlivestreammod": [4, 13], "requestsetturboact": [2, 13], "requeststartscan": [0, 13], "requir": [1, 11, 14], "reserv": [6, 12], "reset": [1, 2, 5, 11, 12], "resolut": [13, 14], "respect": 12, "respond": 12, "respons": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13, 14], "response_length": 6, "responsecohncert": [1, 13], "responseconnect": [0, 13], "responseconnectnew": [0, 13], "responsegener": [1, 2, 4, 5, 13], "responsegetapentri": [0, 13], "responselastcapturedmedia": [6, 13], "responsestartscan": [0, 13], "result": [0, 6, 7, 9, 12, 13, 14], "result_argument_invalid": 14, "result_argument_out_of_bound": 14, "result_ill_form": 14, "result_not_support": 14, "result_resource_not_avail": 14, "result_resource_not_availbl": 14, "result_success": 14, "result_unknown": 14, "return": [0, 1, 2, 5, 6, 14], "right": [1, 8], "room": 14, "root": [1, 14], "rotat": 13, "rough": 13, "router": 1, "row": [7, 12], "rtmp": [4, 14], "rule": 7, "russian": 14, "saturdai": 6, "save": [2, 6, 14], "scan": [0, 11, 13, 14], "scan_entry_flag": 14, "scan_flag_associ": 14, "scan_flag_authent": 14, "scan_flag_best_ssid": 14, "scan_flag_configur": [0, 14], "scan_flag_open": 14, "scan_flag_unsupported_typ": 14, "scan_id": 14, "scanning_aborted_by_system": 14, "scanning_cancelled_by_us": 14, "scanning_never_start": 14, "scanning_st": 14, "scanning_start": 14, "scanning_success": 14, "scanning_unknown": 14, "schedul": 13, "schema": 7, "scheme": 12, "screen": [2, 14], "sd": [13, 14], "sdcard": [6, 13, 14, 15], "second": [2, 6, 13, 14], "secondari": [13, 14], "section": [6, 8, 9, 10, 11, 12], "secur": 1, "see": [1, 4, 6, 7, 9, 11, 12, 13], "select": 13, "send": [2, 5, 9, 12, 14, 15], "sent": [0, 4, 5, 6, 11, 12, 14], "serial": [0, 2, 12, 14], "serial_numb": 6, "serial_number_length": 6, "server": 14, "servic": 11, "set": [0, 1, 2, 4, 5, 6, 9, 10, 11, 12, 14, 15], "setting_arrai": 14, "settingid": [7, 13], "setup": [9, 10, 14], "short": 7, "shorthand": 11, "should": [9, 11, 15], "shutter": [2, 4, 13], "side": 8, "sign": 1, "signal": [13, 14, 15], "signal_frequency_mhz": 14, "signal_strength_bar": 14, "simultan": 15, "sinc": 13, "singl": [6, 12, 14], "site": 4, "size": 12, "sleep": [2, 11, 13], "slo": 7, "slow": 8, "so": [11, 13], "social": 4, "some": [0, 1, 2, 12, 15], "sourc": [0, 1, 2, 4, 5, 6, 14], "space": 13, "spanish": 14, "special": 14, "specif": [1, 15], "specifi": [5, 12, 13, 14], "speed": 13, "spheric": 14, "split": 12, "spreadsheet": 7, "ssid": [11, 13, 14], "ssl": [1, 14], "sta": [0, 14], "stack": 14, "standard": [7, 14], "star": 7, "start": [0, 2, 4, 6, 12, 13, 14], "start_index": 14, "starting_bitr": 14, "startup": 14, "state": [0, 5, 6, 7, 9, 10, 11, 12, 13, 14], "static": 14, "static_ip": 14, "station": [0, 4, 14], "stationari": 7, "statu": [0, 1, 2, 4, 6, 10, 12, 14, 15], "status": [6, 9, 12, 14], "step": [1, 11], "still": 2, "stop": [4, 13, 14], "storag": 13, "store": 11, "stream": [0, 9, 13, 14], "streamer": 14, "strength": [13, 14], "string": [6, 8, 12, 14], "structur": 12, "submenu": 5, "subnet": 14, "subscrib": 11, "subscript": 11, "subsequ": [9, 11, 12], "success": [12, 13, 14], "suffici": 13, "summar": 12, "summari": 14, "sundai": 6, "super": 7, "superset": [7, 14], "superview": 7, "support": [0, 1, 2, 4, 6, 7, 11, 13, 14], "suppos": 7, "swap": 8, "swedish": 14, "switch": 14, "synchron": [4, 5, 14], "system": [1, 13, 14, 15], "tabl": [5, 9, 10, 11, 12], "take": 14, "taken": 13, "tap": 2, "task": 14, "tell": [2, 14, 15], "terminologi": 12, "text": [1, 14], "than": [12, 13, 15], "thei": 12, "therebi": 5, "therefor": [0, 15], "thi": [0, 1, 2, 3, 5, 6, 7, 9, 11, 12, 13, 14, 15], "thing": 1, "third": [2, 14, 15], "those": 6, "three": 8, "through": [1, 9, 10], "throughout": 12, "time": [2, 6, 11, 13, 14, 15], "timelaps": [13, 14], "timeout": 14, "timeout_second": 14, "timer": 2, "timewarp": 7, "timezon": [2, 6], "titl": [5, 14], "title_id": [5, 14], "title_numb": 14, "tl": [1, 14], "tlv": [2, 3, 5, 6, 7, 12], "too": 13, "top": 12, "total": [13, 14], "total_configured_ssid": 14, "total_entri": 14, "track": 2, "trail": 13, "transfer": [2, 13, 14], "tri": 7, "trigger": [0, 1, 14], "triplet": 12, "tripod": 7, "true": 8, "trust": 1, "try": 9, "turbo": [2, 13, 14], "tutori": [9, 12], "twitch": 4, "two": [1, 8, 11, 12], "type": [0, 1, 2, 3, 4, 5, 6, 7, 10, 13, 14], "typespec": 14, "u": 12, "ubuntu": 1, "ui": [2, 5, 11, 13, 14], "ui_mode_group": 13, "uint16": [2, 6], "uint32": 5, "uint8": [2, 6, 7], "ultra": 7, "un": 2, "unavail": 14, "undefin": [9, 15], "under": 6, "understand": 9, "unknown": [8, 14], "unless": [12, 15], "unregist": [6, 13, 14], "unregister_live_stream_statu": 14, "unregister_preset_statu": 14, "unset": [4, 15], "unsign": 6, "until": 4, "up": 11, "updat": [1, 2, 5, 6, 9, 13, 14], "upon": 11, "upright": 8, "upsid": 8, "url": [4, 14], "us": [0, 1, 2, 3, 4, 5, 9, 10, 12, 13, 14, 15], "usb": 13, "user": [2, 5, 7, 9, 14, 15], "user_defin": 14, "usernam": [1, 14], "usual": [7, 14], "utc": [2, 6], "utf": 14, "util": 1, "uuid": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12], "v01": 9, "v4": 12, "valid": [1, 7, 11, 14], "valu": [1, 2, 5, 6, 7, 9, 13, 14], "value_length": 7, "variabl": [7, 12], "variou": [6, 9, 10], "vehicl": 7, "verifi": 8, "version": [6, 7, 9, 12, 13], "vertic": 7, "via": [0, 1, 2, 4, 5, 6, 7, 9, 11, 13, 14], "video": [5, 6, 9, 13, 14, 15], "wa": [7, 11, 13, 14], "wai": 11, "wait": [11, 14, 15], "wake": 11, "walk": 9, "warp": 13, "webcam": 13, "weekdai": 6, "well": 9, "were": 5, "when": [1, 2, 5, 6, 12, 13, 14], "whenev": 6, "where": [0, 9, 12], "whether": [2, 5, 11, 12, 14], "which": [0, 1, 2, 5, 11, 13, 14], "while": [0, 3, 9, 11, 13, 14, 15], "whitelist": 7, "who": 14, "wide": 7, "widescreen": 7, "wifi": [2, 11, 13, 14], "window": 1, "window_s": 14, "window_size_1080": 14, "window_size_480": 14, "window_size_720": 14, "wireless": 13, "wirelesspairingstateflag": 13, "wish": [2, 14, 15], "within": [5, 14], "without": [1, 2, 6], "work": [7, 12], "worksheet": 7, "write": [11, 13], "x509": 1, "xxxx": 11, "y": 13, "ye": 6, "year": [1, 2, 6], "yet": 14, "youtub": 4, "zero": [0, 2, 5, 8, 14], "zone": 14, "zoom": 13}, "titles": ["Access Point", "Camera on the Home Network", "Control", "Hilights", "Live Streaming", "Presets", "Query", "Settings", "Statuses", "Welcome to Open GoPro BLE API\u2019s documentation!", "Protocol", "BLE Setup", "Data Protocol", "ID Tables", "Protobuf Documentation", "State Management"], "titleterms": {"": [8, 9], "0": 8, "1": 8, "10": 8, "100": 8, "101": 8, "102": 8, "103": 8, "104": 8, "105": 8, "106": 8, "107": 8, "108": [7, 8], "11": 8, "110": 8, "111": 8, "112": 8, "113": 8, "114": 8, "115": 8, "116": 8, "117": 8, "118": 8, "121": 7, "122": 7, "123": 7, "128": 7, "13": [8, 12], "134": 7, "135": 7, "150": 7, "151": 7, "16": 12, "162": [7, 8], "167": 7, "17": 8, "171": 7, "172": 7, "173": 7, "175": 7, "176": 7, "177": 7, "178": 7, "179": 7, "180": 7, "182": 7, "183": 7, "184": 7, "186": 7, "187": 7, "189": [7, 8], "19": 8, "190": 7, "191": 7, "192": 7, "193": 7, "194": 8, "2": [7, 8], "20": 8, "21": 8, "22": 8, "23": 8, "24": 8, "26": 8, "27": 8, "28": 8, "29": 8, "3": [7, 8], "30": 8, "31": 8, "32": 8, "33": 8, "34": 8, "35": 8, "38": 8, "39": 8, "4": 8, "41": 8, "42": 8, "43": 7, "45": 8, "49": 8, "5": [8, 12], "54": 8, "55": 8, "56": 8, "58": 8, "59": [7, 8], "5ghz": 8, "6": 8, "60": 8, "65": 8, "66": 8, "67": 8, "68": 8, "69": 8, "70": 8, "74": 8, "75": 8, "76": 8, "77": 8, "78": 8, "79": 8, "8": 8, "81": 8, "82": 8, "83": [7, 8], "85": 8, "86": 8, "88": 8, "89": 8, "9": 8, "93": 8, "94": 8, "95": 8, "96": 8, "97": 8, "98": 8, "99": 8, "On": 8, "The": 8, "accept": 8, "access": [0, 8], "accessori": 8, "action": 8, "activ": 8, "advertis": 11, "air": 8, "aliv": 15, "an": 8, "anti": 7, "ap": 8, "api": 9, "approxim": 8, "ar": 8, "aspect": 7, "auto": 7, "avail": 8, "band": [7, 8], "bar": 8, "batteri": 8, "befor": 8, "best": 8, "between": 8, "big": 8, "bit": [7, 8, 12], "bitmask": 8, "ble": [8, 9, 11], "boot": 8, "burst": 8, "busi": 8, "byte": 8, "camera": [1, 7, 8, 9, 15], "can": 8, "cancel": 8, "capabl": [7, 8], "capac": 8, "captur": 8, "card": 8, "certif": 1, "chang": 8, "characterist": 11, "charg": 8, "cold": 8, "command": [8, 12, 13], "complet": 8, "compress": 8, "configur": 11, "connect": 8, "contain": 8, "continu": [8, 12], "control": [2, 7, 8, 15], "coordin": 8, "core": 8, "correspond": 8, "count": 8, "countdown": 8, "current": 8, "data": 12, "deciph": 12, "delai": 8, "depth": 7, "detail": 1, "devic": 8, "digit": 8, "disconnect": 0, "displai": 8, "document": [9, 14], "doe": 8, "down": 8, "download": 8, "durat": [7, 8], "e": 8, "each": 8, "enabl": [7, 8], "encod": 8, "endian": 8, "engag": 8, "enum": 14, "enumcameracontrolstatu": 14, "enumcohnnetworkst": 14, "enumcohnstatu": 14, "enumflatmod": 14, "enumlen": 14, "enumlivestreamerror": 14, "enumlivestreamstatu": 14, "enumpresetgroup": 14, "enumpresetgroupicon": 14, "enumpreseticon": 14, "enumpresettitl": 14, "enumprovis": 14, "enumregisterlivestreamstatu": 14, "enumregisterpresetstatu": 14, "enumresultgener": 14, "enumscan": 14, "enumscanentryflag": 14, "enumwindows": 14, "error": 8, "event": 8, "exposur": 8, "extend": 12, "far": 8, "featur": 8, "fi": 7, "finish": 11, "firmwar": 8, "first": 8, "flatmod": 8, "flicker": 7, "flow": 8, "format": 7, "fov": 7, "frame": [7, 8], "friendli": 8, "from": 0, "ftu": 8, "full": 8, "fulli": 8, "g": 8, "gatt": 11, "gener": [9, 12], "get": [8, 9], "gopro": 9, "gp": [7, 8], "group": [5, 8], "have": 8, "header": 12, "hilight": [3, 8], "hindsight": [7, 8], "home": 1, "horizon": 7, "how": 8, "hypersmooth": 7, "i": 8, "id": [7, 8, 13], "inform": 8, "int32": 8, "intern": 8, "interv": [7, 8], "json": [7, 8], "keep": 15, "kilobyt": 8, "laps": [7, 8], "last": 8, "lcd": 8, "len": [7, 8], "length": [7, 12], "level": [7, 8], "limit": 9, "linux": 8, "live": [4, 8], "liveview": 8, "locat": 8, "lock": 8, "manag": 15, "mani": 8, "max": 7, "media": [8, 14], "meet": 8, "messag": [11, 12], "microphon": 8, "millisecond": 8, "minimum": 8, "minut": 8, "mobil": 8, "mod": [7, 8], "mode": [7, 8, 11], "model": 8, "modifi": [5, 8], "more": 8, "most": 8, "network": 1, "night": 7, "notifprovisioningst": 14, "notifstartscan": 14, "notifycohnstatu": 14, "notifylivestreamstatu": 14, "notifypresetstatu": 14, "number": 8, "off": 7, "often": 8, "open": 9, "oper": [0, 1, 2, 3, 4, 5, 6, 7], "orient": 8, "ota": 8, "otherwis": 8, "over": 8, "overh": 8, "packet": 12, "pair": [8, 11], "payload": 12, "pc": 8, "pend": 8, "per": 7, "percent": 8, "perform": 7, "photo": [7, 8], "point": [0, 8], "poll": 8, "practic": 8, "present": 8, "preset": [5, 8, 14], "presetgroup": 14, "presetset": 14, "preview": 8, "primari": 8, "procedur": 1, "profil": 7, "protobuf": [12, 13, 14], "protocol": [10, 12], "provis": [1, 8], "queri": [6, 12, 13], "quick": 8, "rang": 14, "rate": [7, 8], "ratio": 7, "readi": [8, 15], "recent": 8, "record": 8, "reflect": 8, "relat": 8, "remain": 8, "remot": 8, "request": 8, "requestclearcohncert": 14, "requestcohncert": 14, "requestconnect": 14, "requestconnectnew": 14, "requestcreatecohncert": 14, "requestcustompresetupd": 14, "requestgetallpresetstatu": 14, "requestgetapentri": 14, "requestgetcohnstatu": 14, "requestgetlastcapturedmedia": 14, "requestgetlivestreamstatu": 14, "requestgetpresetstatu": 14, "requestreleasenetwork": 14, "requestsetcameracontrolstatu": 14, "requestsetcohnset": 14, "requestsetlivestreammod": 14, "requestsetturboact": 14, "requeststartscan": 14, "resolut": 7, "responsecohncert": 14, "responseconnect": 14, "responseconnectnew": 14, "responsegener": 14, "responsegetapentri": 14, "responselastcapturedmedia": 14, "responsestartscan": 14, "rotat": 8, "rough": 8, "scan": 8, "scanentri": 14, "schedul": 8, "sd": 8, "sdcard": 8, "second": [7, 8], "secondari": 8, "see": 8, "select": 8, "send": 11, "set": [7, 8, 13], "setup": 11, "signal": 8, "sinc": 8, "so": 8, "space": 8, "specifi": 8, "speed": [7, 8], "ssid": 8, "start": [8, 9], "state": [8, 15], "statu": [5, 8, 13], "status": 8, "stop": 8, "storag": 8, "stream": [4, 8], "strength": 8, "success": 8, "suffici": 8, "support": [8, 9], "system": 8, "tabl": 13, "taken": 8, "than": 8, "thi": 8, "time": 8, "timelaps": 8, "too": 8, "total": 8, "trail": 7, "transfer": 8, "turbo": 8, "type": [8, 12], "ui": 8, "ui_mode_group": 8, "updat": 8, "us": 8, "usb": 8, "valu": [8, 12], "verifi": 1, "version": 8, "via": 8, "video": [7, 8], "view": 1, "wa": 8, "warp": 8, "welcom": 9, "when": 8, "which": 8, "while": 8, "wi": 7, "wifi": 8, "wireless": 8, "wirelesspairingstateflag": 8, "write": 8, "xlsx": 7, "y": 8, "zoom": 8}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Access Point": [[0, "access-point"]], "Advertisements": [[11, "advertisements"]], "Anti-Flicker (134)": [[7, "anti-flicker-134"]], "Are Wireless Connections enabled? (17)": [[8, "are-wireless-connections-enabled-17"]], "Are current video settings mobile friendly? (related to video compression and frame rate) (78)": [[8, "are-current-video-settings-mobile-friendly-related-to-video-compression-and-frame-rate-78"]], "Aspect Ratio (108)": [[7, "aspect-ratio-108"]], "Aspect Ratio (192)": [[7, "aspect-ratio-192"]], "Auto Off (59)": [[7, "auto-off-59"]], "BLE Characteristics": [[11, "ble-characteristics"]], "BLE Setup": [[11, "ble-setup"]], "Bit Depth (183)": [[7, "bit-depth-183"]], "Bit Rate (182)": [[7, "bit-rate-182"]], "Camera Capabilities": [[7, "camera-capabilities"]], "Camera Control": [[15, "camera-control"]], "Camera Readiness": [[15, "camera-readiness"]], "Camera control over USB state (116)": [[8, "camera-control-over-usb-state-116"]], "Camera control status ID (114)": [[8, "camera-control-status-id-114"]], "Camera lens type (reflects changes to lens settings such as 162, 189, 194, \u2026) (105)": [[8, "camera-lens-type-reflects-changes-to-lens-settings-such-as-162-189-194-105"]], "Camera on the Home Network": [[1, "camera-on-the-home-network"]], "Certificates": [[1, "certificates"]], "Command IDs": [[13, "command-ids"]], "Commands": [[12, "commands"]], "Configure GATT Characteristics": [[11, "configure-gatt-characteristics"]], "Continuation Packets": [[12, "continuation-packets"]], "Control": [[2, "control"]], "Controls (175)": [[7, "controls-175"]], "Current Flatmode ID (89)": [[8, "current-flatmode-id-89"]], "Current Photo Preset (ID) (94)": [[8, "current-photo-preset-id-94"]], "Current Preset (ID) (97)": [[8, "current-preset-id-97"]], "Current Preset Group (ID) (corresponds to ui_mode_groups in settings.json) (96)": [[8, "current-preset-group-id-corresponds-to-ui-mode-groups-in-settings-json-96"]], "Current Time Lapse Preset (ID) (95)": [[8, "current-time-lapse-preset-id-95"]], "Current Video Preset (ID) (93)": [[8, "current-video-preset-id-93"]], "Data Protocol": [[12, "data-protocol"]], "Decipher Message Payload Type": [[12, "decipher-message-payload-type"]], "Digital Zoom level (percent) (75)": [[8, "digital-zoom-level-percent-75"]], "Disconnect from Access Point": [[0, "disconnect-from-access-point"]], "Display Mod Status (bitmasked) (110)": [[8, "display-mod-status-bitmasked-110"]], "Does sdcard meet specified minimum write speed? (111)": [[8, "does-sdcard-meet-specified-minimum-write-speed-111"]], "Does the camera currently have a GPS lock? (68)": [[8, "does-the-camera-currently-have-a-gps-lock-68"]], "Duration (172)": [[7, "duration-172"]], "EnumCOHNNetworkState": [[14, "enumcohnnetworkstate"]], "EnumCOHNStatus": [[14, "enumcohnstatus"]], "EnumCameraControlStatus": [[14, "enumcameracontrolstatus"]], "EnumFlatMode": [[14, "enumflatmode"]], "EnumLens": [[14, "enumlens"]], "EnumLiveStreamError": [[14, "enumlivestreamerror"]], "EnumLiveStreamStatus": [[14, "enumlivestreamstatus"]], "EnumPresetGroup": [[14, "enumpresetgroup"]], "EnumPresetGroupIcon": [[14, "enumpresetgroupicon"]], "EnumPresetIcon": [[14, "enumpreseticon"]], "EnumPresetTitle": [[14, "enumpresettitle"]], "EnumProvisioning": [[14, "enumprovisioning"]], "EnumRegisterLiveStreamStatus": [[14, "enumregisterlivestreamstatus"]], "EnumRegisterPresetStatus": [[14, "enumregisterpresetstatus"]], "EnumResultGeneric": [[14, "enumresultgeneric"]], "EnumScanEntryFlags": [[14, "enumscanentryflags"]], "EnumScanning": [[14, "enumscanning"]], "EnumWindowSize": [[14, "enumwindowsize"]], "Enums": [[14, "enums"]], "Extended (13-bit) Packets": [[12, "extended-13-bit-packets"]], "Extended (16-bit) Packets": [[12, "extended-16-bit-packets"]], "FOV (43)": [[7, "fov-43"]], "Finish Pairing": [[11, "finish-pairing"]], "Format (128)": [[7, "format-128"]], "Frames Per Second (3)": [[7, "frames-per-second-3"]], "Framing (193)": [[7, "framing-193"]], "GPS (83)": [[7, "gps-83"]], "General": [[9, "general"]], "General (5-bit) Packets": [[12, "general-5-bit-packets"]], "Getting Started": [[9, "getting-started"]], "Hilights": [[3, "hilights"]], "HindSight (167)": [[7, "hindsight-167"]], "Horizon Leveling (150)": [[7, "horizon-leveling-150"]], "Horizon Leveling (151)": [[7, "horizon-leveling-151"]], "How many minutes of video can be captured with current settings before sdcard is full (35)": [[8, "how-many-minutes-of-video-can-be-captured-with-current-settings-before-sdcard-is-full-35"]], "How many photos can be taken with current settings before sdcard is full (34)": [[8, "how-many-photos-can-be-taken-with-current-settings-before-sdcard-is-full-34"]], "Hypersmooth (135)": [[7, "hypersmooth-135"]], "ID Tables": [[13, "id-tables"]], "Internal battery level (percent) (70)": [[8, "internal-battery-level-percent-70"]], "Interval (171)": [[7, "interval-171"]], "Is 5GHz wireless band available? (81)": [[8, "is-5ghz-wireless-band-available-81"]], "Is AP mode enabled? (69)": [[8, "is-ap-mode-enabled-69"]], "Is Capture Delay currently active (i.e. counting down)? (101)": [[8, "is-capture-delay-currently-active-i-e-counting-down-101"]], "Is Digital Zoom feature available? (77)": [[8, "is-digital-zoom-feature-available-77"]], "Is LCD lock active? (11)": [[8, "is-lcd-lock-active-11"]], "Is Preview Stream enabled? (32)": [[8, "is-preview-stream-enabled-32"]], "Is Quick Capture feature enabled? (9)": [[8, "is-quick-capture-feature-enabled-9"]], "Is Scheduled Capture set? (108)": [[8, "is-scheduled-capture-set-108"]], "Is Turbo Transfer active? (113)": [[8, "is-turbo-transfer-active-113"]], "Is Video Hindsight Capture Active? (106)": [[8, "is-video-hindsight-capture-active-106"]], "Is a wireless remote control connected? (27)": [[8, "is-a-wireless-remote-control-connected-27"]], "Is locate camera feature active? (45)": [[8, "is-locate-camera-feature-active-45"]], "Is preview stream supported in current recording/mode/secondary-stream? (55)": [[8, "is-preview-stream-supported-in-current-recording-mode-secondary-stream-55"]], "Is the camera busy? (8)": [[8, "is-the-camera-busy-8"]], "Is the camera connected to a PC via USB? (115)": [[8, "is-the-camera-connected-to-a-pc-via-usb-115"]], "Is the camera currently in First Time Use (FTU) UI flow? (79)": [[8, "is-the-camera-currently-in-first-time-use-ftu-ui-flow-79"]], "Is the camera getting too cold to continue recording? (85)": [[8, "is-the-camera-getting-too-cold-to-continue-recording-85"]], "Is the internal battery charged sufficiently to start Over The Air (OTA) update? (83)": [[8, "is-the-internal-battery-charged-sufficiently-to-start-over-the-air-ota-update-83"]], "Is the system currently encoding? (10)": [[8, "is-the-system-currently-encoding-10"]], "Is the system currently overheating? (6)": [[8, "is-the-system-currently-overheating-6"]], "Is the system fully booted and ready to accept commands? (82)": [[8, "is-the-system-fully-booted-and-ready-to-accept-commands-82"]], "Is the system\u2019s Linux core active? (104)": [[8, "is-the-system-s-linux-core-active-104"]], "Is the system\u2019s internal battery present? (1)": [[8, "is-the-system-s-internal-battery-present-1"]], "Is there a pending request to cancel a firmware update download? (42)": [[8, "is-there-a-pending-request-to-cancel-a-firmware-update-download-42"]], "Is this camera model capable of zooming while encoding? (88)": [[8, "is-this-camera-model-capable-of-zooming-while-encoding-88"]], "JSON": [[7, "json"]], "Keep Alive": [[15, "keep-alive"]], "Lapse Mode (187)": [[7, "lapse-mode-187"]], "Lens (121)": [[7, "lens-121"]], "Lens (122)": [[7, "lens-122"]], "Lens (123)": [[7, "lens-123"]], "Limitations": [[9, "limitations"]], "Live Streaming": [[4, "live-streaming"]], "Liveview Exposure Select Mode (65)": [[8, "liveview-exposure-select-mode-65"]], "Liveview Exposure Select: y-coordinate (percent) (66)": [[8, "liveview-exposure-select-y-coordinate-percent-66"]], "Liveview Exposure Select: y-coordinate (percent) (67)": [[8, "liveview-exposure-select-y-coordinate-percent-67"]], "Max Lens Mod (189)": [[7, "max-lens-mod-189"]], "Max Lens Mod Enable (162)": [[7, "max-lens-mod-enable-162"]], "Max Lens Mod Enable (190)": [[7, "max-lens-mod-enable-190"]], "Media": [[14, "media"]], "Media Mod state (102)": [[8, "media-mod-state-102"]], "Message Payload": [[12, "message-payload"]], "Microphone Accessory status (74)": [[8, "microphone-accessory-status-74"]], "Night Photo (177)": [[7, "night-photo-177"]], "NotifProvisioningState": [[14, "notifprovisioningstate"]], "NotifStartScanning": [[14, "notifstartscanning"]], "NotifyCOHNStatus": [[14, "notifycohnstatus"]], "NotifyLiveStreamStatus": [[14, "notifylivestreamstatus"]], "NotifyPresetStatus": [[14, "notifypresetstatus"]], "Number of sdcard write speed errors since device booted (112)": [[8, "number-of-sdcard-write-speed-errors-since-device-booted-112"]], "Operations": [[0, "operations"], [1, "operations"], [2, "operations"], [3, "operations"], [4, "operations"], [5, "operations"], [6, "operations"], [7, "operations"]], "Packet Headers": [[12, "packet-headers"]], "Packetization": [[12, "packetization"]], "Pairing Mode": [[11, "pairing-mode"]], "Photo Mode (191)": [[7, "photo-mode-191"]], "Photo interval capture count (118)": [[8, "photo-interval-capture-count-118"]], "Preset": [[14, "preset"]], "Preset Groups": [[5, "preset-groups"]], "Preset Modified Status": [[5, "preset-modified-status"]], "Preset Modified Status, which contains an event ID and a Preset (Group) ID (98)": [[8, "preset-modified-status-which-contains-an-event-id-and-a-preset-group-id-98"]], "PresetGroup": [[14, "presetgroup"]], "PresetSetting": [[14, "presetsetting"]], "Presets": [[5, "presets"]], "Primary Storage Status (33)": [[8, "primary-storage-status-33"]], "Profiles (184)": [[7, "profiles-184"]], "Protobuf": [[12, "protobuf"]], "Protobuf Documentation": [[14, "protobuf-documentation"]], "Protobuf IDs": [[13, "protobuf-ids"]], "Protocol": [[10, "protocol"]], "Provisioning Procedure": [[1, "provisioning-procedure"]], "Queries": [[12, "queries"]], "Query": [[6, "query"]], "Query IDs": [[13, "query-ids"]], "Remaining space on the sdcard in Kilobytes (54)": [[8, "remaining-space-on-the-sdcard-in-kilobytes-54"]], "RequestCOHNCert": [[14, "requestcohncert"]], "RequestClearCOHNCert": [[14, "requestclearcohncert"]], "RequestConnect": [[14, "requestconnect"]], "RequestConnectNew": [[14, "requestconnectnew"]], "RequestCreateCOHNCert": [[14, "requestcreatecohncert"]], "RequestCustomPresetUpdate": [[14, "requestcustompresetupdate"]], "RequestGetApEntries": [[14, "requestgetapentries"]], "RequestGetCOHNStatus": [[14, "requestgetcohnstatus"]], "RequestGetLastCapturedMedia": [[14, "requestgetlastcapturedmedia"]], "RequestGetLiveStreamStatus": [[14, "requestgetlivestreamstatus"]], "RequestGetPresetStatus": [[14, "requestgetpresetstatus"]], "RequestReleaseNetwork": [[14, "requestreleasenetwork"]], "RequestSetCOHNSetting": [[14, "requestsetcohnsetting"]], "RequestSetCameraControlStatus": [[14, "requestsetcameracontrolstatus"]], "RequestSetLiveStreamMode": [[14, "requestsetlivestreammode"]], "RequestSetTurboActive": [[14, "requestsetturboactive"]], "RequestStartScan": [[14, "requeststartscan"]], "Resolution (2)": [[7, "resolution-2"]], "ResponseCOHNCert": [[14, "responsecohncert"]], "ResponseConnect": [[14, "responseconnect"]], "ResponseConnectNew": [[14, "responseconnectnew"]], "ResponseGeneric": [[14, "responsegeneric"]], "ResponseGetApEntries": [[14, "responsegetapentries"]], "ResponseGetApEntries::ScanEntry": [[14, "responsegetapentries-scanentry"]], "ResponseLastCapturedMedia": [[14, "responselastcapturedmedia"]], "ResponseStartScanning": [[14, "responsestartscanning"]], "Rotational orientation of the camera (86)": [[8, "rotational-orientation-of-the-camera-86"]], "Rough approximation of internal battery level in bars (or charging) (2)": [[8, "rough-approximation-of-internal-battery-level-in-bars-or-charging-2"]], "SSID of the AP the camera is currently connected to. On BLE connection, value is big-endian byte-encoded int32 (29)": [[8, "ssid-of-the-ap-the-camera-is-currently-connected-to-on-ble-connection-value-is-big-endian-byte-encoded-int32-29"]], "Scheduled Capture Preset ID (107)": [[8, "scheduled-capture-preset-id-107"]], "Send Messages": [[11, "send-messages"]], "Setting IDs": [[7, "setting-ids"], [13, "setting-ids"]], "Settings": [[7, "settings"]], "Speed (176)": [[7, "speed-176"]], "State Management": [[15, "state-management"]], "State of current scan for WiFi Access Points (22)": [[8, "state-of-current-scan-for-wifi-access-points-22"]], "Status IDs": [[8, "status-ids"], [13, "status-ids"]], "Statuses": [[8, "statuses"]], "Supported Cameras": [[9, "supported-cameras"]], "The camera\u2019s WiFi SSID. On BLE connection, value is big-endian byte-encoded int32 (30)": [[8, "the-camera-s-wifi-ssid-on-ble-connection-value-is-big-endian-byte-encoded-int32-30"]], "The current status of Over The Air (OTA) update (41)": [[8, "the-current-status-of-over-the-air-ota-update-41"]], "The current timelapse interval countdown value (e.g. 5\u20264\u20263\u20262\u20261\u2026) (49)": [[8, "the-current-timelapse-interval-countdown-value-e-g-5-4-3-2-1-49"]], "The last type of pairing in which the camera was engaged (20)": [[8, "the-last-type-of-pairing-in-which-the-camera-was-engaged-20"]], "The minimum time between camera status updates (milliseconds). Best practice is to not poll for status more often than this (60)": [[8, "the-minimum-time-between-camera-status-updates-milliseconds-best-practice-is-to-not-poll-for-status-more-often-than-this-60"]], "The number of Live Bursts can be captured with current settings before sdcard is full (99)": [[8, "the-number-of-live-bursts-can-be-captured-with-current-settings-before-sdcard-is-full-99"]], "The number of hilights in currently-encoding video (value is set to 0 when encoding stops) (58)": [[8, "the-number-of-hilights-in-currently-encoding-video-value-is-set-to-0-when-encoding-stops-58"]], "The number of wireless devices connected to the camera (31)": [[8, "the-number-of-wireless-devices-connected-to-the-camera-31"]], "The pairing state of the camera (19)": [[8, "the-pairing-state-of-the-camera-19"]], "Time Warp Speed (103)": [[8, "time-warp-speed-103"]], "Time since boot (milliseconds) of last successful pairing complete action (21)": [[8, "time-since-boot-milliseconds-of-last-successful-pairing-complete-action-21"]], "Time since boot (milliseconds) of most recent hilight in encoding video (set to 0 when encoding stops) (59)": [[8, "time-since-boot-milliseconds-of-most-recent-hilight-in-encoding-video-set-to-0-when-encoding-stops-59"]], "Time since boot (milliseconds) that the WiFi Access Point scan completed (23)": [[8, "time-since-boot-milliseconds-that-the-wifi-access-point-scan-completed-23"]], "Total SD card capacity in Kilobytes (117)": [[8, "total-sd-card-capacity-in-kilobytes-117"]], "Total number of Live Bursts on sdcard (100)": [[8, "total-number-of-live-bursts-on-sdcard-100"]], "Total number of photos on sdcard (38)": [[8, "total-number-of-photos-on-sdcard-38"]], "Total number of videos on sdcard (39)": [[8, "total-number-of-videos-on-sdcard-39"]], "Trail Length (179)": [[7, "trail-length-179"]], "Type Length Value": [[12, "type-length-value"]], "Verifying Certificate": [[1, "verifying-certificate"]], "Video Mode (180)": [[7, "video-mode-180"]], "Video Mode (186)": [[7, "video-mode-186"]], "Video Performance Modes (173)": [[7, "video-performance-modes-173"]], "View Certificate Details": [[1, "view-certificate-details"]], "Welcome to Open GoPro BLE API\u2019s documentation!": [[9, "welcome-to-open-gopro-ble-api-s-documentation"]], "When encoding video, this is the duration (seconds) of the video so far; 0 otherwise (13)": [[8, "when-encoding-video-this-is-the-duration-seconds-of-the-video-so-far-0-otherwise-13"]], "Wi-fi Band (178)": [[7, "wi-fi-band-178"]], "WiFi AP provisioning state (24)": [[8, "wifi-ap-provisioning-state-24"]], "WiFi signal strength in bars (56)": [[8, "wifi-signal-strength-in-bars-56"]], "Wireless Band (76)": [[8, "wireless-band-76"]], "Wireless Pairing State. Each bit contains state information (see WirelessPairingStateFlags) (28)": [[8, "wireless-pairing-state-each-bit-contains-state-information-see-wirelesspairingstateflags-28"]], "Wireless remote control version (26)": [[8, "wireless-remote-control-version-26"]], "XLSX": [[7, "xlsx"]]}, "docnames": ["features/access_points", "features/cohn", "features/control", "features/hilights", "features/live_streaming", "features/presets", "features/query", "features/settings", "features/statuses", "index", "protocol", "protocol/ble_setup", "protocol/data_protocol", "protocol/id_tables", "protocol/protobuf", "protocol/state_management"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["features/access_points.rst", "features/cohn.rst", "features/control.rst", "features/hilights.rst", "features/live_streaming.rst", "features/presets.rst", "features/query.rst", "features/settings.rst", "features/statuses.rst", "index.rst", "protocol.rst", "protocol/ble_setup.rst", "protocol/data_protocol.rst", "protocol/id_tables.rst", "protocol/protobuf.rst", "protocol/state_management.rst"], "indexentries": {}, "objects": {"": [[14, 0, 0, "enumcohnnetworkstate", "EnumCOHNNetworkState"], [14, 0, 0, "enumcohnstatus", "EnumCOHNStatus"], [14, 0, 0, "enumcameracontrolstatus", "EnumCameraControlStatus"], [14, 0, 0, "enumflatmode", "EnumFlatMode"], [14, 0, 0, "enumlens", "EnumLens"], [14, 0, 0, "enumlivestreamerror", "EnumLiveStreamError"], [14, 0, 0, "enumlivestreamstatus", "EnumLiveStreamStatus"], [14, 0, 0, "enumpresetgroup", "EnumPresetGroup"], [14, 0, 0, "enumpresetgroupicon", "EnumPresetGroupIcon"], [14, 0, 0, "enumpreseticon", "EnumPresetIcon"], [14, 0, 0, "enumpresettitle", "EnumPresetTitle"], [14, 0, 0, "enumprovisioning", "EnumProvisioning"], [14, 0, 0, "enumregisterlivestreamstatus", "EnumRegisterLiveStreamStatus"], [14, 0, 0, "enumregisterpresetstatus", "EnumRegisterPresetStatus"], [14, 0, 0, "enumresultgeneric", "EnumResultGeneric"], [14, 0, 0, "enumscanentryflags", "EnumScanEntryFlags"], [14, 0, 0, "enumscanning", "EnumScanning"], [14, 0, 0, "enumwindowsize", "EnumWindowSize"], [14, 0, 0, "media", "Media"], [14, 0, 0, "notifprovisioningstate", "NotifProvisioningState"], [14, 0, 0, "notifstartscanning", "NotifStartScanning"], [14, 0, 0, "notifycohnstatus", "NotifyCOHNStatus"], [14, 0, 0, "notifylivestreamstatus", "NotifyLiveStreamStatus"], [14, 0, 0, "notifypresetstatus", "NotifyPresetStatus"], [14, 0, 0, "preset", "Preset"], [14, 0, 0, "presetgroup", "PresetGroup"], [14, 0, 0, "presetsetting", "PresetSetting"], [14, 0, 0, "requestcohncert", "RequestCOHNCert"], [14, 0, 0, "requestclearcohncert", "RequestClearCOHNCert"], [14, 0, 0, "requestconnect", "RequestConnect"], [14, 0, 0, "requestconnectnew", "RequestConnectNew"], [14, 0, 0, "requestcreatecohncert", "RequestCreateCOHNCert"], [14, 0, 0, "requestcustompresetupdate", "RequestCustomPresetUpdate"], [14, 0, 0, "requestgetapentries", "RequestGetApEntries"], [14, 0, 0, "requestgetcohnstatus", "RequestGetCOHNStatus"], [14, 0, 0, "requestgetlastcapturedmedia", "RequestGetLastCapturedMedia"], [14, 0, 0, "requestgetlivestreamstatus", "RequestGetLiveStreamStatus"], [14, 0, 0, "requestgetpresetstatus", "RequestGetPresetStatus"], [14, 0, 0, "requestreleasenetwork", "RequestReleaseNetwork"], [14, 0, 0, "requestsetcohnsetting", "RequestSetCOHNSetting"], [14, 0, 0, "requestsetcameracontrolstatus", "RequestSetCameraControlStatus"], [14, 0, 0, "requestsetlivestreammode", "RequestSetLiveStreamMode"], [14, 0, 0, "requestsetturboactive", "RequestSetTurboActive"], [14, 0, 0, "requeststartscan", "RequestStartScan"], [14, 0, 0, "responsecohncert", "ResponseCOHNCert"], [14, 0, 0, "responseconnect", "ResponseConnect"], [14, 0, 0, "responseconnectnew", "ResponseConnectNew"], [14, 0, 0, "responsegeneric", "ResponseGeneric"], [14, 0, 0, "responsegetapentries", "ResponseGetApEntries"], [14, 0, 0, "responselastcapturedmedia", "ResponseLastCapturedMedia"], [14, 0, 0, "responsestartscanning", "ResponseStartScanning"], [14, 0, 0, "scanentry", "ScanEntry"], [1, 1, 0, "clear-cohn-certificate", "clear cohn certificate"], [0, 1, 0, "connect-to-a-new-access-point", "connect to a new access point"], [0, 1, 0, "connect-to-provisioned-access-point", "connect to provisioned access point"], [1, 1, 0, "create-cohn-certificate", "create cohn certificate"], [0, 1, 0, "get-ap-scan-results", "get ap scan results"], [5, 1, 0, "get-available-presets", "get available presets"], [1, 1, 0, "get-cohn-certificate", "get cohn certificate"], [1, 1, 0, "get-cohn-status", "get cohn status"], [6, 1, 0, "get-date-time", "get date time"], [6, 1, 0, "get-hardware-info", "get hardware info"], [6, 1, 0, "get-last-captured-media", "get last captured media"], [4, 1, 0, "get-livestream-status", "get livestream status"], [6, 1, 0, "get-local-date-time", "get local date time"], [6, 1, 0, "get-open-gopro-version", "get open gopro version"], [6, 1, 0, "get-setting-capabilities", "get setting capabilities"], [6, 1, 0, "get-setting-values", "get setting values"], [6, 1, 0, "get-status-values", "get status values"], [3, 1, 0, "hilight-moment", "hilight moment"], [2, 1, 0, "keep-alive", "keep alive"], [5, 1, 0, "load-preset", "load preset"], [5, 1, 0, "load-preset-group", "load preset group"], [6, 1, 0, "register-for-setting-capability-updates", "register for setting capability updates"], [6, 1, 0, "register-for-setting-value-updates", "register for setting value updates"], [6, 1, 0, "register-for-status-value-updates", "register for status value updates"], [0, 1, 0, "scan-for-access-points", "scan for access points"], [2, 1, 0, "set-analytics", "set analytics"], [2, 1, 0, "set-ap-control", "set ap control"], [2, 1, 0, "set-camera-control", "set camera control"], [1, 1, 0, "set-cohn-setting", "set cohn setting"], [2, 1, 0, "set-date-time", "set date time"], [4, 1, 0, "set-livestream-mode", "set livestream mode"], [2, 1, 0, "set-local-date-time", "set local date time"], [7, 1, 0, "set-setting", "set setting"], [2, 1, 0, "set-shutter", "set shutter"], [2, 1, 0, "set-turbo-transfer", "set turbo transfer"], [2, 1, 0, "sleep", "sleep"], [6, 1, 0, "unregister-for-setting-capability-updates", "unregister for setting capability updates"], [6, 1, 0, "unregister-for-setting-value-updates", "unregister for setting value updates"], [6, 1, 0, "unregister-for-status-value-updates", "unregister for status value updates"], [5, 1, 0, "update-custom-preset", "update custom preset"], [7, 2, 0, "setting-108", "Setting 108 (Aspect Ratio)"], [7, 2, 0, "setting-121", "Setting 121 (Lens)"], [7, 2, 0, "setting-122", "Setting 122 (Lens)"], [7, 2, 0, "setting-123", "Setting 123 (Time Lapse Digital Lenses)"], [7, 2, 0, "setting-128", "Setting 128 (Media Format)"], [7, 2, 0, "setting-134", "Setting 134 (Anti-Flicker)"], [7, 2, 0, "setting-135", "Setting 135 (Hypersmooth)"], [7, 2, 0, "setting-150", "Setting 150 (Horizon Leveling)"], [7, 2, 0, "setting-151", "Setting 151 (Horizon Leveling)"], [7, 2, 0, "setting-162", "Setting 162 (Max Lens)"], [7, 2, 0, "setting-167", "Setting 167 (HindSight)"], [7, 2, 0, "setting-171", "Setting 171 (Interval)"], [7, 2, 0, "setting-172", "Setting 172 (Duration)"], [7, 2, 0, "setting-173", "Setting 173 (Video Performance Mode)"], [7, 2, 0, "setting-175", "Setting 175 (Controls)"], [7, 2, 0, "setting-176", "Setting 176 (Easy Mode Speed)"], [7, 2, 0, "setting-177", "Setting 177 (Enable Night Photo)"], [7, 2, 0, "setting-178", "Setting 178 (Wireless Band)"], [7, 2, 0, "setting-179", "Setting 179 (Trail Length)"], [7, 2, 0, "setting-180", "Setting 180 (Video Mode)"], [7, 2, 0, "setting-182", "Setting 182 (Bit Rate)"], [7, 2, 0, "setting-183", "Setting 183 (Bit Depth)"], [7, 2, 0, "setting-184", "Setting 184 (Profiles)"], [7, 2, 0, "setting-186", "Setting 186 (Video Mode)"], [7, 2, 0, "setting-187", "Setting 187 (Lapse Mode)"], [7, 2, 0, "setting-189", "Setting 189 (Max Lens Mod)"], [7, 2, 0, "setting-190", "Setting 190 (Max Lens Mod Enable)"], [7, 2, 0, "setting-191", "Setting 191 (Photo Mode)"], [7, 2, 0, "setting-192", "Setting 192 (Aspect Ratio)"], [7, 2, 0, "setting-193", "Setting 193 (Framing)"], [7, 2, 0, "setting-2", "Setting 2 (Resolution)"], [7, 2, 0, "setting-3", "Setting 3 (Frames Per Second)"], [7, 2, 0, "setting-43", "Setting 43 (Webcam Digital Lenses)"], [7, 2, 0, "setting-59", "Setting 59 (Auto Power Down)"], [7, 2, 0, "setting-83", "Setting 83 (GPS)"], [8, 3, 0, "status-1", "Status 1 (Is the system's internal battery present?)"], [8, 3, 0, "status-10", "Status 10 (Is the system currently encoding?)"], [8, 3, 0, "status-100", "Status 100 (Total number of Live Bursts on sdcard)"], [8, 3, 0, "status-102", "Status 102 (Media Mod state)"], [8, 3, 0, "status-103", "Status 103 (Time Warp Speed)"], [8, 3, 0, "status-104", "Status 104 (Is the system's Linux core active?)"], [8, 3, 0, "status-106", "Status 106 (Is Video Hindsight Capture Active?)"], [8, 3, 0, "status-107", "Status 107 (Scheduled Capture Preset ID)"], [8, 3, 0, "status-108", "Status 108 (Is Scheduled Capture set?)"], [8, 3, 0, "status-11", "Status 11 (Is LCD lock active?)"], [8, 3, 0, "status-110", "Status 110 (Display Mod Status (bitmasked))"], [8, 3, 0, "status-111", "Status 111 (Does sdcard meet specified minimum write speed?)"], [8, 3, 0, "status-112", "Status 112 (Number of sdcard write speed errors since device booted)"], [8, 3, 0, "status-113", "Status 113 (Is Turbo Transfer active?)"], [8, 3, 0, "status-114", "Status 114 (Camera control status ID)"], [8, 3, 0, "status-115", "Status 115 (Is the camera connected to a PC via USB?)"], [8, 3, 0, "status-116", "Status 116 (Camera control over USB state)"], [8, 3, 0, "status-117", "Status 117 (Total SD card capacity in Kilobytes)"], [8, 3, 0, "status-118", "Status 118 (Photo interval capture count)"], [8, 3, 0, "status-13", "Status 13 (When encoding video, this is the duration (seconds) of the video so far; 0 otherwise)"], [8, 3, 0, "status-17", "Status 17 (Are Wireless Connections enabled?)"], [8, 3, 0, "status-19", "Status 19 (The pairing state of the camera)"], [8, 3, 0, "status-2", "Status 2 (Rough approximation of internal battery level in bars (or charging))"], [8, 3, 0, "status-20", "Status 20 (The last type of pairing in which the camera was engaged)"], [8, 3, 0, "status-21", "Status 21 (Time since boot (milliseconds) of last successful pairing complete action)"], [8, 3, 0, "status-22", "Status 22 (State of current scan for WiFi Access Points)"], [8, 3, 0, "status-23", "Status 23 (Time since boot (milliseconds) that the WiFi Access Point scan completed)"], [8, 3, 0, "status-24", "Status 24 (WiFi AP provisioning state)"], [8, 3, 0, "status-26", "Status 26 (Wireless remote control version)"], [8, 3, 0, "status-27", "Status 27 (Is a wireless remote control connected?)"], [8, 3, 0, "status-31", "Status 31 (The number of wireless devices connected to the camera)"], [8, 3, 0, "status-32", "Status 32 (Is Preview Stream enabled?)"], [8, 3, 0, "status-33", "Status 33 (Primary Storage Status)"], [8, 3, 0, "status-34", "Status 34 (How many photos can be taken with current settings before sdcard is full)"], [8, 3, 0, "status-35", "Status 35 (How many minutes of video can be captured with current settings before sdcard is full)"], [8, 3, 0, "status-38", "Status 38 (Total number of photos on sdcard)"], [8, 3, 0, "status-39", "Status 39 (Total number of videos on sdcard)"], [8, 3, 0, "status-41", "Status 41 (The current status of Over The Air (OTA) update)"], [8, 3, 0, "status-42", "Status 42 (Is there a pending request to cancel a firmware update download?)"], [8, 3, 0, "status-45", "Status 45 (Is locate camera feature active?)"], [8, 3, 0, "status-54", "Status 54 (Remaining space on the sdcard in Kilobytes)"], [8, 3, 0, "status-55", "Status 55 (Is preview stream supported in current recording/mode/secondary-stream?)"], [8, 3, 0, "status-56", "Status 56 (WiFi signal strength in bars)"], [8, 3, 0, "status-58", "Status 58 (The number of hilights in currently-encoding video (value is set to 0 when encoding stops))"], [8, 3, 0, "status-59", "Status 59 (Time since boot (milliseconds) of most recent hilight in encoding video (set to 0 when encoding stops))"], [8, 3, 0, "status-6", "Status 6 (Is the system currently overheating?)"], [8, 3, 0, "status-65", "Status 65 (Liveview Exposure Select Mode)"], [8, 3, 0, "status-66", "Status 66 (Liveview Exposure Select: y-coordinate (percent))"], [8, 3, 0, "status-67", "Status 67 (Liveview Exposure Select: y-coordinate (percent))"], [8, 3, 0, "status-68", "Status 68 (Does the camera currently have a GPS lock?)"], [8, 3, 0, "status-69", "Status 69 (Is AP mode enabled?)"], [8, 3, 0, "status-70", "Status 70 (Internal battery level (percent))"], [8, 3, 0, "status-74", "Status 74 (Microphone Accessory status)"], [8, 3, 0, "status-75", "Status 75 (Digital Zoom level (percent))"], [8, 3, 0, "status-76", "Status 76 (Wireless Band)"], [8, 3, 0, "status-77", "Status 77 (Is Digital Zoom feature available?)"], [8, 3, 0, "status-78", "Status 78 (Are current video settings mobile friendly? (related to video compression and frame rate))"], [8, 3, 0, "status-79", "Status 79 (Is the camera currently in First Time Use (FTU) UI flow?)"], [8, 3, 0, "status-8", "Status 8 (Is the camera busy?)"], [8, 3, 0, "status-81", "Status 81 (Is 5GHz wireless band available?)"], [8, 3, 0, "status-82", "Status 82 (Is the system fully booted and ready to accept commands?)"], [8, 3, 0, "status-83", "Status 83 (Is the internal battery charged sufficiently to start Over The Air (OTA) update?)"], [8, 3, 0, "status-85", "Status 85 (Is the camera getting too cold to continue recording?)"], [8, 3, 0, "status-86", "Status 86 (Rotational orientation of the camera)"], [8, 3, 0, "status-88", "Status 88 (Is this camera model capable of zooming while encoding?)"], [8, 3, 0, "status-89", "Status 89 (Current Flatmode ID)"], [8, 3, 0, "status-9", "Status 9 (Is Quick Capture feature enabled?)"], [8, 3, 0, "status-93", "Status 93 (Current Video Preset (ID))"], [8, 3, 0, "status-94", "Status 94 (Current Photo Preset (ID))"], [8, 3, 0, "status-95", "Status 95 (Current Time Lapse Preset (ID))"], [8, 3, 0, "status-97", "Status 97 (Current Preset (ID))"], [8, 3, 0, "status-98", "Status 98 (Preset Modified Status, which contains an event ID and a Preset (Group) ID)"], [8, 3, 0, "status-99", "Status 99 (The number of Live Bursts can be captured with current settings before sdcard is full)"]], "Status 101 (Is Capture Delay currently active (i.e": [[8, 3, 0, "status-101", " counting down)?)"]], "Status 105 (Camera lens type (reflects changes to lens settings such as 162, 189, 194, ..": [[8, 3, 0, "status-105", "))"]], "Status 28 (Wireless Pairing State": [[8, 3, 0, "status-28", " Each bit contains state information (see WirelessPairingStateFlags))"]], "Status 29 (SSID of the AP the camera is currently connected to": [[8, 3, 0, "status-29", " On BLE connection, value is big-endian byte-encoded int32)"]], "Status 30 (The camera's WiFi SSID": [[8, 3, 0, "status-30", " On BLE connection, value is big-endian byte-encoded int32)"]], "Status 49 (The current timelapse interval countdown value (e.g. 5...4...3...2...1..": [[8, 3, 0, "status-49", "))"]], "Status 60 (The minimum time between camera status updates (milliseconds)": [[8, 3, 0, "status-60", " Best practice is to not poll for status more often than this)"]], "Status 96 (Current Preset Group (ID) (corresponds to ui_mode_groups in settings": [[8, 3, 0, "status-96", "json))"]]}, "objnames": {"0": ["operation", "Proto", "Proto"], "1": ["operation", "Operation", "Operation"], "2": ["operation", "Setting", "Setting"], "3": ["operation", "Status", "Status"]}, "objtypes": {"0": "operation:Proto", "1": "operation:Operation", "2": "operation:Setting", "3": "operation:Status"}, "terms": {"": [1, 2, 4, 5, 6, 7, 11, 12, 13, 14, 15], "0": [2, 6, 7, 12, 13, 14], "00": [2, 9, 12], "000": 8, "0001": 11, "0002": 11, "0002a5d5c51b": 11, "0003": 11, "0004": 11, "0005": 11, "001": 8, "0072": [11, 12], "0073": 11, "0074": [11, 12], "0075": 11, "0076": [11, 12], "0077": 11, "0090": 11, "0091": 11, "0092": 11, "01": [2, 6, 9, 12], "010": 8, "011": 8, "02": 2, "03": [2, 9], "04": 2, "05": 2, "07": 2, "0x0": 12, "0x01": [2, 13], "0x02": [0, 13], "0x03": [0, 13], "0x04": [0, 13], "0x05": [0, 2, 13], "0x0b": [0, 13], "0x0c": [0, 13], "0x0d": [2, 13], "0x0e": [6, 13], "0x0f": [2, 13], "0x10": [6, 13], "0x12": [6, 13], "0x13": [6, 13], "0x17": [2, 13], "0x18": [3, 13], "0x32": [6, 13], "0x3c": [6, 13], "0x3e": [5, 13], "0x40": [5, 13], "0x42": 2, "0x50": [2, 13], "0x51": [6, 13], "0x52": [6, 13], "0x53": [6, 13], "0x5b": [2, 13], "0x62": [6, 13], "0x64": [5, 13], "0x65": [1, 13], "0x66": [1, 13], "0x67": [1, 13], "0x69": [2, 13], "0x6b": [2, 13], "0x6d": [6, 13], "0x6e": [1, 13], "0x6f": [1, 13], "0x72": [5, 6, 13], "0x73": [6, 13], "0x74": [4, 13], "0x79": [4, 13], "0x82": [0, 6, 13], "0x83": [0, 13], "0x84": [0, 13], "0x85": [0, 13], "0x92": [6, 13], "0x93": [6, 13], "0xa2": [6, 13], "0xe4": [5, 13], "0xe5": [1, 13], "0xe6": [1, 13], "0xe7": [1, 13], "0xe9": [2, 13], "0xeb": [2, 13], "0xed": [6, 13], "0xee": [1, 13], "0xef": [1, 13], "0xf": 12, "0xf1": [1, 2, 4, 5, 13], "0xf2": [5, 13], "0xf3": [5, 13], "0xf4": [4, 13], "0xf5": [1, 4, 5, 6, 13], "0xf9": [4, 13], "0xfea6": 11, "1": [1, 2, 6, 7, 12, 13, 14], "10": [2, 7, 9, 12, 13, 14], "100": [7, 13], "1000": 14, "1001": 14, "1002": 14, "101": [7, 13], "102": [7, 13], "103": [7, 13], "104": [7, 13], "105": [7, 13], "106": [7, 13], "107": [7, 13], "108": 13, "1080": 7, "109": 7, "10x": 8, "11": [6, 7, 13, 14], "110": [7, 13], "111": [7, 13], "112": [7, 13], "113": [7, 13], "114": [2, 7, 13, 14], "115": [7, 13], "116": [7, 13], "117": [7, 13], "118": [7, 13], "119": 7, "11e3": 11, "12": [2, 6, 7, 8, 14], "120": 7, "121": 13, "122": 13, "123": 13, "124": 7, "125": 7, "126": 7, "127": 7, "128": [11, 13], "129": 7, "13": [7, 13, 14], "130": 7, "131": 7, "132": 7, "133": 7, "134": 13, "135": 13, "136": 7, "137": 7, "14": [7, 14], "1440": 7, "15": [7, 14], "150": 13, "150x": 8, "151": 13, "15min": 15, "15x": 8, "16": [7, 14], "162": [5, 13], "167": 13, "17": [7, 13, 14], "171": 13, "172": 13, "173": [5, 13], "175": [5, 13], "176": 13, "177": [5, 13], "178": 13, "179": 13, "18": [7, 14], "180": [5, 8, 13], "1800x": 8, "182": 13, "183": 13, "184": 13, "186": [5, 13], "187": [5, 13], "189": [5, 13], "19": [7, 13, 14], "190": [5, 13], "191": [5, 13], "192": 13, "193": 13, "194": 13, "1f": 2, "1x": [7, 8], "2": [12, 13, 14], "20": [7, 12, 13, 14], "200": 7, "2023": 2, "21": [7, 13, 14], "22": [7, 13, 14], "23": [2, 6, 7, 13, 14], "24": [7, 13, 14], "240": 7, "240fp": 7, "25": [7, 14], "255": 12, "26": [7, 13, 14], "2674f7f65f78": 6, "27": [7, 13, 14], "270": 8, "28": [7, 13, 14], "29": [13, 14], "2x": [7, 8], "3": [2, 12, 13, 14], "30": [7, 13, 14], "300x": 8, "30min": 15, "30x": 8, "31": [2, 6, 12, 13, 14], "32": [13, 14], "33": [13, 14], "34": [13, 14], "35": [13, 14], "36": 14, "37": 14, "38": [13, 14], "39": [13, 14], "3k": 7, "4": [7, 12, 13, 14], "40": 14, "41": [13, 14], "42": [13, 14], "43": 13, "45": 13, "49": 13, "4ghz": 7, "4k": 7, "4x": 7, "5": [7, 13, 14], "50": 7, "50hz": 7, "54": 13, "55": [9, 13], "56": [6, 13], "57": 9, "58": [9, 13, 14], "59": [2, 6, 13, 14], "5ghz": [7, 13], "5k": 7, "5min": 15, "5x": 8, "6": [6, 7, 12, 13, 14], "60": [7, 9, 13, 14], "60hz": 7, "60x": 8, "61": 14, "62": [9, 14], "63": [2, 14], "64": 14, "65": [13, 14], "66": [13, 14], "67": [13, 14], "68": [13, 14], "69": [13, 14], "7": [2, 7, 8, 12, 14], "70": [9, 13, 14], "71": 14, "72": 14, "73": 14, "74": [13, 14], "75": [13, 14], "76": [13, 14], "77": [13, 14], "78": [13, 14], "79": [13, 14], "7k": 7, "8": [7, 11, 13, 14], "81": 13, "8191": 12, "8192": 12, "82": [13, 14], "83": [13, 14], "85": [13, 14], "86": 13, "88": [2, 13], "89": 13, "8x": 7, "9": [7, 13, 14], "90": 8, "900x": 8, "9046": 11, "93": [13, 14], "94": [5, 13, 14], "95": 13, "96": 13, "97": 13, "98": [5, 13], "99": [6, 13], "A": [0, 1, 5, 7, 12, 14, 15], "As": [4, 14], "At": 1, "For": [1, 2, 4, 7, 9, 11, 12, 15], "If": [2, 6, 7, 11, 12, 14, 15], "In": [1, 2, 7, 11, 12, 15], "It": 12, "NOT": 14, "No": [8, 14], "Not": [8, 14], "ON": [7, 11], "On": [0, 1, 2, 7, 13, 14], "One": 8, "The": [0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14], "Then": 9, "There": 12, "These": 7, "To": [0, 5, 8, 12], "aa8d": 11, "abil": 4, "abort": 8, "about": [1, 2, 4, 6, 14], "abov": [2, 6, 7, 9], "accept": [4, 13, 14, 15], "access": [1, 2, 4, 9, 11, 13, 14], "accessori": 13, "accommod": 12, "accomplish": [4, 12], "accordingli": [2, 14], "accumul": 12, "across": [1, 2, 4, 5, 14], "act": 1, "action": [0, 1, 2, 4, 5, 6, 12, 13], "activ": [5, 9, 13, 14, 15], "adapt": 14, "add": [3, 14], "addit": [4, 14], "addition": [1, 9, 14], "address": [1, 14], "adher": 7, "advertis": [2, 10, 14], "affect": 5, "after": [0, 2, 11, 12, 14, 15], "again": 11, "air": 13, "aliv": [2, 10, 13], "all": [1, 2, 6, 11, 12], "allow": [1, 11], "alreadi": 14, "also": [1, 14], "altern": [7, 11, 12], "alwai": [5, 7, 9, 12, 14, 15], "an": [0, 1, 4, 6, 7, 9, 11, 12, 13, 14, 15], "analyt": [2, 13], "ani": [2, 4, 5, 9, 14], "anoth": 7, "anti": 13, "ap": [0, 2, 11, 13, 14], "ap_mac_address": 6, "ap_mac_address_length": 6, "ap_ssid": 6, "ap_ssid_length": 6, "api": [5, 6, 14], "app": [2, 8, 14, 15], "appear": 14, "appropri": 12, "approxim": 13, "ar": [0, 1, 5, 6, 7, 9, 10, 11, 12, 13, 14], "arrai": [6, 12, 14], "arrow": [5, 14], "ascii": 14, "aspect": 13, "associ": [6, 9, 14], "assum": 9, "asynchron": [1, 4, 5, 11, 13, 14], "attain": 7, "attemp": 14, "attempt": [0, 8, 14], "auth": [1, 14], "authent": [0, 14], "author": 1, "auto": [2, 8, 13], "automat": [2, 14, 15], "avail": [0, 5, 9, 13, 14], "avoid": 12, "b5f9xxxx": 11, "back": [5, 14], "bad": 14, "band": 13, "bandwidth": 12, "bar": [13, 14], "base": 9, "basic": [1, 7, 9, 14], "batch": 14, "batteri": [2, 7, 13], "becaus": [7, 14], "been": [0, 12, 14], "befor": [11, 12, 13, 14, 15], "begin": 4, "behavior": [2, 14, 15], "being": 14, "below": [5, 7, 9, 11, 12], "best": [2, 11, 13, 15], "between": [9, 13, 14, 15], "big": [12, 13], "bit": [0, 11, 13], "bitmask": [13, 14], "bitrat": 14, "black": [1, 6, 7, 9], "blacklist": 7, "ble": [2, 10, 12, 13], "bluetooth": [8, 9], "bool": 14, "boost": 7, "boot": [11, 13], "both": 2, "buffer": 12, "build": 11, "burst": 13, "busi": [13, 15], "button": [2, 14], "byte": [0, 2, 6, 12, 13, 14], "c1234567812345": 6, "ca": [1, 14], "cach": 11, "cafil": 1, "camera": [0, 2, 4, 5, 6, 10, 11, 12, 13, 14], "camera_control": 14, "camera_control_statu": 14, "camera_external_control": 14, "camera_idl": 14, "can": [0, 1, 2, 3, 4, 5, 7, 9, 11, 12, 13, 14], "can_add_preset": 14, "cancel": [6, 13], "capabl": [1, 6, 9, 13], "capac": 13, "caption": [5, 14], "captur": [6, 13, 14, 15], "card": [13, 14], "case": [1, 5, 9, 14], "caus": [2, 11, 14], "cert": [1, 14], "certif": [13, 14], "chain": 1, "chang": [0, 1, 4, 5, 6, 7, 9, 13, 14, 15], "charact": 14, "characterist": [10, 12], "charg": 13, "claim": [2, 14, 15], "clear": [1, 13, 14], "click": 1, "client": [1, 2, 5, 11, 14, 15], "close": 14, "code": [2, 9], "cohn": [1, 13, 14], "cohn_act": 14, "cohn_provis": 14, "cohn_state_connectingtonetwork": 14, "cohn_state_error": 14, "cohn_state_exit": 14, "cohn_state_idl": 14, "cohn_state_init": 14, "cohn_state_invalid": 14, "cohn_state_networkconnect": 14, "cohn_state_networkdisconnect": 14, "cohn_unprovis": 14, "cold": 13, "collect": 5, "combin": 2, "command": [0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 14, 15], "common": 14, "commonli": 14, "commun": [1, 9, 10, 11], "complet": [0, 9, 13, 14], "compress": 13, "compris": [7, 12, 14], "configur": [0, 1, 2, 4, 10, 14], "connect": [0, 1, 2, 4, 11, 13, 14, 15], "consid": 12, "construct": 7, "contain": [1, 6, 7, 12, 13, 14], "contextu": [2, 14], "continu": 13, "control": [0, 1, 5, 9, 10, 11, 13, 14], "coordin": 13, "core": [9, 13], "correspond": [11, 13, 14], "count": [13, 14], "countdown": 13, "counter": 12, "creat": [1, 5, 13, 14], "creation": [1, 14], "credenti": 1, "crt": 1, "current": [0, 1, 2, 4, 5, 6, 7, 9, 12, 13, 14], "custom": [5, 13, 14], "custom1": 14, "custom2": 14, "custom3": 14, "custom_nam": [5, 14], "dai": [2, 6], "data": [2, 6, 9, 10, 11], "date": [2, 6, 13], "date_tim": 2, "daylight": [2, 6], "dbm": 14, "dcim": [6, 14], "deciph": 10, "declar": 14, "default": [5, 8, 14], "defin": [2, 6, 7, 12, 14], "degre": 8, "delai": 13, "delet": [5, 14], "demo": 9, "demonstr": 9, "depacket": 12, "depend": [1, 5, 6, 7, 12, 14, 15], "deprec": 6, "deprecated_length": 6, "depth": 13, "describ": [0, 6, 8, 9, 12, 14], "descript": [11, 12], "deseri": 12, "desir": [9, 14], "detail": [2, 4, 7, 14], "detect": [0, 14], "determin": 12, "devic": [11, 13], "dhcp": 1, "differ": [5, 12], "digit": [9, 13], "directori": [6, 14], "disabl": [0, 2, 8, 14], "disconnect": 14, "discourag": 15, "discov": [11, 14], "discover": 11, "displai": [2, 13, 14], "dn": 14, "dns_primari": 14, "dns_secondari": 14, "do": [0, 11, 12, 14], "doc": [0, 1, 2, 4, 5, 6], "document": [6, 7, 10, 12], "doe": [0, 1, 11, 13, 14], "done": 11, "down": [2, 13], "download": [1, 13], "drop": 14, "dst": 2, "due": 14, "durat": 13, "dure": [0, 3, 11, 14], "dynam": [7, 11], "e": [1, 2, 5, 6, 13, 14, 15], "e7": 2, "each": [7, 11, 12, 13], "easi": [7, 13], "either": [4, 5, 12, 14], "element": [6, 12, 13], "els": 12, "empti": 6, "enabl": [2, 5, 11, 13, 14], "encod": [3, 9, 13, 14, 15], "endian": [12, 13], "energi": 9, "engag": 13, "english": 14, "enough": 14, "ensur": [0, 11], "entiti": [2, 8, 14], "entri": [0, 14], "enumpresetgroup": 5, "error": [12, 13, 14], "establish": 2, "event": 13, "everi": [2, 7], "exampl": [2, 7, 9, 11, 12, 15], "exit": [2, 5, 12, 14], "expir": 1, "exposur": 13, "extend": 7, "extern": [2, 8, 14], "extract": 12, "f": 12, "facebook": 4, "factori": [5, 11, 14], "fail": [5, 7, 8, 14], "failur": 7, "fals": [8, 14], "far": 13, "fea6": 11, "featur": [0, 1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14], "fewer": 12, "ff": 2, "field": [6, 14], "file": [1, 7, 14], "filenam": [6, 14], "find": 5, "finish": [10, 14], "firmwar": [6, 7, 9, 13], "firmware_vers": 6, "firmware_version_length": 6, "first": [0, 1, 6, 7, 9, 11, 12, 13, 14], "flag": [11, 15], "flat_mode_broadcast_broadcast": 14, "flat_mode_broadcast_record": 14, "flat_mode_idl": 14, "flat_mode_live_burst": 14, "flat_mode_loop": 14, "flat_mode_night_lapse_photo": 14, "flat_mode_night_lapse_video": 14, "flat_mode_photo": 14, "flat_mode_photo_burst": 14, "flat_mode_photo_night": 14, "flat_mode_photo_singl": 14, "flat_mode_playback": 14, "flat_mode_setup": 14, "flat_mode_slomo": 14, "flat_mode_time_lapse_photo": 14, "flat_mode_time_lapse_video": 14, "flat_mode_time_warp_video": 14, "flat_mode_unknown": 14, "flat_mode_video": 14, "flat_mode_video_burst_slomo": 14, "flat_mode_video_light_paint": 14, "flat_mode_video_light_trail": 14, "flat_mode_video_star_trail": 14, "flatmod": [13, 14], "flicker": 13, "flow": 13, "flowchart": 12, "folder": 14, "follow": [1, 4, 7, 10, 11, 12, 14], "form": 12, "format": [8, 9, 12, 13, 14, 15], "found": [0, 5, 6, 7, 14], "fov": [9, 14], "fp": 7, "frame": 13, "french": 14, "frequenc": 14, "friendli": 13, "from": [2, 5, 6, 7, 8, 11, 12, 14], "ftu": 13, "full": [7, 13, 14], "fulli": 13, "function": [1, 9], "futur": [4, 14], "g": [1, 5, 13, 14, 15], "gatewai": 14, "gatt": [10, 12], "gener": [1, 2, 4, 5, 14], "german": 14, "get": [0, 1, 4, 5, 6, 7, 13, 14, 15], "ghz": 8, "given": [7, 14], "global": [2, 14], "go": 2, "googl": 12, "gopro": [1, 2, 6, 8, 10, 11, 12, 13, 15], "goprorootca": 1, "gp": [11, 12, 13], "gp12345678": 6, "group": [6, 13, 14], "guarante": 7, "h21": 9, "h22": 9, "h23": [6, 9], "ha": [0, 1, 8, 12, 14], "had": 12, "handl": 2, "handshak": 14, "hard": 2, "hardwar": [6, 13], "have": [0, 1, 11, 12, 13], "hd9": 9, "hdmi": 8, "hdr": 7, "header": [1, 14], "hemispher": 8, "here": [7, 12], "hero": 7, "hero10": [1, 9], "hero11": [1, 9], "hero12": [1, 6, 9], "hero9": [1, 9], "high": [1, 7], "highest": 7, "hilight": [9, 13], "hindsight": [9, 13], "home": [9, 14], "honor": 14, "horizon": 13, "hour": [2, 6, 7, 11], "how": [4, 9, 12, 13], "howev": 15, "http": [0, 1, 14], "hypersmooth": 13, "hyperview": 7, "hz": 7, "i": [0, 1, 2, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15], "icon": [5, 14], "icon_id": [5, 14], "id": [0, 1, 2, 3, 4, 5, 6, 9, 10, 12, 14], "identifi": 12, "idl": [2, 8, 14], "immedi": [0, 2, 5, 14], "inadvert": 2, "includ": [12, 14], "inclus": 14, "incom": 15, "incorrect": 14, "indic": [4, 11, 14], "indirectli": 1, "individu": [6, 7, 12, 14], "info": [6, 13, 14], "inform": [2, 6, 7, 11, 13, 14], "initi": [0, 4, 5, 6, 10, 14], "instal": 1, "instruct": 1, "int": 12, "int16": [2, 6], "int32": [13, 14], "intend": [0, 14], "interact": [2, 14], "intern": 13, "internet": [0, 14], "interv": 13, "interven": 8, "invalid": [12, 14], "ip": [1, 14], "ipaddress": 14, "is_capt": 14, "is_dst": [2, 6], "is_fix": 14, "is_modifi": 14, "iso": 8, "italian": 14, "its": [8, 12], "json": 13, "kbp": 14, "keep": [2, 10, 13], "keep_al": 2, "kilobyt": 13, "lai": 8, "languag": [9, 14], "laps": [5, 13], "larger": 12, "last": [6, 13, 14], "lcd": [2, 13], "leas": 1, "left": 8, "len": [5, 13, 14], "length": [6, 13], "lens": [9, 13, 14], "lens_linear": 14, "lens_superview": 14, "lens_wid": 14, "less": 12, "level": [1, 12, 13, 14], "life": 2, "lifespan": 1, "light": 7, "limit": [11, 12], "linear": 7, "linux": [13, 14], "list": [0, 7, 9, 14], "live": [0, 9, 13, 14], "live_stream_bitr": 14, "live_stream_encod": 14, "live_stream_encode_support": 14, "live_stream_error": 14, "live_stream_error_camera_block": 14, "live_stream_error_createstream": 14, "live_stream_error_inputstream": 14, "live_stream_error_internet": 14, "live_stream_error_network": 14, "live_stream_error_non": 14, "live_stream_error_osnetwork": 14, "live_stream_error_outofmemori": 14, "live_stream_error_sd_card_ful": 14, "live_stream_error_sd_card_remov": 14, "live_stream_error_selectednetworktimeout": 14, "live_stream_error_ssl_handshak": 14, "live_stream_error_unknown": 14, "live_stream_lens_support": 14, "live_stream_lens_supported_arrai": 14, "live_stream_max_lens_unsupport": 14, "live_stream_maximum_stream_bitr": 14, "live_stream_minimum_stream_bitr": 14, "live_stream_state_complete_stay_on": 14, "live_stream_state_config": 14, "live_stream_state_failed_stay_on": 14, "live_stream_state_idl": 14, "live_stream_state_readi": 14, "live_stream_state_reconnect": 14, "live_stream_state_stream": 14, "live_stream_state_unavail": 14, "live_stream_statu": 14, "live_stream_window_size_supported_arrai": 14, "livestream": [4, 13, 14], "liveview": 13, "load": [2, 5, 13, 15], "local": [1, 2, 6, 13, 14], "locat": 13, "lock": [7, 13], "log": 7, "logic": 2, "long": [5, 7, 14], "longer": 12, "longest": 7, "look": 1, "low": [7, 9, 14], "mac": 14, "macaddress": 14, "maco": 1, "mai": [7, 14, 15], "maintain": 15, "major": 6, "major_length": 6, "manag": [0, 9, 10, 11], "mani": [1, 2, 4, 5, 13, 14], "map": 12, "market": 9, "mask": 14, "match": 12, "max": [5, 8, 13, 14], "max_entri": 14, "maxim": [2, 12], "maximum": [7, 14], "maximum_bitr": 14, "mean": [7, 14], "media": [2, 4, 6, 13, 15], "meet": 13, "memori": 14, "menu": [2, 8, 14], "messag": [0, 1, 2, 4, 5, 6, 9, 10, 13, 14, 15], "meta": 14, "mhz": 14, "microphon": 13, "millisecond": 13, "min": 7, "mini": [1, 9], "minim": 9, "minimum": [9, 13, 14], "minimum_bitr": 14, "minor": 6, "minor_length": 6, "minut": [2, 6, 7, 13], "mo": 7, "mobil": 13, "mod": [5, 13], "mode": [0, 2, 4, 5, 9, 10, 13, 14], "model": [6, 9, 13, 14], "model_nam": 6, "model_name_length": 6, "model_numb": 6, "model_number_length": 6, "modifi": [13, 14], "moment": [3, 13], "month": [2, 6], "more": [1, 6, 7, 11, 12, 13, 14], "most": [1, 2, 9, 13, 14], "motion": 8, "mous": 1, "multipl": 12, "must": [1, 5, 8, 11, 12, 14], "mutabl": 14, "n": 12, "name": [5, 7, 8, 9, 14], "narrow": [7, 11], "nearli": 1, "necessari": [0, 7, 11, 12, 15], "need": [0, 1, 9, 11], "network": [0, 9, 11, 14], "never": [7, 8], "new": [0, 1, 5, 11, 13, 14], "next": 7, "night": [5, 13], "non": [5, 14], "none": 7, "noout": 1, "nope": 12, "note": [6, 12], "notif": [0, 1, 2, 4, 5, 6, 11, 13, 14], "notifi": [5, 11, 14], "notifprovisioningst": [0, 13], "notifstartscan": [0, 13], "notifycohnstatu": [1, 13], "notifylivestreamstatu": [4, 13], "notifypresetstatu": [5, 13], "number": [6, 13, 14], "obei": 14, "object": [0, 7, 12, 14], "occur": 14, "off": [2, 15], "offset": [2, 6], "often": [7, 13], "ok": [1, 8], "onc": [1, 11, 12], "one": [5, 6, 7, 8, 12, 14], "ongo": 6, "onli": [0, 3, 5, 6, 7, 8, 12, 14], "onto": 12, "open": [1, 6, 10, 12, 13], "openssl": 1, "oper": [8, 10, 13, 14], "option": [4, 5, 6, 7, 8, 12, 14], "order": [1, 2, 5, 7, 10, 11, 12, 15], "organ": 5, "orient": 13, "ota": 13, "other": [4, 15], "otherwis": [2, 12, 13], "out": 14, "outlin": 7, "outsid": [8, 14], "over": [1, 13], "overh": 13, "overrid": 14, "overview": 11, "p": 12, "packet": 10, "page": [2, 14], "paint": 7, "pair": [10, 12, 13], "paramet": [2, 5, 6, 7, 12], "pars": [11, 12], "part": [2, 6, 14], "parti": [2, 14, 15], "pass": [5, 14], "password": [1, 11, 14], "path": [1, 6, 14], "payload": [6, 10], "pc": 13, "pem": 14, "pend": 13, "per": [12, 13], "percent": 13, "perform": [1, 5, 9, 13, 14], "period": [0, 5, 14, 15], "peripher": 11, "permiss": 11, "pertain": 9, "photo": [5, 6, 9, 13, 14, 15], "physic": [2, 14], "pill": [5, 14], "platform": 4, "plug": 8, "point": [1, 2, 4, 9, 11, 13, 14], "poll": [4, 13], "portugues": 14, "possibl": 12, "power": [2, 11, 13, 15], "practic": [2, 11, 13, 15], "prepend": 12, "present": [7, 13], "preset": [2, 7, 9, 13, 15], "preset_arrai": 14, "preset_group_arrai": 14, "preset_group_endurance_video_icon_id": 14, "preset_group_id_photo": 14, "preset_group_id_timelaps": 14, "preset_group_id_video": 14, "preset_group_long_bat_video_icon_id": 14, "preset_group_max_photo_icon_id": 14, "preset_group_max_timelapse_icon_id": 14, "preset_group_max_video_icon_id": 14, "preset_group_photo_icon_id": 14, "preset_group_timelapse_icon_id": 14, "preset_group_video_icon_id": 14, "preset_icon_act": 14, "preset_icon_activity_endur": 14, "preset_icon_air": 14, "preset_icon_bas": 14, "preset_icon_basic_quality_video": 14, "preset_icon_bik": 14, "preset_icon_bit": 14, "preset_icon_burst": 14, "preset_icon_burst_2": 14, "preset_icon_c": 14, "preset_icon_chesti": 14, "preset_icon_cinemat": 14, "preset_icon_cinematic_endur": 14, "preset_icon_custom": 14, "preset_icon_ep": 14, "preset_icon_follow_cam": 14, "preset_icon_full_fram": 14, "preset_icon_helmet": 14, "preset_icon_highest_quality_video": 14, "preset_icon_indoor": 14, "preset_icon_light_paint": 14, "preset_icon_light_trail": 14, "preset_icon_live_burst": 14, "preset_icon_loop": 14, "preset_icon_motor": 14, "preset_icon_mount": 14, "preset_icon_nightlaps": 14, "preset_icon_nightlapse_photo": 14, "preset_icon_outdoor": 14, "preset_icon_panorama": 14, "preset_icon_photo": 14, "preset_icon_photo_2": 14, "preset_icon_photo_night": 14, "preset_icon_pov": 14, "preset_icon_selfi": 14, "preset_icon_shaki": 14, "preset_icon_simple_night_photo": 14, "preset_icon_simple_super_photo": 14, "preset_icon_sk": 14, "preset_icon_slomo_endur": 14, "preset_icon_snail": 14, "preset_icon_snow": 14, "preset_icon_standard_endur": 14, "preset_icon_standard_quality_video": 14, "preset_icon_star": 14, "preset_icon_star_trail": 14, "preset_icon_stationary_1": 14, "preset_icon_stationary_2": 14, "preset_icon_stationary_3": 14, "preset_icon_stationary_4": 14, "preset_icon_surf": 14, "preset_icon_timelaps": 14, "preset_icon_timelapse_2": 14, "preset_icon_timelapse_photo": 14, "preset_icon_timewarp": 14, "preset_icon_timewarp_2": 14, "preset_icon_trail": 14, "preset_icon_travel": 14, "preset_icon_ultra_slo_mo": 14, "preset_icon_video": 14, "preset_icon_video_2": 14, "preset_icon_wat": 14, "preset_title_act": 14, "preset_title_activity_endur": 14, "preset_title_air": 14, "preset_title_bas": 14, "preset_title_basic_quality_video": 14, "preset_title_bik": 14, "preset_title_bit": 14, "preset_title_burst": 14, "preset_title_c": 14, "preset_title_chesti": 14, "preset_title_cinemat": 14, "preset_title_cinematic_endur": 14, "preset_title_custom": 14, "preset_title_ep": 14, "preset_title_extended_batteri": 14, "preset_title_follow_cam": 14, "preset_title_full_fram": 14, "preset_title_helmet": 14, "preset_title_highest_qu": 14, "preset_title_highest_quality_video": 14, "preset_title_indoor": 14, "preset_title_light_paint": 14, "preset_title_light_trail": 14, "preset_title_live_burst": 14, "preset_title_longest_batteri": 14, "preset_title_loop": 14, "preset_title_motor": 14, "preset_title_mount": 14, "preset_title_night": 14, "preset_title_night_laps": 14, "preset_title_outdoor": 14, "preset_title_panorama": 14, "preset_title_photo": 14, "preset_title_photo_2": 14, "preset_title_pov": 14, "preset_title_selfi": 14, "preset_title_shaki": 14, "preset_title_simple_night_photo": 14, "preset_title_simple_super_photo": 14, "preset_title_simple_time_warp": 14, "preset_title_simple_video": 14, "preset_title_simple_video_endur": 14, "preset_title_sk": 14, "preset_title_slomo": 14, "preset_title_slomo_endur": 14, "preset_title_snow": 14, "preset_title_standard": 14, "preset_title_standard_endur": 14, "preset_title_standard_quality_video": 14, "preset_title_star": 14, "preset_title_star_trail": 14, "preset_title_stationary_1": 14, "preset_title_stationary_2": 14, "preset_title_stationary_3": 14, "preset_title_stationary_4": 14, "preset_title_surf": 14, "preset_title_time_laps": 14, "preset_title_time_warp": 14, "preset_title_time_warp_2": 14, "preset_title_trail": 14, "preset_title_travel": 14, "preset_title_ultra_slo_mo": 14, "preset_title_user_defined_custom_nam": [5, 14], "preset_title_video": 14, "preset_title_wat": 14, "press": [2, 5, 14], "prevent": [2, 15], "preview": 13, "previous": [0, 7, 14], "primari": [13, 14], "pro": 7, "procedur": [11, 12], "process": [1, 11], "profil": 13, "program": 9, "programmat": 2, "properti": [1, 14], "protobuf": [0, 1, 2, 4, 5, 6, 9, 10], "protocol": [9, 11], "provid": 1, "provis": [0, 13, 14], "provisioning_aborted_by_system": 14, "provisioning_cancelled_by_us": 14, "provisioning_error_eula_block": 14, "provisioning_error_failed_to_associ": 14, "provisioning_error_no_internet": 14, "provisioning_error_password_auth": 14, "provisioning_error_unsupported_typ": 14, "provisioning_never_start": 14, "provisioning_st": 14, "provisioning_start": 14, "provisioning_success_new_ap": 14, "provisioning_success_old_ap": 14, "provisioning_unknown": 14, "pseudocod": 12, "public": 9, "purpos": 1, "put": [2, 4, 11], "qualiti": 7, "queri": [1, 4, 5, 7, 8, 9, 10, 11, 15], "quick": [1, 13], "rang": 14, "rate": 13, "ratio": 13, "re": [7, 11, 14], "reach": 2, "read": [9, 10, 11], "readi": [4, 10, 13, 14], "realtim": 8, "receiv": [0, 6, 9, 11, 12, 14], "recent": [9, 13], "reclaim": [2, 14], "reconnect": 14, "record": [3, 13], "refer": 10, "reflect": 13, "regist": [1, 4, 5, 6, 13, 14], "register_cohn_statu": 14, "register_live_stream_statu": 14, "register_live_stream_status_bitr": 14, "register_live_stream_status_error": 14, "register_live_stream_status_mod": 14, "register_live_stream_status_statu": 14, "register_preset_statu": 14, "register_preset_status_preset": 14, "register_preset_status_preset_group_arrai": 14, "regularli": 2, "reject": [7, 9, 14, 15], "rel": [6, 14], "relat": 13, "releas": 7, "relev": [0, 9, 11, 12], "remain": 13, "remot": 13, "remov": [8, 14], "reorder": [5, 14], "replac": 1, "report": 6, "repres": [7, 14], "represent": 14, "request": [0, 1, 2, 3, 4, 5, 6, 7, 9, 12, 13, 14], "requestclearcohncert": [1, 13], "requestcohncert": [1, 13], "requestconnect": [0, 13], "requestconnectnew": [0, 13], "requestcreatecohncert": [1, 13], "requestcustompresetupd": [5, 13], "requestgetapentri": [0, 13], "requestgetcohnstatu": [1, 13], "requestgetlastcapturedmedia": [6, 13], "requestgetlivestreamstatu": [4, 13], "requestgetpresetstatu": [5, 13], "requestsetcameracontrolstatu": [2, 13], "requestsetcohnset": [1, 13], "requestsetlivestreammod": [4, 13], "requestsetturboact": [2, 13], "requeststartscan": [0, 13], "requir": [1, 11, 14], "reserv": [6, 12], "reset": [1, 2, 5, 11, 12], "resolut": [13, 14], "respect": 12, "respond": 12, "respons": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13, 14], "response_length": 6, "responsecohncert": [1, 13], "responseconnect": [0, 13], "responseconnectnew": [0, 13], "responsegener": [1, 2, 4, 5, 13], "responsegetapentri": [0, 13], "responselastcapturedmedia": [6, 13], "responsestartscan": [0, 13], "result": [0, 6, 7, 9, 12, 13, 14], "result_argument_invalid": 14, "result_argument_out_of_bound": 14, "result_ill_form": 14, "result_not_support": 14, "result_resource_not_avail": 14, "result_resource_not_availbl": 14, "result_success": 14, "result_unknown": 14, "return": [0, 1, 2, 5, 6, 14], "right": [1, 8], "room": 14, "root": [1, 14], "rotat": 13, "rough": 13, "router": 1, "row": [7, 12], "rtmp": [4, 14], "rule": 7, "russian": 14, "saturdai": 6, "save": [2, 6, 14], "scan": [0, 11, 13, 14], "scan_entry_flag": 14, "scan_flag_associ": 14, "scan_flag_authent": 14, "scan_flag_best_ssid": 14, "scan_flag_configur": [0, 14], "scan_flag_open": 14, "scan_flag_unsupported_typ": 14, "scan_id": 14, "scanning_aborted_by_system": 14, "scanning_cancelled_by_us": 14, "scanning_never_start": 14, "scanning_st": 14, "scanning_start": 14, "scanning_success": 14, "scanning_unknown": 14, "schedul": 13, "schema": 7, "scheme": 12, "screen": [2, 14], "sd": [13, 14], "sdcard": [6, 13, 14, 15], "second": [2, 6, 13, 14], "secondari": [13, 14], "section": [6, 8, 9, 10, 11, 12], "secur": 1, "see": [1, 4, 6, 7, 9, 11, 12, 13], "select": 13, "send": [2, 5, 9, 12, 14, 15], "sent": [0, 4, 5, 6, 11, 12, 14], "serial": [0, 2, 12, 14], "serial_numb": 6, "serial_number_length": 6, "server": 14, "servic": 11, "set": [0, 1, 2, 4, 5, 6, 9, 10, 11, 12, 14, 15], "setting_arrai": 14, "settingid": [7, 13], "setup": [9, 10, 14], "short": 7, "shorthand": 11, "should": [9, 11, 15], "shutter": [2, 4, 13], "side": 8, "sign": 1, "signal": [13, 14, 15], "signal_frequency_mhz": 14, "signal_strength_bar": 14, "simultan": 15, "sinc": 13, "singl": [6, 12, 14], "site": 4, "size": 12, "sleep": [2, 11, 13], "slo": 7, "slow": 8, "so": [11, 13], "social": 4, "some": [0, 1, 2, 12, 15], "sourc": [0, 1, 2, 4, 5, 6, 14], "space": 13, "spanish": 14, "special": 14, "specif": [1, 15], "specifi": [5, 12, 13, 14], "speed": 13, "split": 12, "spreadsheet": 7, "ssid": [11, 13, 14], "ssl": [1, 14], "sta": [0, 14], "stack": 14, "standard": 7, "star": 7, "start": [0, 2, 4, 6, 12, 13, 14], "start_index": 14, "starting_bitr": 14, "startup": 14, "state": [0, 5, 6, 7, 9, 10, 11, 12, 13, 14], "static": 14, "static_ip": 14, "station": [0, 4, 14], "stationari": 7, "statu": [0, 1, 2, 4, 6, 10, 12, 14, 15], "status": [6, 9, 12, 14], "step": [1, 11], "still": 2, "stop": [4, 13, 14], "storag": 13, "store": 11, "stream": [0, 9, 13, 14], "streamer": 14, "strength": [13, 14], "string": [6, 8, 12, 14], "structur": 12, "submenu": 5, "subnet": 14, "subscrib": 11, "subscript": 11, "subsequ": [9, 11, 12], "success": [12, 13, 14], "suffici": 13, "summar": 12, "summari": 14, "sundai": 6, "super": 7, "superset": 7, "superview": 7, "support": [0, 1, 2, 4, 6, 7, 11, 13, 14], "suppos": 7, "swap": 8, "swedish": 14, "synchron": [4, 5, 14], "system": [1, 13, 14, 15], "tabl": [5, 9, 10, 11, 12], "take": 14, "taken": 13, "tap": 2, "task": 14, "tell": [2, 14, 15], "terminologi": 12, "text": [1, 14], "than": [12, 13, 15], "thei": 12, "therebi": 5, "therefor": [0, 15], "thi": [0, 1, 2, 3, 5, 6, 7, 9, 11, 12, 13, 14, 15], "thing": 1, "third": [2, 14, 15], "those": 6, "three": 8, "through": [1, 9, 10], "throughout": 12, "time": [2, 6, 11, 13, 14, 15], "timelaps": 13, "timeout": 14, "timeout_second": 14, "timer": 2, "timewarp": 7, "timezon": [2, 6], "titl": [5, 14], "title_id": [5, 14], "title_numb": 14, "tl": [1, 14], "tlv": [2, 3, 5, 6, 7, 12], "too": 13, "top": 12, "total": [13, 14], "total_configured_ssid": 14, "total_entri": 14, "track": 2, "trail": 13, "transfer": [2, 13, 14], "tri": 7, "trigger": [0, 1, 14], "triplet": 12, "tripod": 7, "true": 8, "trust": 1, "try": 9, "turbo": [2, 13, 14], "tutori": [9, 12], "twitch": 4, "two": [1, 8, 11, 12], "type": [0, 1, 2, 3, 4, 5, 6, 7, 10, 13, 14], "typespec": 14, "u": 12, "ubuntu": 1, "ui": [2, 5, 11, 13, 14], "ui_mode_group": 13, "uint16": [2, 6], "uint32": 5, "uint8": [2, 6, 7], "ultra": 7, "un": 2, "unavail": 14, "undefin": [9, 15], "under": 6, "understand": 9, "unknown": [8, 14], "unless": [12, 15], "unregist": [6, 13, 14], "unregister_live_stream_statu": 14, "unregister_preset_statu": 14, "unset": [4, 15], "unsign": 6, "until": 4, "up": 11, "updat": [1, 2, 5, 6, 9, 13, 14], "upon": 11, "upright": 8, "upsid": 8, "url": [4, 14], "us": [0, 1, 2, 3, 4, 5, 9, 10, 12, 13, 14, 15], "usb": 13, "user": [2, 5, 7, 9, 14, 15], "user_defin": 14, "usernam": [1, 14], "usual": [7, 14], "utc": [2, 6], "utf": 14, "util": 1, "uuid": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12], "v01": 9, "v4": 12, "valid": [1, 7, 11, 14], "valu": [1, 2, 5, 6, 7, 9, 13, 14], "value_length": 7, "variabl": [7, 12], "variou": [6, 9, 10], "vehicl": 7, "verifi": 8, "version": [6, 7, 9, 12, 13], "vertic": 7, "via": [0, 1, 2, 4, 5, 6, 7, 9, 11, 13, 14], "video": [5, 6, 9, 13, 14, 15], "wa": [7, 11, 13, 14], "wai": 11, "wait": [11, 14, 15], "wake": 11, "walk": 9, "warp": 13, "webcam": 13, "weekdai": 6, "well": 9, "were": 5, "when": [1, 2, 5, 6, 12, 13, 14], "whenev": 6, "where": [0, 9, 12], "whether": [2, 5, 11, 12, 14], "which": [0, 1, 2, 5, 11, 13, 14], "while": [0, 3, 9, 11, 13, 14, 15], "whitelist": 7, "who": 14, "wide": 7, "widescreen": 7, "wifi": [2, 11, 13, 14], "window": 1, "window_s": 14, "window_size_1080": 14, "window_size_480": 14, "window_size_720": 14, "wireless": 13, "wirelesspairingstateflag": 13, "wish": [2, 14, 15], "within": [5, 14], "without": [1, 2, 6], "work": [7, 12], "worksheet": 7, "write": [11, 13], "x509": 1, "xxxx": 11, "y": 13, "ye": 6, "year": [1, 2, 6], "yet": 14, "youtub": 4, "zero": [0, 2, 5, 8, 14], "zone": 14, "zoom": 13}, "titles": ["Access Point", "Camera on the Home Network", "Control", "Hilights", "Live Streaming", "Presets", "Query", "Settings", "Statuses", "Welcome to Open GoPro BLE API\u2019s documentation!", "Protocol", "BLE Setup", "Data Protocol", "ID Tables", "Protobuf Documentation", "State Management"], "titleterms": {"": [8, 9], "0": 8, "1": 8, "10": 8, "100": 8, "101": 8, "102": 8, "103": 8, "104": 8, "105": 8, "106": 8, "107": 8, "108": [7, 8], "11": 8, "110": 8, "111": 8, "112": 8, "113": 8, "114": 8, "115": 8, "116": 8, "117": 8, "118": 8, "121": 7, "122": 7, "123": 7, "128": 7, "13": [8, 12], "134": 7, "135": 7, "150": 7, "151": 7, "16": 12, "162": [7, 8], "167": 7, "17": 8, "171": 7, "172": 7, "173": 7, "175": 7, "176": 7, "177": 7, "178": 7, "179": 7, "180": 7, "182": 7, "183": 7, "184": 7, "186": 7, "187": 7, "189": [7, 8], "19": 8, "190": 7, "191": 7, "192": 7, "193": 7, "194": 8, "2": [7, 8], "20": 8, "21": 8, "22": 8, "23": 8, "24": 8, "26": 8, "27": 8, "28": 8, "29": 8, "3": [7, 8], "30": 8, "31": 8, "32": 8, "33": 8, "34": 8, "35": 8, "38": 8, "39": 8, "4": 8, "41": 8, "42": 8, "43": 7, "45": 8, "49": 8, "5": [8, 12], "54": 8, "55": 8, "56": 8, "58": 8, "59": [7, 8], "5ghz": 8, "6": 8, "60": 8, "65": 8, "66": 8, "67": 8, "68": 8, "69": 8, "70": 8, "74": 8, "75": 8, "76": 8, "77": 8, "78": 8, "79": 8, "8": 8, "81": 8, "82": 8, "83": [7, 8], "85": 8, "86": 8, "88": 8, "89": 8, "9": 8, "93": 8, "94": 8, "95": 8, "96": 8, "97": 8, "98": 8, "99": 8, "On": 8, "The": 8, "accept": 8, "access": [0, 8], "accessori": 8, "action": 8, "activ": 8, "advertis": 11, "air": 8, "aliv": 15, "an": 8, "anti": 7, "ap": 8, "api": 9, "approxim": 8, "ar": 8, "aspect": 7, "auto": 7, "avail": 8, "band": [7, 8], "bar": 8, "batteri": 8, "befor": 8, "best": 8, "between": 8, "big": 8, "bit": [7, 8, 12], "bitmask": 8, "ble": [8, 9, 11], "boot": 8, "burst": 8, "busi": 8, "byte": 8, "camera": [1, 7, 8, 9, 15], "can": 8, "cancel": 8, "capabl": [7, 8], "capac": 8, "captur": 8, "card": 8, "certif": 1, "chang": 8, "characterist": 11, "charg": 8, "cold": 8, "command": [8, 12, 13], "complet": 8, "compress": 8, "configur": 11, "connect": 8, "contain": 8, "continu": [8, 12], "control": [2, 7, 8, 15], "coordin": 8, "core": 8, "correspond": 8, "count": 8, "countdown": 8, "current": 8, "data": 12, "deciph": 12, "delai": 8, "depth": 7, "detail": 1, "devic": 8, "digit": 8, "disconnect": 0, "displai": 8, "document": [9, 14], "doe": 8, "down": 8, "download": 8, "durat": [7, 8], "e": 8, "each": 8, "enabl": [7, 8], "encod": 8, "endian": 8, "engag": 8, "enum": 14, "enumcameracontrolstatu": 14, "enumcohnnetworkst": 14, "enumcohnstatu": 14, "enumflatmod": 14, "enumlen": 14, "enumlivestreamerror": 14, "enumlivestreamstatu": 14, "enumpresetgroup": 14, "enumpresetgroupicon": 14, "enumpreseticon": 14, "enumpresettitl": 14, "enumprovis": 14, "enumregisterlivestreamstatu": 14, "enumregisterpresetstatu": 14, "enumresultgener": 14, "enumscan": 14, "enumscanentryflag": 14, "enumwindows": 14, "error": 8, "event": 8, "exposur": 8, "extend": 12, "far": 8, "featur": 8, "fi": 7, "finish": 11, "firmwar": 8, "first": 8, "flatmod": 8, "flicker": 7, "flow": 8, "format": 7, "fov": 7, "frame": [7, 8], "friendli": 8, "from": 0, "ftu": 8, "full": 8, "fulli": 8, "g": 8, "gatt": 11, "gener": [9, 12], "get": [8, 9], "gopro": 9, "gp": [7, 8], "group": [5, 8], "have": 8, "header": 12, "hilight": [3, 8], "hindsight": [7, 8], "home": 1, "horizon": 7, "how": 8, "hypersmooth": 7, "i": 8, "id": [7, 8, 13], "inform": 8, "int32": 8, "intern": 8, "interv": [7, 8], "json": [7, 8], "keep": 15, "kilobyt": 8, "laps": [7, 8], "last": 8, "lcd": 8, "len": [7, 8], "length": [7, 12], "level": [7, 8], "limit": 9, "linux": 8, "live": [4, 8], "liveview": 8, "locat": 8, "lock": 8, "manag": 15, "mani": 8, "max": 7, "media": [8, 14], "meet": 8, "messag": [11, 12], "microphon": 8, "millisecond": 8, "minimum": 8, "minut": 8, "mobil": 8, "mod": [7, 8], "mode": [7, 8, 11], "model": 8, "modifi": [5, 8], "more": 8, "most": 8, "network": 1, "night": 7, "notifprovisioningst": 14, "notifstartscan": 14, "notifycohnstatu": 14, "notifylivestreamstatu": 14, "notifypresetstatu": 14, "number": 8, "off": 7, "often": 8, "open": 9, "oper": [0, 1, 2, 3, 4, 5, 6, 7], "orient": 8, "ota": 8, "otherwis": 8, "over": 8, "overh": 8, "packet": 12, "pair": [8, 11], "payload": 12, "pc": 8, "pend": 8, "per": 7, "percent": 8, "perform": 7, "photo": [7, 8], "point": [0, 8], "poll": 8, "practic": 8, "present": 8, "preset": [5, 8, 14], "presetgroup": 14, "presetset": 14, "preview": 8, "primari": 8, "procedur": 1, "profil": 7, "protobuf": [12, 13, 14], "protocol": [10, 12], "provis": [1, 8], "queri": [6, 12, 13], "quick": 8, "rate": [7, 8], "ratio": 7, "readi": [8, 15], "recent": 8, "record": 8, "reflect": 8, "relat": 8, "remain": 8, "remot": 8, "request": 8, "requestclearcohncert": 14, "requestcohncert": 14, "requestconnect": 14, "requestconnectnew": 14, "requestcreatecohncert": 14, "requestcustompresetupd": 14, "requestgetapentri": 14, "requestgetcohnstatu": 14, "requestgetlastcapturedmedia": 14, "requestgetlivestreamstatu": 14, "requestgetpresetstatu": 14, "requestreleasenetwork": 14, "requestsetcameracontrolstatu": 14, "requestsetcohnset": 14, "requestsetlivestreammod": 14, "requestsetturboact": 14, "requeststartscan": 14, "resolut": 7, "responsecohncert": 14, "responseconnect": 14, "responseconnectnew": 14, "responsegener": 14, "responsegetapentri": 14, "responselastcapturedmedia": 14, "responsestartscan": 14, "rotat": 8, "rough": 8, "scan": 8, "scanentri": 14, "schedul": 8, "sd": 8, "sdcard": 8, "second": [7, 8], "secondari": 8, "see": 8, "select": 8, "send": 11, "set": [7, 8, 13], "setup": 11, "signal": 8, "sinc": 8, "so": 8, "space": 8, "specifi": 8, "speed": [7, 8], "ssid": 8, "start": [8, 9], "state": [8, 15], "statu": [5, 8, 13], "status": 8, "stop": 8, "storag": 8, "stream": [4, 8], "strength": 8, "success": 8, "suffici": 8, "support": [8, 9], "system": 8, "tabl": 13, "taken": 8, "than": 8, "thi": 8, "time": 8, "timelaps": 8, "too": 8, "total": 8, "trail": 7, "transfer": 8, "turbo": 8, "type": [8, 12], "ui": 8, "ui_mode_group": 8, "updat": 8, "us": 8, "usb": 8, "valu": [8, 12], "verifi": 1, "version": 8, "via": 8, "video": [7, 8], "view": 1, "wa": 8, "warp": 8, "welcom": 9, "when": 8, "which": 8, "while": 8, "wi": 7, "wifi": 8, "wireless": 8, "wirelesspairingstateflag": 8, "write": 8, "xlsx": 7, "y": 8, "zoom": 8}}) \ No newline at end of file diff --git a/contribution.html b/contribution.html index 49301da0..e36c74f6 100644 --- a/contribution.html +++ b/contribution.html @@ -532,10 +532,10 @@

    Quiz

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

    @@ -548,10 +548,10 @@

    Quiz

    - - @@ -567,10 +567,10 @@

    Quiz

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

    @@ -580,10 +580,10 @@

    Quiz

    - - @@ -606,7 +606,7 @@

    Tabs

    -
      +
      • tab1 @@ -621,7 +621,7 @@

        Tabs

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

          diff --git a/feed.xml b/feed.xml index 80673470..6d15a2f1 100644 --- a/feed.xml +++ b/feed.xml @@ -1 +1 @@ -Jekyll2024-04-19T12:03:54-07:00https://gopro.github.io/OpenGoPro/feed.xmlOpen GoProOpen Source GoPro InterfaceGoPro \ No newline at end of file +Jekyll2024-04-19T13:41:07-07:00https://gopro.github.io/OpenGoPro/feed.xmlOpen GoProOpen Source GoPro InterfaceGoPro \ No newline at end of file diff --git a/http.html b/http.html index 229653ad..803c37f6 100644 --- a/http.html +++ b/http.html @@ -1,9 +1,152 @@ - + + - + + + +Open GoPro + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +
          + +
          +
          +
          + + + OpenGoPro HTTP API - + - - + + - + -
          + +
          +

          OpenGoPro HTTP API (2.0)

          Download OpenAPI specification:Download

          The GoPro API allows developers to create apps and utilities that interact with and control a GoPro camera.

          -

          Overview

          +
          +
          +
          +

          OpenGoPro HTTP API (2.0) +

          +

          Download OpenAPI specification:Download

          + +
          +

          The GoPro API allows developers to create apps and utilities that interact with and control a GoPro camera.

          +
          +
          +
          +
          +

          +Overview

          +
          +

          The GoPro API allows you to control and query the camera to:

          • Capture photo/video media
          • Get media list
          • @@ -501,7 +817,8 @@

            Supported Cameras

            Minimal Firmware Version - + + 62 H23.01 HERO12 Black @@ -531,40 +848,46 @@

            Supported Cameras

            HERO9 Black v01.70.00 - + +

            While the version listed above are minimum versions needed to support the Open GoPro API, the documentation assumes that the GoPro is always updated to the most recent version. This is relevant in cases where functionality changes between versions.

            -

          Setup

          +

          +Setup

          +
          +

          Connection

          WiFi

          -

          Connection to the camera via WiFi requires that the camera's WiFi Access Point be enabled. This can be done by +

          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 and sending a command to enable AP Mode.

          USB

          Open GoPro systems that utilize USB must support the Network Control Model (NCM) protocol. Connecting via USB requires the following steps:

            -
          1. Physically connect the camera's USB-C port to your system
          2. +
          3. Physically connect the camera's USB-C port to your system
          4. Send HTTP command to enable wired USB control

          Authentication

          @@ -604,18 +928,24 @@

          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 XYZ are the last three digits of the camera's +

          The socket address for USB connections is 172.2X.1YZ.51:8080 where XYZ are the last three digits of the camera's serial number.

          -

          The camera's serial number can be obtained in any of the following ways:

          +

          The camera's serial number can be obtained in any of the following ways:

            -
          • Reading the sticker inside the camera's battery enclosure
          • +
          • Reading the sticker inside the camera's battery enclosure
          • Camera UI: Preferences >> About >> Camera Info
          • -
          • Bluetooth Low Energy: By reading directly from Hardware Info
          • +
          • Bluetooth Low Energy: By reading directly from Hardware Info +
          -

          For example, if the camera's serial number is C0000123456789, the IP address for USB connections would be +

          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.

          -

          General Usage

          +

          +General Usage

          +
          +

          Commands

          Using the Open GoPro API, a client can perform various command, control, and query operations.

          -

          Depending on the camera's state, it may not be ready to accept specific 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
          • @@ -667,20 +998,33 @@

            Limitations

            For example, the user should not try to query the current Photo Digital Lenses (FOV) value while in a video-based Preset.
          -

          Analytics

          Query / Configure Analytics

          -

          Set Client as Third Party

          +

          +Analytics

          +
          +

          Query / Configure Analytics

          +
          +
          +
          +
          +

          +Set Client as Third Party

          +
          +

          HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -691,12 +1035,78 @@

          Limitations

        • WIFI

        -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/camera/analytics/set_client_info

    Response samples

    Content type
    application/json
    { }

    COHN

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    + + +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/camera/analytics/set_client_info
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    + +
    +

    +COHN

    +
    Limitations <td>❌</td> </tr> </tbody></table> -">

    The Camera On the Home Network (COHN) capability allows the client to perform command and control with the camera +"> +

    The Camera On the Home Network (COHN) capability allows the client to perform command and control with the camera indirectly through an access point such as a router at home.

    For security purposes, all communications are performed over HTTPS.

    The following cameras support COHN:

    @@ -743,7 +1154,8 @@

    Limitations

    Supported - + + HERO ❌ @@ -767,46 +1179,167 @@

    Limitations

    HERO9 Black ❌ - -

    Provisioning COHN

    In order to use the COHN capability, the camera must first be provisioned for COHN. + + +

    +
    +
    +

    +Provisioning COHN

    +
    +

    In order to use the COHN capability, the camera must first be provisioned for COHN. For instructions on how to do this, see the Open GoPro BLE spec.

    -

    Send Messages via HTTPS

    +

    +Send Messages via HTTPS

    +

    Once the camera is provisioned, the client can issue commands and set settings +"> +

    Once the camera is provisioned, the client can issue commands and set settings via HTTPS using the COHN certificate and Basic authorization (username/password) credentials obtained during provisioning or subsequently by querying for COHN status.

    -

    HTTPS Headers

    +

    +HTTPS Headers

    +
    +

    All HTTPS messages must contain Basic access authentication headers, using the username and password from the COHN status obtained during or after provisioning.

    -

    Configure COHN Settings

    +
    +

    +Configure COHN Settings

    +
    +

    HERO12 Black

    Supported Protocols:

    • USB
    • WIFI

    -
    Request Body schema: application/json
    + + + + + + +
    cohn_active
    integer
    Enum: 0 1
    Request Body schema: application/json + +
    + + +
    +cohn_active + +
    +
    +integer +
    +
    + Enum: 0 1

    1 to enable, 0 to disable

    +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +

    1 to enable, 0 to disable

    When cohn_active == 1, STA Mode connection will be dropped and camera will not automatically re-connect for COHN.

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    Content type
    application/json
    {
    • "cohn_active": 0
    }

    Response samples

    Content type
    application/json
    { }

    Create the COHN SSL/TLS certificates

    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + + +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    {
    • +"cohn_active": 0 +
    +}
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Create the COHN SSL/TLS certificates

    +
    +

    HERO12 Black

    Supported Protocols:

    • USB
    • @@ -826,82 +1360,403 @@

      Limitations

      This creates the Camera On the Home Network SSL/TLS certs certs. The created certificate(s) can be obtained via Get COHN Certificate and used for SSL/TLS communications

      -
    Request Body schema: application/json
    override
    integer
    Enum: 0 1

    If 1, replace existing Root CA cert with a newly-generated one.

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    Content type
    application/json
    {
    • "override": 0
    }

    Response samples

    Content type
    application/json
    { }

    Delete COHN Certificates

    Request Body schema: application/json + +
    + + + +
    +override + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    If 1, replace existing Root CA cert with a newly-generated one.

    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + + +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    {
    • +"override": 0 +
    +}
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Delete COHN Certificates

    +
    +

    HERO12 Black

    Supported Protocols:

    • USB
    • WIFI

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request POST \
    -  --url http://10.5.5.9:8080/gopro/cohn/cert/clear

    Response samples

    Content type
    application/json
    { }

    Get COHN Certificate

    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request POST \
    +  --url http://10.5.5.9:8080/gopro/cohn/cert/clear
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get COHN Certificate

    +
    +

    HERO12 Black

    Supported Protocols:

    • USB
    • WIFI

    -

    Responses

    Response Schema: text/plain
    string

    Request samples

    curl --request POST \
    -  --url http://10.5.5.9:8080/GoProRootCA.crt

    Response samples

    Content type
    text/plain
    -----BEGIN CERTIFICATE-----
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: text/plain +
    +
    +
    +string +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request POST \
    +  --url http://10.5.5.9:8080/GoProRootCA.crt
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    text/plain
    +
    +
    +
    +
    -----BEGIN CERTIFICATE-----
     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
     -----END CERTIFICATE----
    -

    Get COHN Status

    +
    +

    +Get COHN Status

    +
    +

    HERO12 Black

    Supported Protocols:

    • USB
    • WIFI

    -

    Responses

    Response Schema: application/json
    enabled
    integer
    Enum: 0 1

    Is COHN currently enabled?

    -
    ipaddress
    string
    Example: "123.45.67.890"

    Camera's IP address on the local network

    -
    macaddress
    string

    MAC address of the wifi adapter

    -
    password
    string

    Password used for http basic auth header

    -
    ssid
    string

    Currently connected SSID

    -
    state
    integer (EnumCOHNNetworkState)
    Enum: 0 1 2 5 27 28 29 30
    Responses +
    +
    +
    Response Schema: application/json +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +enabled + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is COHN currently enabled?

    +
    +
    +
    +ipaddress + +
    +
    +string +
    + Example: "123.45.67.890" +
    +
    +

    Camera's IP address on the local network

    +
    +
    +
    +macaddress + +
    +
    +string +
    +

    MAC address of the wifi adapter

    +
    +
    +
    +password + +
    +
    +string +
    +

    Password used for http basic auth header

    +
    +
    +
    +ssid + +
    +
    +string +
    +

    Currently connected SSID

    +
    +
    +
    +state + +
    +
    +integer (EnumCOHNNetworkState) +
    +
    + Enum: 0 1 2 5 27 28 29 30
    Limitations <td></td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -958,7 +1814,8 @@

    Limitations

    - + + @@ -998,8 +1855,23 @@

    Limitations

    -
    ID Summary
    0 COHN_STATE_Init COHN_STATE_Invalid
    -
    status
    integer (EnumCOHNStatus)
    Enum: 0 1
    +
    +status + +
    +
    +integer (EnumCOHNStatus) +
    +
    + Enum: 0 1
    Limitations <td></td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -1026,7 +1899,8 @@

    Limitations

    - + + @@ -1036,19 +1910,124 @@

    Limitations

    + +
    ID Summary
    0 COHN_UNPROVISIONED COHN_PROVISIONED
    +
    +
    +
    +username + +
    +
    +string +
    +

    Username used for http basic auth header

    +
    +
    +
    -
    username
    string

    Username used for http basic auth header

    -

    Request samples

    curl --request POST \
    -  --url http://10.5.5.9:8080/gopro/cohn/status

    Response samples

    Content type
    application/json
    {
    • "enabled": 0,
    • "ipaddress": "123.45.67.890",
    • "macaddress": "string",
    • "password": "string",
    • "ssid": "string",
    • "state": 0,
    • "status": 0,
    • "username": "string"
    }

    Control

    Command and control of the camera

    -

    Configure Turbo Transfer

    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request POST \
    +  --url http://10.5.5.9:8080/gopro/cohn/status
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    {
      +
    • +"enabled": 0, +
    • +
    • +"ipaddress": "123.45.67.890", +
    • +
    • +"macaddress": "string", +
    • +
    • +"password": "string", +
    • +
    • +"ssid": "string", +
    • +
    • +"state": 0, +
    • +
    • +"status": 0, +
    • +
    • +"username": "string" +
    • +
    +}
    +
    +
    +
    +
    +
    +
    +
    +

    +Control

    +
    +

    Command and control of the camera

    +
    +
    +
    +
    +

    +Configure Turbo Transfer

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -1074,24 +2054,109 @@

    Limitations

    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 connection.

    Note that Disabling / enabling turbo mode willa lso enable / disable the transferring media camera UI.

    -
    query Parameters
    p
    required
    integer
    Enum: 0 1

    0 to disable, 1 to enable

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/media/turbo_transfer?p=0'

    Response samples

    Content type
    application/json
    { }

    Enable Wired camera control over USB

    query Parameters + + + +
    +p<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    0 to disable, 1 to enable

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/media/turbo_transfer?p=0'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Enable Wired camera control over USB

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

    @@ -1101,18 +2166,102 @@

    Limitations

  • WIFI

  • -
    query Parameters
    p
    required
    integer
    Enum: 0 1

    If 1, enable wired usb control; If 0, disable usb control

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/control/wired_usb?p=0'

    Response samples

    Content type
    application/json
    { }

    Keep Alive

    query Parameters + + + +
    +p<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    If 1, enable wired usb control; If 0, disable usb control

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/control/wired_usb?p=0'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Keep Alive

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -1148,15 +2298,82 @@

    Limitations

    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.

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/camera/keep_alive

    Response samples

    Content type
    application/json
    { }

    Set Camera Control Status

    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/camera/keep_alive
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Set Camera Control Status

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

    @@ -1186,7 +2404,7 @@

    Limitations


    This command is used to tell the camera that a client (i.e. External Control) wishes to claim control of the camera. This causes the camera to immediately exit most 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 +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:

      @@ -1195,7 +2413,19 @@

      Limitations

    See the below diagram for a state diagram of Camera Control:

    global behaviors state diagram

    -
    query Parameters
    + + + + + + +
    p
    required
    integer
    Enum: 0 1 2
    query Parameters + + +
    +p<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2
    Limitations <td></td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -1227,7 +2458,8 @@

    Limitations

    - + + @@ -1242,22 +2474,95 @@

    Limitations

    -
    ID Summary
    0 CAMERA_IDLE CAMERA_EXTERNAL_CONTROL
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/control/set_ui_controller?p=0'

    Response samples

    Content type
    application/json
    { }

    Set Date / Time

    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/control/set_ui_controller?p=0'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Set Date / Time

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black

    Supported Protocols:

    @@ -1266,53 +2571,147 @@

    Limitations

  • WIFI

  • -
    query Parameters
    date
    required
    string
    Example: date=2023_12_31

    current date in format YYYY_MM_DD

    -
    time
    required
    string
    Example: time=21_12_13

    current time in format HH_MM_SS in 24 hour format

    -
    tzone
    required
    integer
    Example: tzone=-480

    Timezone offset in minutes. See here for a -listing of all UTC offsets.

    -

    Not supported on:

    -
      -
    • Hero 10 Black
    • -
    • Hero 9 Black
    • -
    -
    dst
    required
    integer
    Enum: 0 1

    Is daylight savings time active?

    -

    Not supported on:

    -
      -
    • Hero 10 Black
    • -
    • Hero 9 Black
    • +
    +
    +
    query Parameters
    + + + + + + + + + + + + + + + + + +
    +date<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: date=2023_12_31 +
    +
    +

    current date in format YYYY_MM_DD

    +
    +
    +
    +time<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: time=21_12_13 +
    +
    +

    current time in format HH_MM_SS in 24 hour format

    +
    +
    +
    +tzone<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>integer Example: tzone=-480Timezone offset in minutes. See here for a +listing of all UTC offsets. +Not supported on +Hero 10 Black +Hero 9 Black
    +dst<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>integer Enum: 0 1 Is daylight savings time active? +Not supported on +Hero 10 Black +Hero 9 Black
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + +
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/set_date_time?date=2023_12_31&time=21_12_13&tzone=-480&dst=0'

    Response samples

    Content type
    application/json
    { }

    Set Digital Zoom

    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/set_date_time?date=2023_12_31&time=21_12_13&tzone=-480&dst=0'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Set Digital Zoom

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -1323,24 +2722,110 @@

    Limitations

  • WIFI

  • -
    query Parameters
    percent
    required
    integer [ 0 .. 100 ]
    Example: percent=50

    Zoom Level (0-100)

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/digital_zoom?percent=50'

    Response samples

    Content type
    application/json
    { }

    Set Shutter

    query Parameters + + + +
    +percent<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer [ 0 .. 100 ] +
    + Example: percent=50 +
    +
    +

    Zoom Level (0-100)

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/digital_zoom?percent=50'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Set Shutter

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

    @@ -1350,24 +2835,117 @@

    Limitations

  • WIFI

  • -
    path Parameters
    mode
    required
    string
    Enum: "start" "stop"
    Example: start

    Start / stop encoding.

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/camera/shutter/start

    Response samples

    Content type
    application/json
    { }

    Hilights

    path Parameters + + + +
    +mode<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    +
    + Enum: "start" "stop"
    + Example: start +
    +
    +

    Start / stop encoding.

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/camera/shutter/start
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +

    +Hilights

    +
    +

    The HiLight Tags feature allows the user to tag moments of interest either during video capture or on existing media.

    Once HiLight tags have been added, they can be queried via Media Info

    -

    Hilight a Media File

    +
    +

    +Hilight a Media File

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -1387,19 +2966,122 @@

    Limitations


    Add a hilight / tag to an existing photo or media file.

    -
    query Parameters
    path
    required
    string
    Example: path=100GOPRO/GOPR0002.MP4

    The path to a file on the camera to HiLight

    -
    ms
    integer
    Example: ms=1

    The offset from the beginning of a video file, in milliseconds

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/media/hilight/file?path=100GOPRO/GOPR0002.MP4&ms=1'

    Response samples

    Content type
    application/json
    { }

    Hilight While Recording

    query Parameters + + + + + + + + + +
    +path<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: path=100GOPRO/GOPR0002.MP4 +
    +
    +

    The path to a file on the camera to HiLight

    +
    +
    +
    +ms + +
    +
    +integer +
    + Example: ms=1 +
    +
    +

    The offset from the beginning of a video file, in milliseconds

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/media/hilight/file?path=100GOPRO/GOPR0002.MP4&ms=1'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Hilight While Recording

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

    @@ -1420,18 +3103,91 @@

    Limitations


    Add hilight at current time while recording video

    This can only be used during recording.

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/media/hilight/moment

    Response samples

    Content type
    application/json
    { }

    Remove Hilight

    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/media/hilight/moment
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
      + + +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Remove Hilight

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -1451,20 +3208,134 @@

    Limitations


    Remove an existing hilight from a photo or video file.

    -
    query Parameters
    path
    required
    string
    Example: path=100GOPRO/GOPR0002.MP4

    The path to a file on the camera to remove a HiLight from

    -
    ms
    integer
    Example: ms=1

    The offset from the beginning of a video file, in milliseconds

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/media/hilight/remove?path=100GOPRO/GOPR0002.MP4&ms=1'

    Response samples

    Content type
    application/json
    { }

    Media

    This section describes the operations to query basic details about media captured on the sdcard.

    -

    Chapters

    query Parameters + + + + + + + + + +
    +path<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: path=100GOPRO/GOPR0002.MP4 +
    +
    +

    The path to a file on the camera to remove a HiLight from

    +
    +
    +
    +ms + +
    +
    +integer +
    + Example: ms=1 +
    +
    +

    The offset from the beginning of a video file, in milliseconds

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/media/hilight/remove?path=100GOPRO/GOPR0002.MP4&ms=1'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
      + + +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Media

    +
    +

    This section describes the operations 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:

    @@ -1514,18 +3386,25 @@

    Limitations

    -rwxrwxrwx@ 1 gopro 123456789 184517614 Jan 1 00:00 GL030078.LRV -rwxrwxrwx@ 1 gopro 123456789 34877660 Jan 1 00:00 GL040078.LRV -

    Delete All Files

    +
    +

    +Delete All Files

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -1536,16 +3415,83 @@

    Limitations

  • WIFI

  • -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gp/gpControl/command/storage/delete/all

    Response samples

    Content type
    application/json
    { }

    Delete Grouped Media Item

    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gp/gpControl/command/storage/delete/all
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Delete Grouped Media Item

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -1567,20 +3514,111 @@

    Limitations


    Delete an entire group of media files such as in a burst, timelapse, or chaptered video. This API should not be used to delete single files. Instead use Delete Single File

    -
    query Parameters
    p
    required
    string
    Example: p=105GOPRO/G0016880.JPG

    The path to the group on the camera to delete. This path must be the first file in the group.

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gp/gpControl/command/storage/delete/group?p=105GOPRO/G0016880.JPG'

    Response samples

    Content type
    application/json
    { }

    Delete Single Media File

    query Parameters + + + +
    +p<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: p=105GOPRO/G0016880.JPG +
    +
    +

    The path to the group on the camera to delete. This path must be the first file in the group.

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gp/gpControl/command/storage/delete/group?p=105GOPRO/G0016880.JPG'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
      + + +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Delete Single Media File

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -1602,20 +3641,111 @@

    Limitations


    When operating on a file that is part of a group, only the individual file will be deleted. To delete the entire group, use Delete Grouped Media Item

    -
    query Parameters
    p
    required
    string
    Example: p=105GOPRO/GOPR6879.JPG

    path to media file to delete

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/media/delete/file?p=105GOPRO/GOPR6879.JPG'

    Response samples

    Content type
    application/json
    { }

    Download a Media File

    query Parameters + + + +
    +p<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: p=105GOPRO/GOPR6879.JPG +
    +
    +

    path to media file to delete

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/media/delete/file?p=105GOPRO/GOPR6879.JPG'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
      + + +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Download a Media File

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -1635,16 +3766,106 @@

    Limitations


    Note that this is the same endpoint for all media (photos, video, etc.).

    -
    path Parameters
    directory
    required
    string
    Example: 100GOPRO

    Case sensitive directory that media resides in

    -
    filename
    required
    string
    Examples:
    • GOPR0001.JPG - Sample photo file
    • GH010397.MP4 - Sample video file

    Case sensitive media filename

    -

    Responses

    Response Schema: application/octet-stream
    string <binary>

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/videos/DCIM/100GOPRO/%7Bfilename%7D

    Get Last Captured Media

    path Parameters + + + + + + + + + +
    +directory<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: 100GOPRO +
    +
    +

    Case sensitive directory that media resides in

    +
    +
    +
    +filename<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    Examples:
      +
    • +GOPR0001.JPG - Sample photo file
    • +
    • +GH010397.MP4 - Sample video file
    • +
    +
    +

    Case sensitive media filename

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/octet-stream +
    +
    +
    +string <binary> +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/videos/DCIM/100GOPRO/%7Bfilename%7D
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get Last Captured Media

    +
    +

    HERO12 Black

    Supported Protocols:

    • USB
    • @@ -1668,22 +3890,132 @@

      Limitations

    • single photo / video: The single media path
    • any grouped media: The path to the first captured media in the group
    -

    Responses

    Response Schema: application/json
    file
    string
    Example: "GOPR0002.JPG"

    Filename of media

    -
    folder
    string
    Example: "100GOPRO"

    Directory in which the media is contained in

    -

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/media/last_captured

    Response samples

    Content type
    application/json
    {
    • "file": "GOPR0002.JPG",
    • "folder": "100GOPRO"
    }

    Get Media File GPMF

    Responses +
    +
    +
    Response Schema: application/json +
    + + + + + + + + + +
    +file + +
    +
    +string +
    + Example: "GOPR0002.JPG" +
    +
    +

    Filename of media

    +
    +
    +
    +folder + +
    +
    +string +
    + Example: "100GOPRO" +
    +
    +

    Directory in which the media is contained in

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/media/last_captured
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
      + + +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    {
      +
    • +"file": "GOPR0002.JPG", +
    • +
    • +"folder": "100GOPRO" +
    • +
    +}
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get Media File GPMF

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -1703,29 +4036,100 @@

    Limitations


    None

    -
    query Parameters
    path
    required
    string
    Example: path=100GOPRO/GOPR0002.JPG

    media file name

    -

    Responses

    Response Schema: application/octet-stream
    string <binary>

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/media/gpmf?path=100GOPRO/GOPR0002.JPG'

    Get Media File Info

    +
    Response Schema: application/octet-stream +
    +
    +
    +string <binary> +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/media/gpmf?path=100GOPRO/GOPR0002.JPG'
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get Media File Info

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -1736,11 +4140,52 @@

    Limitations

  • WIFI

  • -
    query Parameters
    path
    required
    string
    Example: path=100GOPRO/GOPR0002.JPG

    media file name

    -

    Responses

    Response Schema: application/json
    Any of
    ct
    required
    integer
    Enum: 0 1 2 3 4 5 6 8 9 10 11 12
    query Parameters + + + +
    +path<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: path=100GOPRO/GOPR0002.JPG +
    +
    +

    media file name

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    + Any of
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +ct<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 8 9 10 11 12
    Limitations <td>12</td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg">

    Media content type

    +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +

    Media content type

    @@ -1805,7 +4251,8 @@

    Limitations

    - + + @@ -1853,58 +4300,433 @@

    Limitations

    -
    Mode
    Video 0
    Live Burst 12
    -
    cre
    required
    integer
    Example: "1692992748"

    Creation time in seconds since epoch

    -
    s
    required
    integer
    Example: "1234567890"

    File size in bytes

    -
    gumi
    required
    string
    Example: "12345678998765443211234567899875"

    Globally Unique Media ID

    -
    h
    required
    integer
    Example: "1080"

    Height of media in pixels

    -
    w
    required
    integer
    Example: "1920"

    Width of media in pixels

    -
    hc
    required
    integer [ 0 .. 99 ]

    Number of hilights in media

    -
    eis
    required
    integer
    Enum: 0 1

    1 if stabilized, 0 otherwise

    -
    mp
    required
    integer
    Enum: 0 1

    1 if metadata is present, 0 otherwise

    -
    rot
    required
    string

    Deprecated

    -
    tr
    required
    integer
    Enum: 0 1

    1 if file is transcoded, 0 otherwise

    -
    us
    required
    integer
    Enum: 0 1

    Has the file been uploaded? 0 if no, 1 if yes

    -
    ao
    required
    string
    Enum: "auto" "wind" "stereo" "off"
    Example: "auto"

    Audio option

    -
    profile
    required
    integer [ 0 .. 255 ]

    Advanced Video Codec Level

    -
    avc_profile
    required
    integer [ 0 .. 255 ]
    Example: "0"

    Advanced Video Code Profile

    -
    cl
    required
    integer
    Enum: 0 1

    1 if clipped, 0 otherwise

    -
    dur
    required
    integer
    Example: "42"

    Video duration in seconds

    -
    fps
    required
    integer
    Example: "1001"

    Video frame rate numerator

    -
    fps_denom
    required
    integer
    Example: "30000"

    Video frame rate denominator

    -
    ls
    required
    integer [ -1 .. 1234567890 ]

    Low Resolution Video file size in bytes. -1 if there is no LRV file

    -
    pta
    required
    integer
    Enum: 0 1

    1 if protune audio is present, 0 otherwise

    -
    subsample
    required
    integer
    Enum: 0 1

    1 if subsampled from other video, 0 otherwise

    -
    fov
    string

    Field of View

    -
    hi
    Array of integers
    Example: "1500,4700"

    List of hilights in ms offset from start of video

    -
    lc
    integer
    Enum: 0 1

    Lens configuration ==> 0 for front, 1 for rear

    -
    mos
    Array of strings
    Items Enum: "app" "pc" "other"
    Example: "app,pc"

    List of offload states

    -
    prjn
    integer
    Enum: 0 1 2 3 4 5 6 7 8
    +
    +cre<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1692992748" +
    +
    +

    Creation time in seconds since epoch

    +
    +
    +
    +s<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1234567890" +
    +
    +

    File size in bytes

    +
    +
    +
    +gumi<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: "12345678998765443211234567899875" +
    +
    +

    Globally Unique Media ID

    +
    +
    +
    +h<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1080" +
    +
    +

    Height of media in pixels

    +
    +
    +
    +w<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1920" +
    +
    +

    Width of media in pixels

    +
    +
    +
    +hc<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer [ 0 .. 99 ] +
    +

    Number of hilights in media

    +
    +
    +
    +eis<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if stabilized, 0 otherwise

    +
    +
    +
    +mp<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if metadata is present, 0 otherwise

    +
    +
    +
    +rot<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    +

    Deprecated

    +
    +
    +
    +tr<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if file is transcoded, 0 otherwise

    +
    +
    +
    +us<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Has the file been uploaded? 0 if no, 1 if yes

    +
    +
    +
    +ao<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    +
    + Enum: "auto" "wind" "stereo" "off"
    + Example: "auto" +
    +
    +

    Audio option

    +
    +
    +
    +profile<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer [ 0 .. 255 ] +
    +

    Advanced Video Codec Level

    +
    +
    +
    +avc_profile<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer [ 0 .. 255 ] +
    + Example: "0" +
    +
    +

    Advanced Video Code Profile

    +
    +
    +
    +cl<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if clipped, 0 otherwise

    +
    +
    +
    +dur<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "42" +
    +
    +

    Video duration in seconds

    +
    +
    +
    +fps<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1001" +
    +
    +

    Video frame rate numerator

    +
    +
    +
    +fps_denom<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "30000" +
    +
    +

    Video frame rate denominator

    +
    +
    +
    +ls<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer [ -1 .. 1234567890 ] +
    +

    Low Resolution Video file size in bytes. -1 if there is no LRV file

    +
    +
    +
    +pta<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if protune audio is present, 0 otherwise

    +
    +
    +
    +subsample<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if subsampled from other video, 0 otherwise

    +
    +
    +
    +fov + +
    +
    +string +
    +

    Field of View

    +
    +
    +
    +hi + +
    +
    +Array of integers +
    + Example: "1500,4700" +
    +
    +

    List of hilights in ms offset from start of video

    +
    +
    +
    +lc + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Lens configuration ==> 0 for front, 1 for rear

    +
    +
    +
    +mos + +
    +
    +Array of strings +
    +
    +Items Enum: "app" "pc" "other"
    + Example: "app,pc" +
    +
    +

    List of offload states

    +
    +
    +
    +prjn + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8
    Limitations <td>8</td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg">

    Lens projection

    +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +

    Lens projection

    @@ -1957,7 +4780,8 @@

    Limitations

    - + + @@ -1993,17 +4817,199 @@

    Limitations

    + +
    Mode
    EAC 0
    Hemisheric 8
    +
    +
    +
    +progr + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is video progressive? 1 if progressive, 0 if interlaced

    +
    +
    +
    -
    progr
    integer
    Enum: 0 1

    Is video progressive? 1 if progressive, 0 if interlaced

    -

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/media/info?path=100GOPRO/GOPR0002.JPG'

    Response samples

    Content type
    application/json
    Example
    {
    • "ao": "auto",
    • "avc_profile": 0,
    • "cl": 0,
    • "cre": 1692992748,
    • "ct": 0,
    • "dur": 42,
    • "eis": 0,
    • "fov": "string",
    • "fps": 1001,
    • "fps_denom": 30000,
    • "gumi": "12345678998765443211234567899875",
    • "h": 1080,
    • "hc": 99,
    • "hi": [
      ],
    • "lc": 0,
    • "ls": -1,
    • "mos": [
      ],
    • "mp": 0,
    • "prjn": 0,
    • "profile": 255,
    • "progr": 0,
    • "pta": 0,
    • "rot": "string",
    • "s": 1234567890,
    • "subsample": 0,
    • "tr": 0,
    • "us": 0,
    • "w": 1920
    }

    Get Media File Screennail

    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/media/info?path=100GOPRO/GOPR0002.JPG'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +Example
    + +
    +
    +
    +
    + +
    +
    {
      +
    • +"ao": "auto", +
    • +
    • +"avc_profile": 0, +
    • +
    • +"cl": 0, +
    • +
    • +"cre": 1692992748, +
    • +
    • +"ct": 0, +
    • +
    • +"dur": 42, +
    • +
    • +"eis": 0, +
    • +
    • +"fov": "string", +
    • +
    • +"fps": 1001, +
    • +
    • +"fps_denom": 30000, +
    • +
    • +"gumi": "12345678998765443211234567899875", +
    • +
    • +"h": 1080, +
    • +
    • +"hc": 99, +
    • +
    • +"hi": [
        +
      • +
      • +
      +], +
    • +
    • +"lc": 0, +
    • +
    • +"ls": -1, +
    • +
    • +"mos": [
        +
      • +
      • +
      +], +
    • +
    • +"mp": 0, +
    • +
    • +"prjn": 0, +
    • +
    • +"profile": 255, +
    • +
    • +"progr": 0, +
    • +
    • +"pta": 0, +
    • +
    • +"rot": "string", +
    • +
    • +"s": 1234567890, +
    • +
    • +"subsample": 0, +
    • +
    • +"tr": 0, +
    • +
    • +"us": 0, +
    • +
    • +"w": 1920 +
    • +
    +}
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get Media File Screennail

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -2023,18 +5030,88 @@

    Limitations


    A screennail is a low-res preview image that is higher resolution than a thumbnail.

    -
    query Parameters
    path
    required
    string
    Example: path=100GOPRO/GOPR0002.JPG

    media file name

    -

    Responses

    Response Schema: application/octet-stream
    string <binary>

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/media/screennail?path=100GOPRO/GOPR0002.JPG'

    Get Media File Telemetry

    query Parameters + + + +
    +path<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: path=100GOPRO/GOPR0002.JPG +
    +
    +

    media file name

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/octet-stream +
    +
    +
    +string <binary> +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/media/screennail?path=100GOPRO/GOPR0002.JPG'
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get Media File Telemetry

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -2054,29 +5132,100 @@

    Limitations


    Get Media File Telemetry track data

    -
    query Parameters
    path
    required
    string
    Example: path=100GOPRO/GOPR0002.JPG

    media file name

    -

    Responses

    Response Schema: application/octet-stream
    string <binary>

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/media/telemetry?path=100GOPRO/GOPR0002.JPG'

    Get Media File Thumbnail

    +
    Response Schema: application/octet-stream +
    +
    +
    +string <binary> +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/media/telemetry?path=100GOPRO/GOPR0002.JPG'
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get Media File Thumbnail

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -2087,18 +5236,88 @@

    Limitations

  • WIFI

  • -
    query Parameters
    path
    required
    string
    Example: path=100GOPRO/GOPR0002.JPG

    media file name

    -

    Responses

    Response Schema: application/octet-stream
    string <binary>

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/media/thumbnail?path=100GOPRO/GOPR0002.JPG'

    Get Media List

    query Parameters + + + +
    +path<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: path=100GOPRO/GOPR0002.JPG +
    +
    +

    media file name

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/octet-stream +
    +
    +
    +string <binary> +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/media/thumbnail?path=100GOPRO/GOPR0002.JPG'
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get Media List

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -2160,7 +5380,7 @@

    Limitations

    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" +

    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:

    {
    @@ -2198,74 +5418,800 @@ 

    Limitations

    ..., G0010394.JPG, G0010395.JPG. G0010396.JPG
    -

    Responses

    Response Schema: application/json
    id
    required
    string
    Example: "1554375628411872255"

    media list identifier

    -
    required
    Array of objects
    Array
    d
    required
    string
    Example: "100GOPRO"

    directory that the media files reside in

    -
    required
    Array of SingleMediaListItem (object) or GroupedMediaListItem (object)

    list of files

    -
    Array
    Any of
    n
    required
    string
    Example: "GOPR0001.JPG"

    Media filename

    -
    cre
    required
    integer
    Example: "1696600109"

    Creation time in seconds since epoch

    -
    mod
    required
    integer
    Example: "1696600109"

    Time file was last modified in seconds since epoch

    -
    s
    required
    integer
    Example: "2806303"

    Size of media in bytes

    -
    glrv
    integer
    Example: "817767"

    Low resolution video size

    -
    ls
    integer
    Example: "-1"

    Low resolution file size. -1 if there is no LRV file

    -

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/media/list

    Response samples

    Content type
    application/json
    {
    • "id": "1554375628411872255",
    • "media": [
      ]
    }

    Models

    Common data models used across operations

    -

    GroupedMediaListItem

    n
    required
    string
    Example: "G0010011.MP4"

    Media filename

    -
    cre
    required
    integer
    Example: "1696600109"

    Creation time in seconds since epoch

    -
    mod
    required
    integer
    Example: "1696600109"

    Time file was last modified in seconds since epoch

    -
    g
    required
    integer
    Example: "1"

    Group Identifier

    -
    s
    required
    integer
    Example: "5"

    Number of files in the group

    -
    b
    required
    integer
    Example: "1"

    ID of first member in the group

    -
    l
    required
    integer
    Example: "6"

    ID of last member in the group

    -
    m
    required
    Array of integers
    Example: "1,2"

    File ID's that are missing or deleted

    -
    t
    required
    string
    Enum: "b" "c" "n" "t"

    Group Type (b -> burst, c -> continuous shot, n -> night lapse, t -> time lapse)

    -
    glrv
    integer
    Example: "817767"

    Low resolution video size

    -
    id
    string

    Media list session identifier

    -
    ls
    integer
    Example: "-1"

    Low resolution file size. -1 if there is no LRV file

    -
    {
    • "b": 1,
    • "cre": 1696600109,
    • "g": 1,
    • "glrv": 817767,
    • "id": "string",
    • "l": 6,
    • "ls": -1,
    • "m": [
      ],
    • "mod": 1696600109,
    • "n": "G0010011.MP4",
    • "s": 5,
    • "t": "b"
    }

    MediaList

    id
    required
    string
    Example: "1554375628411872255"

    media list identifier

    -
    required
    Array of objects
    Array
    d
    required
    string
    Example: "100GOPRO"

    directory that the media files reside in

    -
    required
    Array of SingleMediaListItem (object) or GroupedMediaListItem (object)

    list of files

    -
    Array
    Any of
    n
    required
    string
    Example: "GOPR0001.JPG"

    Media filename

    -
    cre
    required
    integer
    Example: "1696600109"

    Creation time in seconds since epoch

    -
    mod
    required
    integer
    Example: "1696600109"

    Time file was last modified in seconds since epoch

    -
    s
    required
    integer
    Example: "2806303"

    Size of media in bytes

    -
    glrv
    integer
    Example: "817767"

    Low resolution video size

    -
    ls
    integer
    Example: "-1"

    Low resolution file size. -1 if there is no LRV file

    -
    {
    • "id": "1554375628411872255",
    • "media": [
      ]
    }

    PhotoMetadata

    + + + + + + + + +
    ct
    required
    integer
    Enum: 0 1 2 3 4 5 6 8 9 10 11 12
    Responses +
    +
    +
    Response Schema: application/json +
    + + + + + + + + + + +
    +id<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: "1554375628411872255" +
    +
    +

    media list identifier

    +
    +
    +
    +<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +Array of objects +
    +
    +
    +
    +
    Array
    +
    + + + + + + + + + +
    +d
    required
    +
    +
    +string +
    + Example: "100GOPRO" +
    +
    +

    directory that the media files reside in

    +
    +
    +
    required
    +
    +
    +Array of SingleMediaListItem (object) or GroupedMediaListItem (object) +
    +

    list of files

    +
    +
    +
    Array
    +
    + Any of
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    +n
    required
    +
    +
    +string +
    + Example: "GOPR0001.JPG" +
    +
    +

    Media filename

    +
    +
    +cre
    required
    +
    +
    +integer +
    + Example: "1696600109" +
    +
    +

    Creation time in seconds since epoch

    +
    +
    +mod
    required
    +
    +
    +integer +
    + Example: "1696600109" +
    +
    +

    Time file was last modified in seconds since epoch

    +
    +
    +s
    required
    +
    +
    +integer +
    + Example: "2806303" +
    +
    +

    Size of media in bytes

    +
    +
    +glrv +
    +
    +integer +
    + Example: "817767" +
    +
    +

    Low resolution video size

    +
    +
    +ls +
    +
    +integer +
    + Example: "-1" +
    +
    +

    Low resolution file size. -1 if there is no LRV file

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/media/list
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    + +
    +
    {
      +
    • +"id": "1554375628411872255", +
    • +
    • +"media": [
      +] +
    • +
    +}
    +
    +
    +
    +
    +
    +
    +
    +

    +Models

    +
    +

    Common data models used across operations

    +
    +
    +
    +

    +GroupedMediaListItem

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +n<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: "G0010011.MP4" +
    +
    +

    Media filename

    +
    +
    +
    +cre<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1696600109" +
    +
    +

    Creation time in seconds since epoch

    +
    +
    +
    +mod<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1696600109" +
    +
    +

    Time file was last modified in seconds since epoch

    +
    +
    +
    +g<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1" +
    +
    +

    Group Identifier

    +
    +
    +
    +s<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "5" +
    +
    +

    Number of files in the group

    +
    +
    +
    +b<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1" +
    +
    +

    ID of first member in the group

    +
    +
    +
    +l<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "6" +
    +
    +

    ID of last member in the group

    +
    +
    +
    +m<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +Array of integers +
    + Example: "1,2" +
    +
    +

    File ID's that are missing or deleted

    +
    +
    +
    +t<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    +
    + Enum: "b" "c" "n" "t"
    +

    Group Type (b -> burst, c -> continuous shot, n -> night lapse, t -> time lapse)

    +
    +
    +
    +glrv + +
    +
    +integer +
    + Example: "817767" +
    +
    +

    Low resolution video size

    +
    +
    +
    +id + +
    +
    +string +
    +

    Media list session identifier

    +
    +
    +
    +ls + +
    +
    +integer +
    + Example: "-1" +
    +
    +

    Low resolution file size. -1 if there is no LRV file

    +
    +
    +
    +
    +
    + +
    +
    {
      +
    • +"b": 1, +
    • +
    • +"cre": 1696600109, +
    • +
    • +"g": 1, +
    • +
    • +"glrv": 817767, +
    • +
    • +"id": "string", +
    • +
    • +"l": 6, +
    • +
    • +"ls": -1, +
    • +
    • +"m": [
        +
      • +
      • +
      +], +
    • +
    • +"mod": 1696600109, +
    • +
    • +"n": "G0010011.MP4", +
    • +
    • +"s": 5, +
    • +
    • +"t": "b" +
    • +
    +}
    +
    +
    +
    +
    +

    +MediaList

    +
    +
    + + + + + + + + + +
    +id<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: "1554375628411872255" +
    +
    +

    media list identifier

    +
    +
    +
    +<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +Array of objects +
    +
    +
    +
    +
    Array
    +
    + + + + + + + + + +
    +d
    required
    +
    +
    +string +
    + Example: "100GOPRO" +
    +
    +

    directory that the media files reside in

    +
    +
    +
    required
    +
    +
    +Array of SingleMediaListItem (object) or GroupedMediaListItem (object) +
    +

    list of files

    +
    +
    +
    Array
    +
    + Any of
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    +n
    required
    +
    +
    +string +
    + Example: "GOPR0001.JPG" +
    +
    +

    Media filename

    +
    +
    +cre
    required
    +
    +
    +integer +
    + Example: "1696600109" +
    +
    +

    Creation time in seconds since epoch

    +
    +
    +mod
    required
    +
    +
    +integer +
    + Example: "1696600109" +
    +
    +

    Time file was last modified in seconds since epoch

    +
    +
    +s
    required
    +
    +
    +integer +
    + Example: "2806303" +
    +
    +

    Size of media in bytes

    +
    +
    +glrv +
    +
    +integer +
    + Example: "817767" +
    +
    +

    Low resolution video size

    +
    +
    +ls +
    +
    +integer +
    + Example: "-1" +
    +
    +

    Low resolution file size. -1 if there is no LRV file

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    {
      +
    • +"id": "1554375628411872255", +
    • +
    • +"media": [
      +] +
    • +
    +}
    +
    +
    +
    +
    +

    +PhotoMetadata

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +ct<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 8 9 10 11 12
    Limitations <td>12</td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg">

    Media content type

    +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +

    Media content type

    @@ -2330,7 +6277,8 @@

    Limitations

    - + + @@ -2378,38 +6326,269 @@

    Limitations

    -
    Mode
    Video 0
    Live Burst 12
    -
    cre
    required
    integer
    Example: "1692992748"

    Creation time in seconds since epoch

    -
    s
    required
    integer
    Example: "1234567890"

    File size in bytes

    -
    gumi
    required
    string
    Example: "12345678998765443211234567899875"

    Globally Unique Media ID

    -
    h
    required
    integer
    Example: "1080"

    Height of media in pixels

    -
    w
    required
    integer
    Example: "1920"

    Width of media in pixels

    -
    hc
    required
    integer [ 0 .. 99 ]

    Number of hilights in media

    -
    eis
    required
    integer
    Enum: 0 1

    1 if stabilized, 0 otherwise

    -
    mp
    required
    integer
    Enum: 0 1

    1 if metadata is present, 0 otherwise

    -
    rot
    required
    string

    Deprecated

    -
    tr
    required
    integer
    Enum: 0 1

    1 if file is transcoded, 0 otherwise

    -
    us
    required
    integer
    Enum: 0 1

    Has the file been uploaded? 0 if no, 1 if yes

    -
    fov
    string

    Field of View

    -
    hdr
    integer
    Enum: 0 1

    1 if photo taken with high dynamic range, 0 otherwise

    -
    lc
    integer
    Enum: 0 1

    Lens configuration ==> 0 for front, 1 for rear

    -
    mos
    Array of strings
    Items Enum: "app" "pc" "other"
    Example: "app,pc"

    List of offload states

    -
    prjn
    integer
    Enum: 0 1 2 3 4 5 6 7 8
    +
    +cre<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1692992748" +
    +
    +

    Creation time in seconds since epoch

    +
    +
    +
    +s<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1234567890" +
    +
    +

    File size in bytes

    +
    +
    +
    +gumi<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: "12345678998765443211234567899875" +
    +
    +

    Globally Unique Media ID

    +
    +
    +
    +h<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1080" +
    +
    +

    Height of media in pixels

    +
    +
    +
    +w<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1920" +
    +
    +

    Width of media in pixels

    +
    +
    +
    +hc<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer [ 0 .. 99 ] +
    +

    Number of hilights in media

    +
    +
    +
    +eis<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if stabilized, 0 otherwise

    +
    +
    +
    +mp<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if metadata is present, 0 otherwise

    +
    +
    +
    +rot<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    +

    Deprecated

    +
    +
    +
    +tr<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if file is transcoded, 0 otherwise

    +
    +
    +
    +us<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Has the file been uploaded? 0 if no, 1 if yes

    +
    +
    +
    +fov + +
    +
    +string +
    +

    Field of View

    +
    +
    +
    +hdr + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if photo taken with high dynamic range, 0 otherwise

    +
    +
    +
    +lc + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Lens configuration ==> 0 for front, 1 for rear

    +
    +
    +
    +mos + +
    +
    +Array of strings +
    +
    +Items Enum: "app" "pc" "other"
    + Example: "app,pc" +
    +
    +

    List of offload states

    +
    +
    +
    +prjn + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8
    Limitations <td>8</td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg">

    Lens projection

    +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +

    Lens projection

    @@ -2462,7 +6642,8 @@

    Limitations

    - + + @@ -2498,12 +6679,135 @@

    Limitations

    -
    Mode
    EAC 0
    Hemisheric 8
    -
    raw
    integer
    Enum: 0 1

    1 if photo has raw version, 0 otherwise

    -
    wdr
    integer
    Enum: 0 1

    1 if photo taken with wide dynamic range, 0 otherwise

    -
    {
    • "cre": 1692992748,
    • "ct": 0,
    • "eis": 0,
    • "fov": "string",
    • "gumi": "12345678998765443211234567899875",
    • "h": 1080,
    • "hc": 99,
    • "hdr": 0,
    • "lc": 0,
    • "mos": [
      ],
    • "mp": 0,
    • "prjn": 0,
    • "raw": 0,
    • "rot": "string",
    • "s": 1234567890,
    • "tr": 0,
    • "us": 0,
    • "w": 1920,
    • "wdr": 0
    }

    Preset

    + + + + + + +
    icon
    integer (EnumPresetIcon)
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 89 90 91 92 93 94 95 96 97 98 99 100 101 102 1000 1001 1002
    +
    +raw + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if photo has raw version, 0 otherwise

    +
    +
    +
    +wdr + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if photo taken with wide dynamic range, 0 otherwise

    +
    +
    +
    +
    +
    + +
    +
    {
      +
    • +"cre": 1692992748, +
    • +
    • +"ct": 0, +
    • +
    • +"eis": 0, +
    • +
    • +"fov": "string", +
    • +
    • +"gumi": "12345678998765443211234567899875", +
    • +
    • +"h": 1080, +
    • +
    • +"hc": 99, +
    • +
    • +"hdr": 0, +
    • +
    • +"lc": 0, +
    • +
    • +"mos": [
        +
      • +
      • +
      +], +
    • +
    • +"mp": 0, +
    • +
    • +"prjn": 0, +
    • +
    • +"raw": 0, +
    • +
    • +"rot": "string", +
    • +
    • +"s": 1234567890, +
    • +
    • +"tr": 0, +
    • +
    • +"us": 0, +
    • +
    • +"w": 1920, +
    • +
    • +"wdr": 0 +
    • +
    +}
    +
    +
    +
    +
    +

    +Preset

    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    +icon + +
    +
    +integer (EnumPresetIcon) +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 70 71 73 74 75 76 77 78 79 1000 1001
    Limitations <td></td> </tr> <tr> -<td>12</td> -<td>PRESET_ICON_360_VIDEO</td> -<td></td> -</tr> -<tr> <td>13</td> <td>PRESET_ICON_PHOTO_2</td> <td></td> @@ -2727,21 +7026,6 @@

    Limitations

    <td></td> </tr> <tr> -<td>55</td> -<td>PRESET_ICON_MAX_VIDEO</td> -<td></td> -</tr> -<tr> -<td>56</td> -<td>PRESET_ICON_MAX_PHOTO</td> -<td></td> -</tr> -<tr> -<td>57</td> -<td>PRESET_ICON_MAX_TIMEWARP</td> -<td></td> -</tr> -<tr> <td>58</td> <td>PRESET_ICON_BASIC</td> <td></td> @@ -2837,122 +7121,18 @@

    Limitations

    <td></td> </tr> <tr> -<td>80</td> -<td>PRESET_ICON_EASY_MAX_VIDEO</td> -<td></td> -</tr> -<tr> -<td>81</td> -<td>PRESET_ICON_EASY_MAX_PHOTO</td> -<td></td> -</tr> -<tr> -<td>82</td> -<td>PRESET_ICON_EASY_MAX_TIMEWARP</td> -<td></td> -</tr> -<tr> -<td>83</td> -<td>PRESET_ICON_EASY_MAX_STAR_TRAIL</td> -<td></td> -</tr> -<tr> -<td>84</td> -<td>PRESET_ICON_EASY_MAX_LIGHT_PAINTING</td> -<td></td> -</tr> -<tr> -<td>85</td> -<td>PRESET_ICON_EASY_MAX_LIGHT_TRAIL</td> -<td></td> -</tr> -<tr> -<td>89</td> -<td>PRESET_ICON_MAX_STAR_TRAIL</td> -<td></td> -</tr> -<tr> -<td>90</td> -<td>PRESET_ICON_MAX_LIGHT_PAINTING</td> -<td></td> -</tr> -<tr> -<td>91</td> -<td>PRESET_ICON_MAX_LIGHT_TRAIL</td> -<td></td> -</tr> -<tr> -<td>92</td> -<td>PRESET_ICON_360_BURST</td> -<td></td> -</tr> -<tr> -<td>93</td> -<td>PRESET_ICON_360_PHOTO_NIGHT</td> +<td>1000</td> +<td>PRESET_ICON_TIMELAPSE_PHOTO</td> <td></td> </tr> <tr> -<td>94</td> -<td>PRESET_ICON_360_NIGHTLAPSE</td> -<td></td> -</tr> -<tr> -<td>95</td> -<td>PRESET_ICON_360_TIMELAPSE_PHOTO</td> -<td></td> -</tr> -<tr> -<td>96</td> -<td>PRESET_ICON_360_NIGHTLAPSE_PHOTO</td> -<td></td> -</tr> -<tr> -<td>97</td> -<td>PRESET_ICON_360_PHOTO</td> -<td></td> -</tr> -<tr> -<td>98</td> -<td>PRESET_ICON_360_TIMELAPSE</td> -<td></td> -</tr> -<tr> -<td>99</td> -<td>PRESET_ICON_360_TIMEWARP</td> -<td></td> -</tr> -<tr> -<td>100</td> -<td>PRESET_ICON_EASY_STANDARD_PROFILE</td> -<td></td> -</tr> -<tr> -<td>101</td> -<td>PRESET_ICON_EASY_HDR_PROFILE</td> -<td></td> -</tr> -<tr> -<td>102</td> -<td>PRESET_ICON_BURST_SLOMO</td> -<td></td> -</tr> -<tr> -<td>1000</td> -<td>PRESET_ICON_TIMELAPSE_PHOTO</td> -<td></td> -</tr> -<tr> -<td>1001</td> -<td>PRESET_ICON_NIGHTLAPSE_PHOTO</td> -<td></td> -</tr> -<tr> -<td>1002</td> -<td>PRESET_ICON_MAX</td> +<td>1001</td> +<td>PRESET_ICON_NIGHTLAPSE_PHOTO</td> <td></td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -2960,7 +7140,8 @@

    Limitations

    - + + @@ -3021,11 +7202,6 @@

    Limitations

    - - - - - @@ -3176,21 +7352,6 @@

    Limitations

    - - - - - - - - - - - - - - - @@ -3286,106 +7447,6 @@

    Limitations

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3395,19 +7456,68 @@

    Limitations

    - - - - - -
    ID Summary
    0 PRESET_ICON_VIDEO
    12PRESET_ICON_360_VIDEO
    13 PRESET_ICON_PHOTO_2
    55PRESET_ICON_MAX_VIDEO
    56PRESET_ICON_MAX_PHOTO
    57PRESET_ICON_MAX_TIMEWARP
    58 PRESET_ICON_BASIC
    80PRESET_ICON_EASY_MAX_VIDEO
    81PRESET_ICON_EASY_MAX_PHOTO
    82PRESET_ICON_EASY_MAX_TIMEWARP
    83PRESET_ICON_EASY_MAX_STAR_TRAIL
    84PRESET_ICON_EASY_MAX_LIGHT_PAINTING
    85PRESET_ICON_EASY_MAX_LIGHT_TRAIL
    89PRESET_ICON_MAX_STAR_TRAIL
    90PRESET_ICON_MAX_LIGHT_PAINTING
    91PRESET_ICON_MAX_LIGHT_TRAIL
    92PRESET_ICON_360_BURST
    93PRESET_ICON_360_PHOTO_NIGHT
    94PRESET_ICON_360_NIGHTLAPSE
    95PRESET_ICON_360_TIMELAPSE_PHOTO
    96PRESET_ICON_360_NIGHTLAPSE_PHOTO
    97PRESET_ICON_360_PHOTO
    98PRESET_ICON_360_TIMELAPSE
    99PRESET_ICON_360_TIMEWARP
    100PRESET_ICON_EASY_STANDARD_PROFILE
    101PRESET_ICON_EASY_HDR_PROFILE
    102PRESET_ICON_BURST_SLOMO
    1000 PRESET_ICON_TIMELAPSE_PHOTO PRESET_ICON_NIGHTLAPSE_PHOTO
    1002PRESET_ICON_MAX
    -
    id
    integer <int32>

    Unique preset identifier

    -
    isFixed
    boolean

    Is this preset mutable?

    -
    isModified
    boolean

    Has the preset been modified from the factory defaults?

    -
    mode
    integer (EnumFlatMode)
    Enum: -1 4 5 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
    +
    +id + +
    +
    +integer <int32> +
    +

    Unique preset identifier

    +
    +
    +
    +isFixed + +
    +
    +boolean +
    +

    Is this preset mutable?

    +
    +
    +
    +isModified + +
    +
    +boolean +
    +

    Has the preset been modified from the factory defaults?

    +
    +
    +
    +mode + +
    +
    +integer (EnumFlatMode) +
    +
    + Enum: -1 4 5 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
    Limitations <td></td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -3539,7 +7650,8 @@

    Limitations

    - + + @@ -3654,14 +7766,82 @@

    Limitations

    -
    ID Summary
    -1 FLAT_MODE_UNKNOWN FLAT_MODE_VIDEO_BURST_SLOMO
    -
    Array of objects (PresetSetting)
    Array
    id
    integer <int32>

    Setting identifier

    -
    isCaption
    boolean

    Does this setting appear on the Preset "pill" in the camera UI?

    -
    value
    integer <int32>

    Setting value

    -
    titleId
    integer (EnumPresetTitle)
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
    +
    + + +
    +
    +Array of objects (PresetSetting) +
    +
    +
    +
    +
    Array
    +
    + + + + + + + + + + + + +
    +id +
    +
    +integer <int32> +
    +

    Setting identifier

    +
    +
    +isCaption +
    +
    +boolean +
    +

    Does this setting appear on the Preset "pill" in the camera UI?

    +
    +
    +value +
    +
    +integer <int32> +
    +

    Setting value

    +
    +
    +
    +
    +
    +titleId + +
    +
    +integer (EnumPresetTitle) +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 82 83 93 94
    Limitations <td></td> </tr> <tr> -<td>12</td> -<td>PRESET_TITLE_360_VIDEO</td> -<td></td> -</tr> -<tr> <td>13</td> <td>PRESET_TITLE_PHOTO_2</td> <td></td> @@ -3745,21 +7920,11 @@

    Limitations

    <td></td> </tr> <tr> -<td>15</td> -<td>PRESET_TITLE_360_PHOTO</td> -<td></td> -</tr> -<tr> <td>16</td> <td>PRESET_TITLE_TIME_WARP_2</td> <td></td> </tr> <tr> -<td>17</td> -<td>PRESET_TITLE_360_TIME_WARP</td> -<td></td> -</tr> -<tr> <td>18</td> <td>PRESET_TITLE_CUSTOM</td> <td></td> @@ -3885,81 +8050,6 @@

    Limitations

    <td></td> </tr> <tr> -<td>43</td> -<td>PRESET_TITLE_CUSTOM_CINEMATIC</td> -<td></td> -</tr> -<tr> -<td>44</td> -<td>PRESET_TITLE_DIVE</td> -<td></td> -</tr> -<tr> -<td>45</td> -<td>PRESET_TITLE_FPV</td> -<td></td> -</tr> -<tr> -<td>46</td> -<td>PRESET_TITLE_HDR</td> -<td></td> -</tr> -<tr> -<td>47</td> -<td>PRESET_TITLE_LANDSCAPE</td> -<td></td> -</tr> -<tr> -<td>48</td> -<td>PRESET_TITLE_LOG</td> -<td></td> -</tr> -<tr> -<td>49</td> -<td>PRESET_TITLE_CUSTOM_SLOMO</td> -<td></td> -</tr> -<tr> -<td>50</td> -<td>PRESET_TITLE_TRIPOD</td> -<td></td> -</tr> -<tr> -<td>51</td> -<td>PRESET_TITLE_360_TIMELAPSE</td> -<td></td> -</tr> -<tr> -<td>52</td> -<td>PRESET_TITLE_360_NIGHT_LAPSE</td> -<td></td> -</tr> -<tr> -<td>53</td> -<td>PRESET_TITLE_360_NIGHT_PHOTO</td> -<td></td> -</tr> -<tr> -<td>54</td> -<td>PRESET_TITLE_PANO_TIME_LAPSE</td> -<td></td> -</tr> -<tr> -<td>55</td> -<td>PRESET_TITLE_MAX_VIDEO</td> -<td></td> -</tr> -<tr> -<td>56</td> -<td>PRESET_TITLE_MAX_PHOTO</td> -<td></td> -</tr> -<tr> -<td>57</td> -<td>PRESET_TITLE_MAX_TIMEWARP</td> -<td></td> -</tr> -<tr> <td>58</td> <td>PRESET_TITLE_BASIC</td> <td></td> @@ -4070,16 +8160,6 @@

    Limitations

    <td></td> </tr> <tr> -<td>80</td> -<td>PRESET_TITLE_MAX_LENS_VIDEO</td> -<td></td> -</tr> -<tr> -<td>81</td> -<td>PRESET_TITLE_MAX_LENS_TIMEWARP</td> -<td></td> -</tr> -<tr> <td>82</td> <td>PRESET_TITLE_STANDARD_QUALITY_VIDEO</td> <td></td> @@ -4090,51 +8170,6 @@

    Limitations

    <td></td> </tr> <tr> -<td>84</td> -<td>PRESET_TITLE_EASY_MAX_VIDEO</td> -<td></td> -</tr> -<tr> -<td>85</td> -<td>PRESET_TITLE_EASY_MAX_PHOTO</td> -<td></td> -</tr> -<tr> -<td>86</td> -<td>PRESET_TITLE_EASY_MAX_TIMEWARP</td> -<td></td> -</tr> -<tr> -<td>87</td> -<td>PRESET_TITLE_EASY_MAX_STAR_TRAIL</td> -<td></td> -</tr> -<tr> -<td>88</td> -<td>PRESET_TITLE_EASY_MAX_LIGHT_PAINTING</td> -<td></td> -</tr> -<tr> -<td>89</td> -<td>PRESET_TITLE_EASY_MAX_LIGHT_TRAIL</td> -<td></td> -</tr> -<tr> -<td>90</td> -<td>PRESET_TITLE_MAX_STAR_TRAIL</td> -<td></td> -</tr> -<tr> -<td>91</td> -<td>PRESET_TITLE_MAX_LIGHT_PAINTING</td> -<td></td> -</tr> -<tr> -<td>92</td> -<td>PRESET_TITLE_MAX_LIGHT_TRAIL</td> -<td></td> -</tr> -<tr> <td>93</td> <td>PRESET_TITLE_HIGHEST_QUALITY_VIDEO</td> <td></td> @@ -4144,78 +8179,9 @@

    Limitations

    <td>PRESET_TITLE_USER_DEFINED_CUSTOM_NAME</td> <td></td> </tr> -<tr> -<td>95</td> -<td>PRESET_TITLE_360_DEG_BURST</td> -<td>- FW_PRESET_TITLE_360_BURST</td> -</tr> -<tr> -<td>96</td> -<td>PRESET_TITLE_360_DEG_NIGHT_PHOTO</td> -<td>- FW_PRESET_TITLE_360_NIGHT</td> -</tr> -<tr> -<td>97</td> -<td>PRESET_TITLE_360_DEG_TIME_LAPSE_PHOTO</td> -<td>- FW_PRESET_TITLE_360_TIME_LAPSE_PHOTO</td> -</tr> -<tr> -<td>98</td> -<td>PRESET_TITLE_360_DEG_NIGHT_LAPSE_PHOTO</td> -<td>- FW_PRESET_TITLE_360_NIGHT_LAPSE_PHOTO</td> -</tr> -<tr> -<td>99</td> -<td>PRESET_TITLE_EASY_STANDARD_PROFILE</td> -<td></td> -</tr> -<tr> -<td>100</td> -<td>PRESET_TITLE_EASY_HDR_PROFILE</td> -<td></td> -</tr> -<tr> -<td>101</td> -<td>PRESET_TITLE_360_DEG_TIME_LAPSE_VIDEO</td> -<td>- FW_PRESET_TITLE_MAX_2_TIME_LAPSE</td> -</tr> -<tr> -<td>102</td> -<td>PRESET_TITLE_360_DEG_NIGHT_LAPSE_VIDEO</td> -<td>- FW_PRESET_TITLE_MAX_2_NIGHT_LAPSE</td> -</tr> -<tr> -<td>103</td> -<td>PRESET_TITLE_360_DEG_PHOTO</td> -<td>- FW_PRESET_TITLE_MAX_2_PHOTO</td> -</tr> -<tr> -<td>104</td> -<td>PRESET_TITLE_360_DEG_TIME_WARP</td> -<td>- FW_PRESET_TITLE_MAX_2_TIME_WARP</td> -</tr> -<tr> -<td>105</td> -<td>PRESET_TITLE_360_DEG_VIDEO</td> -<td>- FW_PRESET_TITLE_MAX_2_VIDEO</td> -</tr> -<tr> -<td>106</td> -<td>PRESET_TITLE_BURST_SLOMO</td> -<td></td> -</tr> -<tr> -<td>107</td> -<td>PRESET_TITLE_VLOG</td> -<td></td> -</tr> -<tr> -<td>108</td> -<td>PRESET_TITLE_MAX</td> -<td></td> -</tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -4223,7 +8189,8 @@

    Limitations

    - + + @@ -4284,11 +8251,6 @@

    Limitations

    - - - - - @@ -4299,21 +8261,11 @@

    Limitations

    - - - - - - - - - - @@ -4439,81 +8391,6 @@

    Limitations

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -4624,16 +8501,6 @@

    Limitations

    - - - - - - - - - - @@ -4644,51 +8511,6 @@

    Limitations

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -4698,84 +8520,125 @@

    Limitations

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ID Summary
    0 PRESET_TITLE_ACTIVITY
    12PRESET_TITLE_360_VIDEO
    13 PRESET_TITLE_PHOTO_2
    15PRESET_TITLE_360_PHOTO
    16 PRESET_TITLE_TIME_WARP_2
    17PRESET_TITLE_360_TIME_WARP
    18 PRESET_TITLE_CUSTOM
    43PRESET_TITLE_CUSTOM_CINEMATIC
    44PRESET_TITLE_DIVE
    45PRESET_TITLE_FPV
    46PRESET_TITLE_HDR
    47PRESET_TITLE_LANDSCAPE
    48PRESET_TITLE_LOG
    49PRESET_TITLE_CUSTOM_SLOMO
    50PRESET_TITLE_TRIPOD
    51PRESET_TITLE_360_TIMELAPSE
    52PRESET_TITLE_360_NIGHT_LAPSE
    53PRESET_TITLE_360_NIGHT_PHOTO
    54PRESET_TITLE_PANO_TIME_LAPSE
    55PRESET_TITLE_MAX_VIDEO
    56PRESET_TITLE_MAX_PHOTO
    57PRESET_TITLE_MAX_TIMEWARP
    58 PRESET_TITLE_BASIC
    80PRESET_TITLE_MAX_LENS_VIDEO
    81PRESET_TITLE_MAX_LENS_TIMEWARP
    82 PRESET_TITLE_STANDARD_QUALITY_VIDEO
    84PRESET_TITLE_EASY_MAX_VIDEO
    85PRESET_TITLE_EASY_MAX_PHOTO
    86PRESET_TITLE_EASY_MAX_TIMEWARP
    87PRESET_TITLE_EASY_MAX_STAR_TRAIL
    88PRESET_TITLE_EASY_MAX_LIGHT_PAINTING
    89PRESET_TITLE_EASY_MAX_LIGHT_TRAIL
    90PRESET_TITLE_MAX_STAR_TRAIL
    91PRESET_TITLE_MAX_LIGHT_PAINTING
    92PRESET_TITLE_MAX_LIGHT_TRAIL
    93 PRESET_TITLE_HIGHEST_QUALITY_VIDEO PRESET_TITLE_USER_DEFINED_CUSTOM_NAME
    95PRESET_TITLE_360_DEG_BURST- FW_PRESET_TITLE_360_BURST
    96PRESET_TITLE_360_DEG_NIGHT_PHOTO- FW_PRESET_TITLE_360_NIGHT
    97PRESET_TITLE_360_DEG_TIME_LAPSE_PHOTO- FW_PRESET_TITLE_360_TIME_LAPSE_PHOTO
    98PRESET_TITLE_360_DEG_NIGHT_LAPSE_PHOTO- FW_PRESET_TITLE_360_NIGHT_LAPSE_PHOTO
    99PRESET_TITLE_EASY_STANDARD_PROFILE
    100PRESET_TITLE_EASY_HDR_PROFILE
    101PRESET_TITLE_360_DEG_TIME_LAPSE_VIDEO- FW_PRESET_TITLE_MAX_2_TIME_LAPSE
    102PRESET_TITLE_360_DEG_NIGHT_LAPSE_VIDEO- FW_PRESET_TITLE_MAX_2_NIGHT_LAPSE
    103PRESET_TITLE_360_DEG_PHOTO- FW_PRESET_TITLE_MAX_2_PHOTO
    104PRESET_TITLE_360_DEG_TIME_WARP- FW_PRESET_TITLE_MAX_2_TIME_WARP
    105PRESET_TITLE_360_DEG_VIDEO- FW_PRESET_TITLE_MAX_2_VIDEO
    106PRESET_TITLE_BURST_SLOMO
    107PRESET_TITLE_VLOG
    108PRESET_TITLE_MAX
    -
    titleNumber
    integer <int32>

    Preset title number

    -
    userDefined
    boolean

    Is this preset user defined?

    -
    {
    • "icon": 0,
    • "id": 0,
    • "isFixed": true,
    • "isModified": true,
    • "mode": -1,
    • "settingArray": [
      ],
    • "titleId": 0,
    • "titleNumber": 0,
    • "userDefined": true
    }

    PresetGroup

    + + + + + + +
    canAddPreset
    boolean

    Is there room in the group to add additional Presets?

    -
    icon
    integer (EnumPresetGroupIcon)
    Enum: 0 1 2 3 4 5 6 7
    +
    +titleNumber + +
    +
    +integer <int32> +
    +

    Preset title number

    +
    +
    +
    +userDefined + +
    +
    +boolean +
    +

    Is this preset user defined?

    +
    +
    +
    +
    +
    + +
    +
    {
      +
    • +"icon": 0, +
    • +
    • +"id": 0, +
    • +
    • +"isFixed": true, +
    • +
    • +"isModified": true, +
    • +
    • +"mode": -1, +
    • +
    • +"settingArray": [
      +], +
    • +
    • +"titleId": 0, +
    • +
    • +"titleNumber": 0, +
    • +
    • +"userDefined": true +
    • +
    +}
    +
    +
    +
    +
    +

    +PresetGroup

    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    +canAddPreset + +
    +
    +boolean +
    +

    Is there room in the group to add additional Presets?

    +
    +
    +
    +icon + +
    +
    +integer (EnumPresetGroupIcon) +
    +
    + Enum: 0 1 2 3 4 5 6 7
    Limitations <td></td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -4832,7 +8696,8 @@

    Limitations

    - + + @@ -4872,8 +8737,106 @@

    Limitations

    -
    ID Summary
    0 PRESET_GROUP_VIDEO_ICON_ID PRESET_GROUP_MAX_TIMELAPSE_ICON_ID
    -
    id
    integer (EnumPresetGroup)
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 1000 1001 1002
    +
    +id + +
    +
    +integer (EnumPresetGroup) +
    +
    + Enum: 1000 1001 1002
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    IDNameSummary
    1000PRESET_GROUP_ID_VIDEO
    1001PRESET_GROUP_ID_PHOTO
    1002PRESET_GROUP_ID_TIMELAPSE
    +
    +
    +
    + + +
    +
    +Array of objects (Preset) +
    +

    Array of Presets contained in this Preset Group

    +
    +
    +
    +
    +
    Array
    +
    + + +
    +icon +
    +
    +integer (EnumPresetIcon) +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 70 71 73 74 75 76 77 78 79 1000 1001
    Limitations </thead> <tbody><tr> <td>0</td> -<td>PRESET_GROUP_ID_VIDEO_SINGLE_LENS</td> -<td>Single video</td> +<td>PRESET_ICON_VIDEO</td> +<td></td> </tr> <tr> <td>1</td> -<td>PRESET_GROUP_ID_PHOTO_SINGLE_LENS</td> -<td>Single photo</td> +<td>PRESET_ICON_ACTIVITY</td> +<td></td> </tr> <tr> <td>2</td> -<td>PRESET_GROUP_ID_TIMELAPSE_SINGLE_LENS</td> -<td>Single timelapse</td> +<td>PRESET_ICON_CINEMATIC</td> +<td></td> </tr> <tr> <td>3</td> -<td>PRESET_GROUP_ID_VIDEO_HEMI_LENS</td> -<td>Spherical video hemi lens</td> +<td>PRESET_ICON_PHOTO</td> +<td></td> </tr> <tr> <td>4</td> -<td>PRESET_GROUP_ID_PHOTO_HEMI_LENS</td> -<td>Spherical photo hemi lens</td> +<td>PRESET_ICON_LIVE_BURST</td> +<td></td> </tr> <tr> <td>5</td> -<td>PRESET_GROUP_ID_TIMELAPSE_HEMI_LENS</td> -<td>Spherical timelapse hemi lens</td> +<td>PRESET_ICON_BURST</td> +<td></td> </tr> <tr> <td>6</td> -<td>PRESET_GROUP_ID_SPECIAL_INTERNAL</td> -<td>Special</td> +<td>PRESET_ICON_PHOTO_NIGHT</td> +<td></td> </tr> <tr> <td>7</td> -<td>PRESET_GROUP_ID_SPECIAL_HEMI</td> -<td>Special hemi lens</td> +<td>PRESET_ICON_TIMEWARP</td> +<td></td> </tr> <tr> <td>8</td> -<td>PRESET_GROUP_ID_VIDEO_ENDURANCE_SINGLE_LENS</td> -<td>Video battery endurance</td> +<td>PRESET_ICON_TIMELAPSE</td> +<td></td> </tr> <tr> <td>9</td> -<td>PRESET_GROUP_ID_VIDEO_LONGEST_BATTERY_SINGLE_LENS</td> -<td>Video longest battery</td> +<td>PRESET_ICON_NIGHTLAPSE</td> +<td></td> </tr> <tr> <td>10</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_SINGLE_LENS</td> -<td>Easy single video</td> +<td>PRESET_ICON_SNAIL</td> +<td></td> </tr> <tr> <td>11</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_ENDURANCE_SINGLE_LENS</td> -<td>Easy video battery endurance</td> -</tr> -<tr> -<td>12</td> -<td>PRESET_GROUP_ID_EASY_PHOTO_SINGLE_LENS</td> -<td>Easy single photo</td> +<td>PRESET_ICON_VIDEO_2</td> +<td></td> </tr> <tr> <td>13</td> -<td>PRESET_GROUP_ID_EASY_TIMELAPSE_SINGLE_LENS</td> -<td>Easy single timelapse</td> +<td>PRESET_ICON_PHOTO_2</td> +<td></td> </tr> <tr> <td>14</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_LONGEST_BATTERY_SINGLE_LENS</td> -<td>Easy video longest battery</td> +<td>PRESET_ICON_PANORAMA</td> +<td></td> </tr> <tr> <td>15</td> -<td>PRESET_GROUP_ID_VIDEO_HEMI_LENS_2</td> -<td>Hemi Lens 2 video</td> +<td>PRESET_ICON_BURST_2</td> +<td></td> </tr> <tr> <td>16</td> -<td>PRESET_GROUP_ID_PHOTO_HEMI_LENS_2</td> -<td>Hemi Lens 2 photo</td> +<td>PRESET_ICON_TIMEWARP_2</td> +<td></td> </tr> <tr> <td>17</td> -<td>PRESET_GROUP_ID_TIMELAPSE_HEMI_LENS_2</td> -<td>Hemi Lens 2 timelapse</td> +<td>PRESET_ICON_TIMELAPSE_2</td> +<td></td> </tr> <tr> <td>18</td> -<td>PRESET_GROUP_ID_SPECIAL_HEMI_LENS_2</td> -<td>Hemi Lens 2 special</td> +<td>PRESET_ICON_CUSTOM</td> +<td></td> </tr> <tr> <td>19</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_HEMI_LENS</td> -<td>Hemi Lens easy video</td> +<td>PRESET_ICON_AIR</td> +<td></td> </tr> <tr> <td>20</td> -<td>PRESET_GROUP_ID_EASY_PHOTO_HEMI_LENS</td> -<td>Hemi Lens easy photo</td> +<td>PRESET_ICON_BIKE</td> +<td></td> </tr> <tr> <td>21</td> -<td>PRESET_GROUP_ID_EASY_TIMELAPSE_HEMI_LENS</td> -<td>Hemi Lens easy timelapse</td> +<td>PRESET_ICON_EPIC</td> +<td></td> </tr> <tr> <td>22</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_HEMI_LENS_2</td> -<td>Hemi Lens 2 easy video</td> +<td>PRESET_ICON_INDOOR</td> +<td></td> </tr> <tr> <td>23</td> -<td>PRESET_GROUP_ID_EASY_PHOTO_HEMI_LENS_2</td> -<td>Hemi Lens 2 easy photo</td> +<td>PRESET_ICON_MOTOR</td> +<td></td> </tr> <tr> <td>24</td> -<td>PRESET_GROUP_ID_EASY_TIMELAPSE_HEMI_LENS_2</td> -<td>Hemi Lens 2 easy timelapse</td> +<td>PRESET_ICON_MOUNTED</td> +<td></td> </tr> <tr> <td>25</td> -<td>PRESET_GROUP_ID_VIDEO_SINGLE_LENS_STANDARD</td> -<td>Single video standard profile - for internal preset switch only</td> +<td>PRESET_ICON_OUTDOOR</td> +<td></td> </tr> <tr> <td>26</td> -<td>PRESET_GROUP_ID_VIDEO_SINGLE_LENS_HDR</td> -<td>Single video hdr profile - for internal preset switch only</td> +<td>PRESET_ICON_POV</td> +<td></td> </tr> <tr> <td>27</td> -<td>PRESET_GROUP_ID_VIDEO_SINGLE_LENS_LOG</td> -<td>Single video log profile - for internal preset switch only</td> +<td>PRESET_ICON_SELFIE</td> +<td></td> </tr> <tr> <td>28</td> -<td>PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS</td> -<td>Spherical video mode</td> +<td>PRESET_ICON_SKATE</td> +<td></td> </tr> <tr> <td>29</td> -<td>PRESET_GROUP_ID_PHOTO_SPHERICAL_LENS</td> -<td>Spherical photo mode</td> +<td>PRESET_ICON_SNOW</td> +<td></td> </tr> <tr> <td>30</td> -<td>PRESET_GROUP_ID_TIMELAPSE_SPHERICAL_LENS</td> -<td>Spherical timelapse mode</td> +<td>PRESET_ICON_TRAIL</td> +<td></td> </tr> <tr> <td>31</td> -<td>PRESET_GROUP_ID_SPECIAL_SPHERICAL</td> -<td>Special spherical lens</td> +<td>PRESET_ICON_TRAVEL</td> +<td></td> </tr> <tr> <td>32</td> -<td>PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS_STANDARD</td> -<td>Spherical video standard profile - for internal preset switch only</td> +<td>PRESET_ICON_WATER</td> +<td></td> </tr> <tr> <td>33</td> -<td>PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS_LOG</td> -<td>Spherical video standard profile - for internal preset switch only</td> +<td>PRESET_ICON_LOOPING</td> +<td></td> </tr> <tr> <td>34</td> -<td>PRESET_GROUP_ID_VIDEO_HEMI_LENS_2_STANDARD</td> -<td>Hemi Lens 2 video standard profile and Hemi Lens 2.5 video standard profile - for internal preset switch only</td> +<td>PRESET_ICON_STARS</td> +<td></td> </tr> <tr> <td>35</td> -<td>PRESET_GROUP_ID_VIDEO_HEMI_LENS_2_LOG</td> -<td>Hemi Lens 2 video log profile and Hemi Lens 2.5 video log profile - for internal preset switch only</td> +<td>PRESET_ICON_ACTION</td> +<td></td> </tr> <tr> <td>36</td> -<td>PRESET_GROUP_ID_VIDEO_MACRO_LENS</td> -<td>Video macro lens</td> +<td>PRESET_ICON_FOLLOW_CAM</td> +<td></td> </tr> <tr> <td>37</td> -<td>PRESET_GROUP_ID_PHOTO_MACRO_LENS</td> -<td>Photo macro lens</td> +<td>PRESET_ICON_SURF</td> +<td></td> </tr> <tr> <td>38</td> -<td>PRESET_GROUP_ID_TIMELAPSE_MACRO_LENS</td> -<td>Timelapse macro lens</td> +<td>PRESET_ICON_CITY</td> +<td></td> </tr> <tr> <td>39</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_MACRO_LENS</td> -<td>Easy Video macro lens</td> +<td>PRESET_ICON_SHAKY</td> +<td></td> </tr> <tr> <td>40</td> -<td>PRESET_GROUP_ID_EASY_PHOTO_MACRO_LENS</td> -<td>Easy Photo macro lens</td> +<td>PRESET_ICON_CHESTY</td> +<td></td> </tr> <tr> <td>41</td> -<td>PRESET_GROUP_ID_EASY_TIMELAPSE_MACRO_LENS</td> -<td>Easy Timelapse macro lens</td> +<td>PRESET_ICON_HELMET</td> +<td></td> </tr> <tr> <td>42</td> -<td>PRESET_GROUP_ID_VIDEO_MACRO_LENS_STANDARD</td> -<td>Macro lens video standard profile - for internal preset switch only</td> +<td>PRESET_ICON_BITE</td> +<td></td> </tr> <tr> -<td>43</td> -<td>PRESET_GROUP_ID_VIDEO_MACRO_LENS_LOG</td> -<td>Macro lens video log profile - for internal preset switch only</td> +<td>58</td> +<td>PRESET_ICON_BASIC</td> +<td></td> </tr> <tr> -<td>44</td> -<td>PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS</td> -<td>Video anamorphic lens</td> +<td>59</td> +<td>PRESET_ICON_ULTRA_SLO_MO</td> +<td></td> </tr> <tr> -<td>45</td> -<td>PRESET_GROUP_ID_PHOTO_ANAMORPHIC_LENS</td> -<td>Photo anamorphic lens</td> +<td>60</td> +<td>PRESET_ICON_STANDARD_ENDURANCE</td> +<td></td> </tr> <tr> -<td>46</td> -<td>PRESET_GROUP_ID_TIMELAPSE_ANAMORPHIC_LENS</td> -<td>Timelapse anamorphic lens</td> +<td>61</td> +<td>PRESET_ICON_ACTIVITY_ENDURANCE</td> +<td></td> </tr> <tr> -<td>47</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_ANAMORPHIC_LENS</td> -<td>Easy Video anamorphic lens</td> +<td>62</td> +<td>PRESET_ICON_CINEMATIC_ENDURANCE</td> +<td></td> </tr> <tr> -<td>48</td> -<td>PRESET_GROUP_ID_EASY_PHOTO_ANAMORPHIC_LENS</td> -<td>Easy Photo anamorphic lens</td> +<td>63</td> +<td>PRESET_ICON_SLOMO_ENDURANCE</td> +<td></td> </tr> <tr> -<td>49</td> -<td>PRESET_GROUP_ID_EASY_TIMELAPSE_ANAMORPHIC_LENS</td> -<td>Easy Timelapse anamorphic lens</td> +<td>64</td> +<td>PRESET_ICON_STATIONARY_1</td> +<td></td> </tr> <tr> -<td>50</td> -<td>PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS_STANDARD</td> -<td>Anamorphic lens video standard profile - for internal preset switch only</td> +<td>65</td> +<td>PRESET_ICON_STATIONARY_2</td> +<td></td> </tr> <tr> -<td>51</td> -<td>PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS_LOG</td> -<td>Anamorphic lens video log profile - for internal preset switch only</td> +<td>66</td> +<td>PRESET_ICON_STATIONARY_3</td> +<td></td> </tr> <tr> -<td>1000</td> -<td>PRESET_GROUP_ID_VIDEO</td> +<td>67</td> +<td>PRESET_ICON_STATIONARY_4</td> <td></td> </tr> <tr> -<td>1001</td> -<td>PRESET_GROUP_ID_PHOTO</td> +<td>70</td> +<td>PRESET_ICON_SIMPLE_SUPER_PHOTO</td> <td></td> </tr> <tr> -<td>1002</td> -<td>PRESET_GROUP_ID_TIMELAPSE</td> +<td>71</td> +<td>PRESET_ICON_SIMPLE_NIGHT_PHOTO</td> +<td></td> +</tr> +<tr> +<td>73</td> +<td>PRESET_ICON_HIGHEST_QUALITY_VIDEO</td> +<td></td> +</tr> +<tr> +<td>74</td> +<td>PRESET_ICON_STANDARD_QUALITY_VIDEO</td> +<td></td> +</tr> +<tr> +<td>75</td> +<td>PRESET_ICON_BASIC_QUALITY_VIDEO</td> +<td></td> +</tr> +<tr> +<td>76</td> +<td>PRESET_ICON_STAR_TRAIL</td> +<td></td> +</tr> +<tr> +<td>77</td> +<td>PRESET_ICON_LIGHT_PAINTING</td> +<td></td> +</tr> +<tr> +<td>78</td> +<td>PRESET_ICON_LIGHT_TRAIL</td> +<td></td> +</tr> +<tr> +<td>79</td> +<td>PRESET_ICON_FULL_FRAME</td> +<td></td> +</tr> +<tr> +<td>1000</td> +<td>PRESET_ICON_TIMELAPSE_PHOTO</td> +<td></td> +</tr> +<tr> +<td>1001</td> +<td>PRESET_ICON_NIGHTLAPSE_PHOTO</td> <td></td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -5165,734 +9169,501 @@

    Limitations

    - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + -
    ID Summary
    0PRESET_GROUP_ID_VIDEO_SINGLE_LENSSingle videoPRESET_ICON_VIDEO
    1PRESET_GROUP_ID_PHOTO_SINGLE_LENSSingle photoPRESET_ICON_ACTIVITY
    2PRESET_GROUP_ID_TIMELAPSE_SINGLE_LENSSingle timelapsePRESET_ICON_CINEMATIC
    3PRESET_GROUP_ID_VIDEO_HEMI_LENSSpherical video hemi lensPRESET_ICON_PHOTO
    4PRESET_GROUP_ID_PHOTO_HEMI_LENSSpherical photo hemi lensPRESET_ICON_LIVE_BURST
    5PRESET_GROUP_ID_TIMELAPSE_HEMI_LENSSpherical timelapse hemi lensPRESET_ICON_BURST
    6PRESET_GROUP_ID_SPECIAL_INTERNALSpecialPRESET_ICON_PHOTO_NIGHT
    7PRESET_GROUP_ID_SPECIAL_HEMISpecial hemi lensPRESET_ICON_TIMEWARP
    8PRESET_GROUP_ID_VIDEO_ENDURANCE_SINGLE_LENSVideo battery endurancePRESET_ICON_TIMELAPSE
    9PRESET_GROUP_ID_VIDEO_LONGEST_BATTERY_SINGLE_LENSVideo longest batteryPRESET_ICON_NIGHTLAPSE
    10PRESET_GROUP_ID_EASY_VIDEO_SINGLE_LENSEasy single videoPRESET_ICON_SNAIL
    11PRESET_GROUP_ID_EASY_VIDEO_ENDURANCE_SINGLE_LENSEasy video battery endurance
    12PRESET_GROUP_ID_EASY_PHOTO_SINGLE_LENSEasy single photoPRESET_ICON_VIDEO_2
    13PRESET_GROUP_ID_EASY_TIMELAPSE_SINGLE_LENSEasy single timelapsePRESET_ICON_PHOTO_2
    14PRESET_GROUP_ID_EASY_VIDEO_LONGEST_BATTERY_SINGLE_LENSEasy video longest batteryPRESET_ICON_PANORAMA
    15PRESET_GROUP_ID_VIDEO_HEMI_LENS_2Hemi Lens 2 videoPRESET_ICON_BURST_2
    16PRESET_GROUP_ID_PHOTO_HEMI_LENS_2Hemi Lens 2 photoPRESET_ICON_TIMEWARP_2
    17PRESET_GROUP_ID_TIMELAPSE_HEMI_LENS_2Hemi Lens 2 timelapsePRESET_ICON_TIMELAPSE_2
    18PRESET_GROUP_ID_SPECIAL_HEMI_LENS_2Hemi Lens 2 specialPRESET_ICON_CUSTOM
    19PRESET_GROUP_ID_EASY_VIDEO_HEMI_LENSHemi Lens easy videoPRESET_ICON_AIR
    20PRESET_GROUP_ID_EASY_PHOTO_HEMI_LENSHemi Lens easy photoPRESET_ICON_BIKE
    21PRESET_GROUP_ID_EASY_TIMELAPSE_HEMI_LENSHemi Lens easy timelapsePRESET_ICON_EPIC
    22PRESET_GROUP_ID_EASY_VIDEO_HEMI_LENS_2Hemi Lens 2 easy videoPRESET_ICON_INDOOR
    23PRESET_GROUP_ID_EASY_PHOTO_HEMI_LENS_2Hemi Lens 2 easy photoPRESET_ICON_MOTOR
    24PRESET_GROUP_ID_EASY_TIMELAPSE_HEMI_LENS_2Hemi Lens 2 easy timelapsePRESET_ICON_MOUNTED
    25PRESET_GROUP_ID_VIDEO_SINGLE_LENS_STANDARDSingle video standard profile - for internal preset switch onlyPRESET_ICON_OUTDOOR
    26PRESET_GROUP_ID_VIDEO_SINGLE_LENS_HDRSingle video hdr profile - for internal preset switch onlyPRESET_ICON_POV
    27PRESET_GROUP_ID_VIDEO_SINGLE_LENS_LOGSingle video log profile - for internal preset switch onlyPRESET_ICON_SELFIE
    28PRESET_GROUP_ID_VIDEO_SPHERICAL_LENSSpherical video modePRESET_ICON_SKATE
    29PRESET_GROUP_ID_PHOTO_SPHERICAL_LENSSpherical photo modePRESET_ICON_SNOW
    30PRESET_GROUP_ID_TIMELAPSE_SPHERICAL_LENSSpherical timelapse modePRESET_ICON_TRAIL
    31PRESET_GROUP_ID_SPECIAL_SPHERICALSpecial spherical lensPRESET_ICON_TRAVEL
    32PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS_STANDARDSpherical video standard profile - for internal preset switch onlyPRESET_ICON_WATER
    33PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS_LOGSpherical video standard profile - for internal preset switch onlyPRESET_ICON_LOOPING
    34PRESET_GROUP_ID_VIDEO_HEMI_LENS_2_STANDARDHemi Lens 2 video standard profile and Hemi Lens 2.5 video standard profile - for internal preset switch onlyPRESET_ICON_STARS
    35PRESET_GROUP_ID_VIDEO_HEMI_LENS_2_LOGHemi Lens 2 video log profile and Hemi Lens 2.5 video log profile - for internal preset switch onlyPRESET_ICON_ACTION
    36PRESET_GROUP_ID_VIDEO_MACRO_LENSVideo macro lensPRESET_ICON_FOLLOW_CAM
    37PRESET_GROUP_ID_PHOTO_MACRO_LENSPhoto macro lensPRESET_ICON_SURF
    38PRESET_GROUP_ID_TIMELAPSE_MACRO_LENSTimelapse macro lensPRESET_ICON_CITY
    39PRESET_GROUP_ID_EASY_VIDEO_MACRO_LENSEasy Video macro lensPRESET_ICON_SHAKY
    40PRESET_GROUP_ID_EASY_PHOTO_MACRO_LENSEasy Photo macro lensPRESET_ICON_CHESTY
    41PRESET_GROUP_ID_EASY_TIMELAPSE_MACRO_LENSEasy Timelapse macro lensPRESET_ICON_HELMET
    42PRESET_GROUP_ID_VIDEO_MACRO_LENS_STANDARDMacro lens video standard profile - for internal preset switch onlyPRESET_ICON_BITE
    43PRESET_GROUP_ID_VIDEO_MACRO_LENS_LOGMacro lens video log profile - for internal preset switch only58PRESET_ICON_BASIC
    44PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENSVideo anamorphic lens59PRESET_ICON_ULTRA_SLO_MO
    45PRESET_GROUP_ID_PHOTO_ANAMORPHIC_LENSPhoto anamorphic lens60PRESET_ICON_STANDARD_ENDURANCE
    46PRESET_GROUP_ID_TIMELAPSE_ANAMORPHIC_LENSTimelapse anamorphic lens61PRESET_ICON_ACTIVITY_ENDURANCE
    47PRESET_GROUP_ID_EASY_VIDEO_ANAMORPHIC_LENSEasy Video anamorphic lens62PRESET_ICON_CINEMATIC_ENDURANCE
    48PRESET_GROUP_ID_EASY_PHOTO_ANAMORPHIC_LENSEasy Photo anamorphic lens63PRESET_ICON_SLOMO_ENDURANCE
    49PRESET_GROUP_ID_EASY_TIMELAPSE_ANAMORPHIC_LENSEasy Timelapse anamorphic lens64PRESET_ICON_STATIONARY_1
    50PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS_STANDARDAnamorphic lens video standard profile - for internal preset switch only65PRESET_ICON_STATIONARY_2
    51PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS_LOGAnamorphic lens video log profile - for internal preset switch only66PRESET_ICON_STATIONARY_3
    1000PRESET_GROUP_ID_VIDEO67PRESET_ICON_STATIONARY_4
    1001PRESET_GROUP_ID_PHOTO70PRESET_ICON_SIMPLE_SUPER_PHOTO
    1002PRESET_GROUP_ID_TIMELAPSE71PRESET_ICON_SIMPLE_NIGHT_PHOTO
    -
    Array of objects (Preset)

    Array of Presets contained in this Preset Group

    -
    Array
    + + + + + + + + + + + + + + + + + + +
    icon
    integer (EnumPresetIcon)
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 89 90 91 92 93 94 95 96 97 98 99 100 101 102 1000 1001 1002
    +
    +id +
    +
    +integer <int32> +
    +

    Unique preset identifier

    +
    +
    +isFixed +
    +
    +boolean +
    +

    Is this preset mutable?

    +
    +
    +isModified +
    +
    +boolean +
    +

    Has the preset been modified from the factory defaults?

    +
    +
    +mode +
    +
    +integer (EnumFlatMode) +
    +
    + Enum: -1 4 5 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
    +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -5900,454 +9671,192 @@

    Limitations

    - - - - - - - - - - + - - - - - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ID Summary
    0PRESET_ICON_VIDEO
    1PRESET_ICON_ACTIVITY
    2PRESET_ICON_CINEMATIC
    3PRESET_ICON_PHOTO-1FLAT_MODE_UNKNOWN
    4PRESET_ICON_LIVE_BURSTFLAT_MODE_PLAYBACK
    5PRESET_ICON_BURST
    6PRESET_ICON_PHOTO_NIGHT
    7PRESET_ICON_TIMEWARP
    8PRESET_ICON_TIMELAPSE
    9PRESET_ICON_NIGHTLAPSE
    10PRESET_ICON_SNAIL
    11PRESET_ICON_VIDEO_2FLAT_MODE_SETUP
    12PRESET_ICON_360_VIDEOFLAT_MODE_VIDEO
    13PRESET_ICON_PHOTO_2
    14PRESET_ICON_PANORAMAFLAT_MODE_TIME_LAPSE_VIDEO
    15PRESET_ICON_BURST_2FLAT_MODE_LOOPING
    16PRESET_ICON_TIMEWARP_2FLAT_MODE_PHOTO_SINGLE
    17PRESET_ICON_TIMELAPSE_2FLAT_MODE_PHOTO
    18PRESET_ICON_CUSTOMFLAT_MODE_PHOTO_NIGHT
    19PRESET_ICON_AIRFLAT_MODE_PHOTO_BURST
    20PRESET_ICON_BIKEFLAT_MODE_TIME_LAPSE_PHOTO
    21PRESET_ICON_EPICFLAT_MODE_NIGHT_LAPSE_PHOTO
    22PRESET_ICON_INDOORFLAT_MODE_BROADCAST_RECORD
    23PRESET_ICON_MOTORFLAT_MODE_BROADCAST_BROADCAST
    24PRESET_ICON_MOUNTEDFLAT_MODE_TIME_WARP_VIDEO
    25PRESET_ICON_OUTDOORFLAT_MODE_LIVE_BURST
    26PRESET_ICON_POVFLAT_MODE_NIGHT_LAPSE_VIDEO
    27PRESET_ICON_SELFIEFLAT_MODE_SLOMO
    28PRESET_ICON_SKATEFLAT_MODE_IDLE
    29PRESET_ICON_SNOWFLAT_MODE_VIDEO_STAR_TRAIL
    30PRESET_ICON_TRAILFLAT_MODE_VIDEO_LIGHT_PAINTING
    31PRESET_ICON_TRAVELFLAT_MODE_VIDEO_LIGHT_TRAIL
    32PRESET_ICON_WATER
    33PRESET_ICON_LOOPING
    34PRESET_ICON_STARS
    35PRESET_ICON_ACTION
    36PRESET_ICON_FOLLOW_CAM
    37PRESET_ICON_SURF
    38PRESET_ICON_CITYFLAT_MODE_VIDEO_BURST_SLOMO
    39PRESET_ICON_SHAKY
    40PRESET_ICON_CHESTY
    41PRESET_ICON_HELMET
    42PRESET_ICON_BITE
    55PRESET_ICON_MAX_VIDEO
    56PRESET_ICON_MAX_PHOTO
    57PRESET_ICON_MAX_TIMEWARP
    58PRESET_ICON_BASIC
    59PRESET_ICON_ULTRA_SLO_MO
    60PRESET_ICON_STANDARD_ENDURANCE
    61PRESET_ICON_ACTIVITY_ENDURANCE
    62PRESET_ICON_CINEMATIC_ENDURANCE
    63PRESET_ICON_SLOMO_ENDURANCE
    64PRESET_ICON_STATIONARY_1
    65PRESET_ICON_STATIONARY_2
    66PRESET_ICON_STATIONARY_3
    67PRESET_ICON_STATIONARY_4
    70PRESET_ICON_SIMPLE_SUPER_PHOTO
    71PRESET_ICON_SIMPLE_NIGHT_PHOTO
    73PRESET_ICON_HIGHEST_QUALITY_VIDEO
    74PRESET_ICON_STANDARD_QUALITY_VIDEO
    75PRESET_ICON_BASIC_QUALITY_VIDEO
    76PRESET_ICON_STAR_TRAIL
    77PRESET_ICON_LIGHT_PAINTING
    78PRESET_ICON_LIGHT_TRAIL
    79PRESET_ICON_FULL_FRAME
    80PRESET_ICON_EASY_MAX_VIDEO
    81PRESET_ICON_EASY_MAX_PHOTO
    82PRESET_ICON_EASY_MAX_TIMEWARP
    83PRESET_ICON_EASY_MAX_STAR_TRAIL
    84PRESET_ICON_EASY_MAX_LIGHT_PAINTING
    85PRESET_ICON_EASY_MAX_LIGHT_TRAIL
    89PRESET_ICON_MAX_STAR_TRAIL
    90PRESET_ICON_MAX_LIGHT_PAINTING
    91PRESET_ICON_MAX_LIGHT_TRAIL
    92PRESET_ICON_360_BURST
    93PRESET_ICON_360_PHOTO_NIGHT
    94PRESET_ICON_360_NIGHTLAPSE
    95PRESET_ICON_360_TIMELAPSE_PHOTO
    96PRESET_ICON_360_NIGHTLAPSE_PHOTO
    97PRESET_ICON_360_PHOTO
    98PRESET_ICON_360_TIMELAPSE
    99PRESET_ICON_360_TIMEWARP
    100PRESET_ICON_EASY_STANDARD_PROFILE
    101PRESET_ICON_EASY_HDR_PROFILE
    102PRESET_ICON_BURST_SLOMO
    1000PRESET_ICON_TIMELAPSE_PHOTO
    1001PRESET_ICON_NIGHTLAPSE_PHOTO
    1002PRESET_ICON_MAX
    -
    id
    integer <int32>

    Unique preset identifier

    -
    isFixed
    boolean

    Is this preset mutable?

    -
    isModified
    boolean

    Has the preset been modified from the factory defaults?

    -
    mode
    integer (EnumFlatMode)
    Enum: -1 4 5 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
    +
    + +
    +
    +Array of objects (PresetSetting) +
    +
    +
    Array
    +
    + + + + + + + + + + + + +
    +id +
    +
    +integer <int32> +
    +

    Setting identifier

    +
    +
    +isCaption +
    +
    +boolean +
    +

    Does this setting appear on the Preset "pill" in the camera UI?

    +
    +
    +value +
    +
    +integer <int32> +
    +

    Setting value

    +
    +
    +
    +
    +titleId +
    +
    +integer (EnumPresetTitle) +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 82 83 93 94
    Limitations </tr> </thead> <tbody><tr> -<td>-1</td> -<td>FLAT_MODE_UNKNOWN</td> +<td>0</td> +<td>PRESET_TITLE_ACTIVITY</td> <td></td> </tr> <tr> -<td>4</td> -<td>FLAT_MODE_PLAYBACK</td> +<td>1</td> +<td>PRESET_TITLE_STANDARD</td> <td></td> </tr> <tr> -<td>5</td> -<td>FLAT_MODE_SETUP</td> +<td>2</td> +<td>PRESET_TITLE_CINEMATIC</td> <td></td> </tr> <tr> -<td>12</td> -<td>FLAT_MODE_VIDEO</td> +<td>3</td> +<td>PRESET_TITLE_PHOTO</td> <td></td> </tr> <tr> -<td>13</td> -<td>FLAT_MODE_TIME_LAPSE_VIDEO</td> +<td>4</td> +<td>PRESET_TITLE_LIVE_BURST</td> <td></td> </tr> <tr> -<td>15</td> -<td>FLAT_MODE_LOOPING</td> +<td>5</td> +<td>PRESET_TITLE_BURST</td> <td></td> </tr> <tr> -<td>16</td> -<td>FLAT_MODE_PHOTO_SINGLE</td> +<td>6</td> +<td>PRESET_TITLE_NIGHT</td> <td></td> </tr> <tr> -<td>17</td> -<td>FLAT_MODE_PHOTO</td> +<td>7</td> +<td>PRESET_TITLE_TIME_WARP</td> <td></td> </tr> <tr> -<td>18</td> -<td>FLAT_MODE_PHOTO_NIGHT</td> +<td>8</td> +<td>PRESET_TITLE_TIME_LAPSE</td> <td></td> </tr> <tr> -<td>19</td> -<td>FLAT_MODE_PHOTO_BURST</td> +<td>9</td> +<td>PRESET_TITLE_NIGHT_LAPSE</td> <td></td> </tr> <tr> -<td>20</td> -<td>FLAT_MODE_TIME_LAPSE_PHOTO</td> +<td>10</td> +<td>PRESET_TITLE_VIDEO</td> <td></td> </tr> <tr> -<td>21</td> -<td>FLAT_MODE_NIGHT_LAPSE_PHOTO</td> -<td></td> -</tr> -<tr> -<td>22</td> -<td>FLAT_MODE_BROADCAST_RECORD</td> -<td></td> -</tr> -<tr> -<td>23</td> -<td>FLAT_MODE_BROADCAST_BROADCAST</td> -<td></td> -</tr> -<tr> -<td>24</td> -<td>FLAT_MODE_TIME_WARP_VIDEO</td> -<td></td> -</tr> -<tr> -<td>25</td> -<td>FLAT_MODE_LIVE_BURST</td> -<td></td> -</tr> -<tr> -<td>26</td> -<td>FLAT_MODE_NIGHT_LAPSE_VIDEO</td> -<td></td> -</tr> -<tr> -<td>27</td> -<td>FLAT_MODE_SLOMO</td> -<td></td> -</tr> -<tr> -<td>28</td> -<td>FLAT_MODE_IDLE</td> -<td></td> -</tr> -<tr> -<td>29</td> -<td>FLAT_MODE_VIDEO_STAR_TRAIL</td> -<td></td> -</tr> -<tr> -<td>30</td> -<td>FLAT_MODE_VIDEO_LIGHT_PAINTING</td> -<td></td> -</tr> -<tr> -<td>31</td> -<td>FLAT_MODE_VIDEO_LIGHT_TRAIL</td> -<td></td> -</tr> -<tr> -<td>32</td> -<td>FLAT_MODE_VIDEO_BURST_SLOMO</td> -<td></td> -</tr> -</tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    IDNameSummary
    -1FLAT_MODE_UNKNOWN
    4FLAT_MODE_PLAYBACK
    5FLAT_MODE_SETUP
    12FLAT_MODE_VIDEO
    13FLAT_MODE_TIME_LAPSE_VIDEO
    15FLAT_MODE_LOOPING
    16FLAT_MODE_PHOTO_SINGLE
    17FLAT_MODE_PHOTO
    18FLAT_MODE_PHOTO_NIGHT
    19FLAT_MODE_PHOTO_BURST
    20FLAT_MODE_TIME_LAPSE_PHOTO
    21FLAT_MODE_NIGHT_LAPSE_PHOTO
    22FLAT_MODE_BROADCAST_RECORD
    23FLAT_MODE_BROADCAST_BROADCAST
    24FLAT_MODE_TIME_WARP_VIDEO
    25FLAT_MODE_LIVE_BURST
    26FLAT_MODE_NIGHT_LAPSE_VIDEO
    27FLAT_MODE_SLOMO
    28FLAT_MODE_IDLE
    29FLAT_MODE_VIDEO_STAR_TRAIL
    30FLAT_MODE_VIDEO_LIGHT_PAINTING
    31FLAT_MODE_VIDEO_LIGHT_TRAIL
    32FLAT_MODE_VIDEO_BURST_SLOMO
    -
    Array of objects (PresetSetting)
    Array
    id
    integer <int32>

    Setting identifier

    -
    isCaption
    boolean

    Does this setting appear on the Preset "pill" in the camera UI?

    -
    value
    integer <int32>

    Setting value

    -
    titleId
    integer (EnumPresetTitle)
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
    Limitations <td></td> </tr> <tr> -<td>15</td> -<td>PRESET_TITLE_360_PHOTO</td> -<td></td> -</tr> -<tr> <td>16</td> <td>PRESET_TITLE_TIME_WARP_2</td> <td></td> </tr> <tr> -<td>17</td> -<td>PRESET_TITLE_360_TIME_WARP</td> -<td></td> -</tr> -<tr> <td>18</td> <td>PRESET_TITLE_CUSTOM</td> <td></td> @@ -6825,83 +10065,8 @@

    Limitations

    <td></td> </tr> <tr> -<td>43</td> -<td>PRESET_TITLE_CUSTOM_CINEMATIC</td> -<td></td> -</tr> -<tr> -<td>44</td> -<td>PRESET_TITLE_DIVE</td> -<td></td> -</tr> -<tr> -<td>45</td> -<td>PRESET_TITLE_FPV</td> -<td></td> -</tr> -<tr> -<td>46</td> -<td>PRESET_TITLE_HDR</td> -<td></td> -</tr> -<tr> -<td>47</td> -<td>PRESET_TITLE_LANDSCAPE</td> -<td></td> -</tr> -<tr> -<td>48</td> -<td>PRESET_TITLE_LOG</td> -<td></td> -</tr> -<tr> -<td>49</td> -<td>PRESET_TITLE_CUSTOM_SLOMO</td> -<td></td> -</tr> -<tr> -<td>50</td> -<td>PRESET_TITLE_TRIPOD</td> -<td></td> -</tr> -<tr> -<td>51</td> -<td>PRESET_TITLE_360_TIMELAPSE</td> -<td></td> -</tr> -<tr> -<td>52</td> -<td>PRESET_TITLE_360_NIGHT_LAPSE</td> -<td></td> -</tr> -<tr> -<td>53</td> -<td>PRESET_TITLE_360_NIGHT_PHOTO</td> -<td></td> -</tr> -<tr> -<td>54</td> -<td>PRESET_TITLE_PANO_TIME_LAPSE</td> -<td></td> -</tr> -<tr> -<td>55</td> -<td>PRESET_TITLE_MAX_VIDEO</td> -<td></td> -</tr> -<tr> -<td>56</td> -<td>PRESET_TITLE_MAX_PHOTO</td> -<td></td> -</tr> -<tr> -<td>57</td> -<td>PRESET_TITLE_MAX_TIMEWARP</td> -<td></td> -</tr> -<tr> -<td>58</td> -<td>PRESET_TITLE_BASIC</td> +<td>58</td> +<td>PRESET_TITLE_BASIC</td> <td></td> </tr> <tr> @@ -7010,16 +10175,6 @@

    Limitations

    <td></td> </tr> <tr> -<td>80</td> -<td>PRESET_TITLE_MAX_LENS_VIDEO</td> -<td></td> -</tr> -<tr> -<td>81</td> -<td>PRESET_TITLE_MAX_LENS_TIMEWARP</td> -<td></td> -</tr> -<tr> <td>82</td> <td>PRESET_TITLE_STANDARD_QUALITY_VIDEO</td> <td></td> @@ -7030,51 +10185,6 @@

    Limitations

    <td></td> </tr> <tr> -<td>84</td> -<td>PRESET_TITLE_EASY_MAX_VIDEO</td> -<td></td> -</tr> -<tr> -<td>85</td> -<td>PRESET_TITLE_EASY_MAX_PHOTO</td> -<td></td> -</tr> -<tr> -<td>86</td> -<td>PRESET_TITLE_EASY_MAX_TIMEWARP</td> -<td></td> -</tr> -<tr> -<td>87</td> -<td>PRESET_TITLE_EASY_MAX_STAR_TRAIL</td> -<td></td> -</tr> -<tr> -<td>88</td> -<td>PRESET_TITLE_EASY_MAX_LIGHT_PAINTING</td> -<td></td> -</tr> -<tr> -<td>89</td> -<td>PRESET_TITLE_EASY_MAX_LIGHT_TRAIL</td> -<td></td> -</tr> -<tr> -<td>90</td> -<td>PRESET_TITLE_MAX_STAR_TRAIL</td> -<td></td> -</tr> -<tr> -<td>91</td> -<td>PRESET_TITLE_MAX_LIGHT_PAINTING</td> -<td></td> -</tr> -<tr> -<td>92</td> -<td>PRESET_TITLE_MAX_LIGHT_TRAIL</td> -<td></td> -</tr> -<tr> <td>93</td> <td>PRESET_TITLE_HIGHEST_QUALITY_VIDEO</td> <td></td> @@ -7084,78 +10194,9 @@

    Limitations

    <td>PRESET_TITLE_USER_DEFINED_CUSTOM_NAME</td> <td></td> </tr> -<tr> -<td>95</td> -<td>PRESET_TITLE_360_DEG_BURST</td> -<td>- FW_PRESET_TITLE_360_BURST</td> -</tr> -<tr> -<td>96</td> -<td>PRESET_TITLE_360_DEG_NIGHT_PHOTO</td> -<td>- FW_PRESET_TITLE_360_NIGHT</td> -</tr> -<tr> -<td>97</td> -<td>PRESET_TITLE_360_DEG_TIME_LAPSE_PHOTO</td> -<td>- FW_PRESET_TITLE_360_TIME_LAPSE_PHOTO</td> -</tr> -<tr> -<td>98</td> -<td>PRESET_TITLE_360_DEG_NIGHT_LAPSE_PHOTO</td> -<td>- FW_PRESET_TITLE_360_NIGHT_LAPSE_PHOTO</td> -</tr> -<tr> -<td>99</td> -<td>PRESET_TITLE_EASY_STANDARD_PROFILE</td> -<td></td> -</tr> -<tr> -<td>100</td> -<td>PRESET_TITLE_EASY_HDR_PROFILE</td> -<td></td> -</tr> -<tr> -<td>101</td> -<td>PRESET_TITLE_360_DEG_TIME_LAPSE_VIDEO</td> -<td>- FW_PRESET_TITLE_MAX_2_TIME_LAPSE</td> -</tr> -<tr> -<td>102</td> -<td>PRESET_TITLE_360_DEG_NIGHT_LAPSE_VIDEO</td> -<td>- FW_PRESET_TITLE_MAX_2_NIGHT_LAPSE</td> -</tr> -<tr> -<td>103</td> -<td>PRESET_TITLE_360_DEG_PHOTO</td> -<td>- FW_PRESET_TITLE_MAX_2_PHOTO</td> -</tr> -<tr> -<td>104</td> -<td>PRESET_TITLE_360_DEG_TIME_WARP</td> -<td>- FW_PRESET_TITLE_MAX_2_TIME_WARP</td> -</tr> -<tr> -<td>105</td> -<td>PRESET_TITLE_360_DEG_VIDEO</td> -<td>- FW_PRESET_TITLE_MAX_2_VIDEO</td> -</tr> -<tr> -<td>106</td> -<td>PRESET_TITLE_BURST_SLOMO</td> -<td></td> -</tr> -<tr> -<td>107</td> -<td>PRESET_TITLE_VLOG</td> -<td></td> -</tr> -<tr> -<td>108</td> -<td>PRESET_TITLE_MAX</td> -<td></td> -</tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -7163,7 +10204,8 @@

    Limitations

    - + + @@ -7224,11 +10266,6 @@

    Limitations

    - - - - - @@ -7239,21 +10276,11 @@

    Limitations

    - - - - - - - - - - @@ -7379,81 +10406,6 @@

    Limitations

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -7564,16 +10516,6 @@

    Limitations

    - - - - - - - - - - @@ -7584,51 +10526,6 @@

    Limitations

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -7638,107 +10535,351 @@

    Limitations

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ID Summary
    0 PRESET_TITLE_ACTIVITY
    12PRESET_TITLE_360_VIDEO
    13 PRESET_TITLE_PHOTO_2
    15PRESET_TITLE_360_PHOTO
    16 PRESET_TITLE_TIME_WARP_2
    17PRESET_TITLE_360_TIME_WARP
    18 PRESET_TITLE_CUSTOM
    43PRESET_TITLE_CUSTOM_CINEMATIC
    44PRESET_TITLE_DIVE
    45PRESET_TITLE_FPV
    46PRESET_TITLE_HDR
    47PRESET_TITLE_LANDSCAPE
    48PRESET_TITLE_LOG
    49PRESET_TITLE_CUSTOM_SLOMO
    50PRESET_TITLE_TRIPOD
    51PRESET_TITLE_360_TIMELAPSE
    52PRESET_TITLE_360_NIGHT_LAPSE
    53PRESET_TITLE_360_NIGHT_PHOTO
    54PRESET_TITLE_PANO_TIME_LAPSE
    55PRESET_TITLE_MAX_VIDEO
    56PRESET_TITLE_MAX_PHOTO
    57PRESET_TITLE_MAX_TIMEWARP
    58 PRESET_TITLE_BASIC
    80PRESET_TITLE_MAX_LENS_VIDEO
    81PRESET_TITLE_MAX_LENS_TIMEWARP
    82 PRESET_TITLE_STANDARD_QUALITY_VIDEO
    84PRESET_TITLE_EASY_MAX_VIDEO
    85PRESET_TITLE_EASY_MAX_PHOTO
    86PRESET_TITLE_EASY_MAX_TIMEWARP
    87PRESET_TITLE_EASY_MAX_STAR_TRAIL
    88PRESET_TITLE_EASY_MAX_LIGHT_PAINTING
    89PRESET_TITLE_EASY_MAX_LIGHT_TRAIL
    90PRESET_TITLE_MAX_STAR_TRAIL
    91PRESET_TITLE_MAX_LIGHT_PAINTING
    92PRESET_TITLE_MAX_LIGHT_TRAIL
    93 PRESET_TITLE_HIGHEST_QUALITY_VIDEO PRESET_TITLE_USER_DEFINED_CUSTOM_NAME
    95PRESET_TITLE_360_DEG_BURST- FW_PRESET_TITLE_360_BURST
    96PRESET_TITLE_360_DEG_NIGHT_PHOTO- FW_PRESET_TITLE_360_NIGHT
    97PRESET_TITLE_360_DEG_TIME_LAPSE_PHOTO- FW_PRESET_TITLE_360_TIME_LAPSE_PHOTO
    98PRESET_TITLE_360_DEG_NIGHT_LAPSE_PHOTO- FW_PRESET_TITLE_360_NIGHT_LAPSE_PHOTO
    99PRESET_TITLE_EASY_STANDARD_PROFILE
    100PRESET_TITLE_EASY_HDR_PROFILE
    101PRESET_TITLE_360_DEG_TIME_LAPSE_VIDEO- FW_PRESET_TITLE_MAX_2_TIME_LAPSE
    102PRESET_TITLE_360_DEG_NIGHT_LAPSE_VIDEO- FW_PRESET_TITLE_MAX_2_NIGHT_LAPSE
    103PRESET_TITLE_360_DEG_PHOTO- FW_PRESET_TITLE_MAX_2_PHOTO
    104PRESET_TITLE_360_DEG_TIME_WARP- FW_PRESET_TITLE_MAX_2_TIME_WARP
    105PRESET_TITLE_360_DEG_VIDEO- FW_PRESET_TITLE_MAX_2_VIDEO
    106PRESET_TITLE_BURST_SLOMO
    107PRESET_TITLE_VLOG
    108PRESET_TITLE_MAX
    -
    titleNumber
    integer <int32>

    Preset title number

    -
    userDefined
    boolean

    Is this preset user defined?

    -
    {
    • "canAddPreset": true,
    • "icon": 0,
    • "id": 0,
    • "presetArray": [
      ]
    }

    PresetSetting

    id
    integer <int32>

    Setting identifier

    -
    isCaption
    boolean

    Does this setting appear on the Preset "pill" in the camera UI?

    -
    value
    integer <int32>

    Setting value

    -
    {
    • "id": 0,
    • "isCaption": true,
    • "value": 0
    }

    SingleMediaListItem

    n
    required
    string
    Example: "GOPR0001.JPG"

    Media filename

    -
    cre
    required
    integer
    Example: "1696600109"

    Creation time in seconds since epoch

    -
    mod
    required
    integer
    Example: "1696600109"

    Time file was last modified in seconds since epoch

    -
    s
    required
    integer
    Example: "2806303"

    Size of media in bytes

    -
    glrv
    integer
    Example: "817767"

    Low resolution video size

    -
    ls
    integer
    Example: "-1"

    Low resolution file size. -1 if there is no LRV file

    -
    {
    • "cre": 1696600109,
    • "glrv": 817767,
    • "ls": -1,
    • "mod": 1696600109,
    • "n": "GOPR0001.JPG",
    • "s": 2806303
    }

    State

    +
    object

    All currently known setting values indexed by setting ID

    -
    + + + + + + +
    2
    integer
    Enum: 1 4 6 7 9 18 24 25 26 27 28 100 107 108 109 110 111
    +
    +titleNumber +
    +
    +integer <int32> +
    +

    Preset title number

    +
    +
    +userDefined +
    +
    +boolean +
    +

    Is this preset user defined?

    +
    +
    +
    + +
    +
    +
    + +
    +
    {
      +
    • +"canAddPreset": true, +
    • +
    • +"icon": 0, +
    • +
    • +"id": 1000, +
    • +
    • +"presetArray": [
      +] +
    • +
    +}
    +
    +
    +
    +
    +

    +PresetSetting

    +
    +
    + + + + + + + + + + + + +
    +id + +
    +
    +integer <int32> +
    +

    Setting identifier

    +
    +
    +
    +isCaption + +
    +
    +boolean +
    +

    Does this setting appear on the Preset "pill" in the camera UI?

    +
    +
    +
    +value + +
    +
    +integer <int32> +
    +

    Setting value

    +
    +
    +
    +
    +
    +
    {
      +
    • +"id": 0, +
    • +
    • +"isCaption": true, +
    • +
    • +"value": 0 +
    • +
    +}
    +
    +
    +
    +
    +

    +SingleMediaListItem

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    +n<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: "GOPR0001.JPG" +
    +
    +

    Media filename

    +
    +
    +
    +cre<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1696600109" +
    +
    +

    Creation time in seconds since epoch

    +
    +
    +
    +mod<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1696600109" +
    +
    +

    Time file was last modified in seconds since epoch

    +
    +
    +
    +s<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "2806303" +
    +
    +

    Size of media in bytes

    +
    +
    +
    +glrv + +
    +
    +integer +
    + Example: "817767" +
    +
    +

    Low resolution video size

    +
    +
    +
    +ls + +
    +
    +integer +
    + Example: "-1" +
    +
    +

    Low resolution file size. -1 if there is no LRV file

    +
    +
    +
    +
    +
    +
    {
      +
    • +"cre": 1696600109, +
    • +
    • +"glrv": 817767, +
    • +
    • +"ls": -1, +
    • +
    • +"mod": 1696600109, +
    • +
    • +"n": "GOPR0001.JPG", +
    • +
    • +"s": 2806303 +
    • +
    +}
    +
    +
    +
    +
    +

    +State

    +
    +
    + + + + + + + + + + + +
    + + +
    +
    +object +
    +

    All currently known setting values indexed by setting ID

    +
    +
    +
    +
    + + + + + + +
    +2 +
    +
    +integer +
    +
    + Enum: 1 4 6 7 9 18 24 25 26 27 28 100 107 108 109 110 111
    +

    Resolution

    HERO12 Black HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -7847,20 +10989,27 @@

    Limitations

    - + + - + - + - + @@ -7870,12 +11019,16 @@

    Limitations

    - + - + @@ -7890,22 +11043,30 @@

    Limitations

    - + - + - + - + @@ -7932,13 +11093,26 @@

    Limitations

    -
    Supported Cameras
    1 4KHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    4 2.7KHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    6 2.7K 4:3HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    7
    9 1080HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    18 4K 4:3HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    24
    26 5.3K 8:7HERO11 Black MiniHERO11 Black +HERO11 Black MiniHERO11 Black +
    27 5.3K 4:3HERO11 Black MiniHERO11 Black +HERO11 Black MiniHERO11 Black +
    28 4K 8:7HERO11 Black MiniHERO11 Black +HERO11 Black MiniHERO11 Black +
    100 5.3KHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 Black +
    107 2.7K HERO12 Black
    -
    3
    integer
    Enum: 0 1 2 5 6 8 9 10 13
    +
    +3 +
    +
    +integer +
    +
    + Enum: 0 1 2 5 6 8 9 10 13
    +

    Frames Per Second

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -8007,58 +11182,90 @@

    Limitations

    - + + - + - + - + - + - + - + - + - + - - -
    Supported Cameras
    0 240HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    1 120HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    2 100HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    5 60HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    6 50HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    8 30HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    9 25HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    10 24HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    13 200HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
    -
    43
    integer
    Enum: 0 2 3 4
    HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    +43 +
    +
    +integer +
    +
    + Enum: 0 2 3 4
    +

    Webcam Digital Lenses

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -8102,33 +11310,55 @@

    Limitations

    - + + - + - + - + - - -
    Supported Cameras
    0 WideHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    2 NarrowHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    3 SuperviewHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    4 LinearHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
    -
    59
    integer
    Enum: 0 1 4 6 7 11 12
    HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    +59 +
    +
    +integer +
    +
    + Enum: 0 1 4 6 7 11 12
    +

    Auto Power Down

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -8187,30 +11418,41 @@

    Limitations

    - + + - + - + - + - + - + @@ -8222,11 +11464,24 @@

    Limitations

    -
    Supported Cameras
    0 NeverHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    1 1 MinHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    4 5 MinHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    6 15 MinHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    7 30 MinHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    11 30 Seconds HERO11 Black Mini
    -
    83
    integer
    Enum: 0 1
    +
    +83 +
    +
    +integer +
    +
    + Enum: 0 1
    +

    GPS

    HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -8258,19 +11514,37 @@

    Limitations

    - + + - + - - -
    Supported Cameras
    0 OffHERO11 BlackHERO10 BlackHERO9 Black +HERO11 BlackHERO10 BlackHERO9 Black +
    1 OnHERO11 BlackHERO10 BlackHERO9 Black
    -
    108
    integer
    Enum: 0 1 3 4
    HERO10 BlackHERO9 Black +
    +
    +
    +108 +
    +
    +integer +
    +
    + Enum: 0 1 3 4
    +

    Aspect Ratio

    HERO12 Black

    @@ -8310,7 +11585,8 @@

    Limitations

    - + + @@ -8330,13 +11606,26 @@

    Limitations

    -
    Supported Cameras
    0 4:3 HERO12 Black 9:16 HERO12 Black
    -
    121
    integer
    Enum: 0 2 3 4 7 8 9 10 11
    +
    +121 +
    +
    +integer +
    +
    + Enum: 0 2 3 4 7 8 9 10 11
    +

    Lens

    HERO12 Black HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -8405,57 +11695,87 @@

    Limitations

    - + + - + - + - + - + - + - + - + - + -
    Supported Cameras
    0 WideHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    2 NarrowHERO10 BlackHERO9 Black +HERO10 BlackHERO9 Black +
    3 SuperviewHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    4 LinearHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    7 Max SuperViewHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    8 Linear + Horizon LevelingHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    9 HyperViewHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    10 Linear + Horizon LockHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    11 Max HyperView HERO12 Black
    -
    122
    integer
    Enum: 19 100 101 102
    +
    +122 +
    +
    +integer +
    +
    + Enum: 19 100 101 102
    +

    Lens

    HERO12 Black HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -8498,32 +11819,54 @@

    Limitations

    - + + - + - + - + - - -
    Supported Cameras
    19 NarrowHERO10 BlackHERO9 Black +HERO10 BlackHERO9 Black +
    100 Max SuperViewHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    101 WideHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    102 LinearHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
    -
    123
    integer
    Enum: 19 100 101 102
    HERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    +123 +
    +
    +integer +
    +
    + Enum: 19 100 101 102
    +

    Time Lapse Digital Lenses

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -8566,10 +11910,13 @@

    Limitations

    - + + - + @@ -8579,19 +11926,36 @@

    Limitations

    - + - - -
    Supported Cameras
    19 NarrowHERO10 BlackHERO9 Black +HERO10 BlackHERO9 Black +
    100
    101 WideHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    102 LinearHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
    -
    128
    integer
    Enum: 13 20 21 26
    HERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    +128 +
    +
    +integer +
    +
    + Enum: 13 20 21 26
    +

    Media Format

    HERO12 Black HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -8634,33 +11999,55 @@

    Limitations

    - + + - + - + - + - - -
    Supported Cameras
    13 Time Lapse VideoHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    20 Time Lapse PhotoHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    21 Night Lapse PhotoHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    26 Night Lapse VideoHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
    -
    134
    integer
    Enum: 2 3
    HERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    + + + +134 + +
    +
    +integer +
    +
    + Enum: 2 3
    +

    Anti-Flicker

    HERO12 Black HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -8694,23 +12082,41 @@

    Limitations

    - + + - + - - -
    Supported Cameras
    2 60HzHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    3 50HzHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
    -
    135
    integer
    Enum: 0 1 2 3 4 100
    HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black + + + + +
    +
    + + + +135 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 100
    +

    Hypersmooth

    HERO12 Black HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -8764,39 +12171,63 @@

    Limitations

    - + + - + - + - + - + - + -
    Supported Cameras
    0 OffHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    1 LowHERO12 BlackHERO11 Black MiniHERO11 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO9 Black +
    2 HighHERO10 BlackHERO9 Black +HERO10 BlackHERO9 Black +
    3 BoostHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    4 Auto BoostHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    100 Standard HERO10 Black
    -
    150
    integer
    Enum: 0 2
    + +150 + +
    +
    +integer +
    +
    + Enum: 0 2
    +

    Horizon Leveling

    HERO11 Black

    @@ -8826,7 +12258,8 @@

    Limitations

    - + + @@ -8836,9 +12269,22 @@

    Limitations

    -
    Supported Cameras
    0 Off HERO11 Black Locked HERO11 Black
    -
    151
    integer
    Enum: 0 2
    + +151 + +
    +
    +integer +
    +
    + Enum: 0 2
    +

    Horizon Leveling

    HERO11 Black

    @@ -8868,7 +12315,8 @@

    Limitations

    - + + @@ -8878,11 +12326,24 @@

    Limitations

    -
    Supported Cameras
    0 Off HERO11 Black Locked HERO11 Black
    -
    162
    integer
    Enum: 0 1
    + +162 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Max Lens

    HERO11 Black HERO10 Black HERO9 Black

    @@ -8914,22 +12376,40 @@

    Limitations

    Supported Cameras - + + 0 Off -HERO11 BlackHERO10 BlackHERO9 Black + +HERO11 BlackHERO10 BlackHERO9 Black + 1 On -HERO11 BlackHERO10 BlackHERO9 Black - - -
    167
    integer
    Enum: 2 3 4
    HERO10 BlackHERO9 Black + + + + +
    +
    + + + +167 + +
    +
    +integer +
    +
    + Enum: 2 3 4
    +

    HindSight

    HERO12 Black HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -8967,24 +12448,44 @@

    Limitations

    - + + - + - + - - -
    Supported Cameras
    2 15 SecondsHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    3 30 SecondsHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    4 OffHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
    -
    171
    integer
    Enum: 0 2 3 4 5 6 7 8 9 10
    HERO11 BlackHERO10 BlackHERO9 Black + + + + +
    +
    + + + +171 + +
    +
    +integer +
    +
    + Enum: 0 2 3 4 5 6 7 8 9 10
    +

    Interval

    HERO12 Black

    @@ -9054,7 +12556,8 @@

    Limitations

    - + + @@ -9104,9 +12607,22 @@

    Limitations

    -
    Supported Cameras
    0 Off HERO12 Black 3s HERO12 Black
    -
    172
    integer
    Enum: 0 1 2 3 4 5 6 7 8 9
    + +172 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9
    +

    Duration

    HERO12 Black

    @@ -9176,7 +12693,8 @@

    Limitations

    - + + @@ -9226,9 +12744,22 @@

    Limitations

    -
    Supported Cameras
    0 Off HERO12 Black 3 Hours HERO12 Black
    -
    173
    integer
    Enum: 0 1 2
    + +173 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Video Performance Mode

    HERO10 Black

    @@ -9263,7 +12795,8 @@

    Limitations

    - + + @@ -9278,10 +12811,23 @@

    Limitations

    -
    Supported Cameras
    0 Maximum Video Performance HERO10 Black Tripod / Stationary Video HERO10 Black
    -
    175
    integer
    Enum: 0 1
    + +175 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Controls

    HERO12 Black HERO11 Black

    @@ -9312,20 +12859,38 @@

    Limitations

    - + + - + - - -
    Supported Cameras
    0 EasyHERO12 BlackHERO11 Black +HERO12 BlackHERO11 Black +
    1 ProHERO12 BlackHERO11 Black
    -
    176
    integer
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
    HERO11 Black + + + + +
    +
    + + + +176 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
    +

    Easy Mode Speed

    HERO12 Black - HERO11 Black

    +HERO11 Black

    @@ -9676,7 +13242,8 @@

    Limitations

    - + + @@ -10006,9 +13573,22 @@

    Limitations

    -
    Supported Cameras
    0 8X Ultra Slo-Mo HERO11 Black 1X Speed (4K) (50Hz) (Full Frame) (Low Light) (V2) HERO12 Black
    -
    177
    integer
    Enum: 0 1
    + +177 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Enable Night Photo

    HERO11 Black

    @@ -10038,7 +13619,8 @@

    Limitations

    - + + @@ -10048,11 +13630,24 @@

    Limitations

    -
    Supported Cameras
    0 Off HERO11 Black On HERO11 Black
    -
    178
    integer
    Enum: 0 1
    + +178 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Wireless Band

    HERO12 Black HERO11 Black Mini HERO11 Black

    @@ -10084,21 +13680,39 @@

    Limitations

    Supported Cameras - + + 0 2.4GHz -HERO12 BlackHERO11 Black MiniHERO11 Black + +HERO12 BlackHERO11 Black MiniHERO11 Black + 1 5GHz -HERO12 BlackHERO11 Black MiniHERO11 Black - - -
    179
    integer
    Enum: 1 2 3
    HERO11 Black MiniHERO11 Black + + + + +
    +
    + + + +179 + +
    +
    +integer +
    +
    + Enum: 1 2 3
    +

    Trail Length

    HERO12 Black HERO11 Black Mini HERO11 Black

    @@ -10135,24 +13750,44 @@

    Limitations

    Supported Cameras - + + 1 Short -HERO12 BlackHERO11 Black MiniHERO11 Black + +HERO12 BlackHERO11 Black MiniHERO11 Black + 2 Long -HERO12 BlackHERO11 Black MiniHERO11 Black + +HERO12 BlackHERO11 Black MiniHERO11 Black + 3 Max -HERO12 BlackHERO11 Black MiniHERO11 Black - - -
    180
    integer
    Enum: 0 101 102
    HERO11 Black MiniHERO11 Black + + + + +
    +
    + + + +180 + +
    +
    +integer +
    +
    + Enum: 0 101 102
    +

    Video Mode

    HERO11 Black

    @@ -10187,7 +13823,8 @@

    Limitations

    - + + @@ -10202,9 +13839,22 @@

    Limitations

    -
    Supported Cameras
    0 Highest Quality HERO11 Black Longest Battery (Green Icon) HERO11 Black
    -
    182
    integer
    Enum: 0 1
    + +182 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Bit Rate

    HERO12 Black

    @@ -10234,7 +13885,8 @@

    Limitations

    - + + @@ -10244,9 +13896,22 @@

    Limitations

    -
    Supported Cameras
    0 Standard HERO12 Black High HERO12 Black
    -
    183
    integer
    Enum: 0 2
    + +183 + +
    +
    +integer +
    +
    + Enum: 0 2
    +

    Bit Depth

    HERO12 Black

    @@ -10276,7 +13942,8 @@

    Limitations

    - + + @@ -10286,9 +13953,22 @@

    Limitations

    -
    Supported Cameras
    0 8-Bit HERO12 Black 10-Bit HERO12 Black
    -
    184
    integer
    Enum: 0 1 2
    + +184 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Profiles

    HERO12 Black

    @@ -10323,7 +14004,8 @@

    Limitations

    - + + @@ -10338,9 +14020,22 @@

    Limitations

    -
    Supported Cameras
    0 Standard HERO12 Black Log HERO12 Black
    -
    186
    integer
    Enum: 0 1 2
    + +186 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Video Mode

    HERO12 Black

    @@ -10375,7 +14071,8 @@

    Limitations

    - + + @@ -10390,9 +14087,22 @@

    Limitations

    -
    Supported Cameras
    0 Highest Quality HERO12 Black Basic Quality HERO12 Black
    -
    187
    integer
    Enum: 0 1 2 3 4 5 6 7
    + +187 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7
    +

    Lapse Mode

    HERO12 Black

    @@ -10452,7 +14163,8 @@

    Limitations

    - + + @@ -10492,9 +14204,22 @@

    Limitations

    -
    Supported Cameras
    0 TimeWarp HERO12 Black Max Vehicle Lights HERO12 Black
    -
    189
    integer
    Enum: 0 1 2
    + +189 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Max Lens Mod

    HERO12 Black

    @@ -10529,7 +14255,8 @@

    Limitations

    - + + @@ -10544,9 +14271,22 @@

    Limitations

    -
    Supported Cameras
    0 None HERO12 Black Max Lens 2.0 HERO12 Black
    -
    190
    integer
    Enum: 0 1
    + +190 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Max Lens Mod Enable

    HERO12 Black

    @@ -10576,7 +14317,8 @@

    Limitations

    - + + @@ -10586,9 +14328,22 @@

    Limitations

    -
    Supported Cameras
    0 Off HERO12 Black On HERO12 Black
    -
    191
    integer
    Enum: 0 1
    + +191 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Photo Mode

    HERO12 Black

    @@ -10618,7 +14374,8 @@

    Limitations

    - + + @@ -10628,9 +14385,22 @@

    Limitations

    -
    Supported Cameras
    0 Super Photo HERO12 Black Night Photo HERO12 Black
    -
    192
    integer
    Enum: 0 1 3
    + +192 + +
    +
    +integer +
    +
    + Enum: 0 1 3
    +

    Aspect Ratio

    HERO12 Black

    @@ -10665,7 +14436,8 @@

    Limitations

    - + + @@ -10680,9 +14452,22 @@

    Limitations

    -
    Supported Cameras
    0 4:3 HERO12 Black 8:7 HERO12 Black
    -
    193
    integer
    Enum: 0 1 2
    + +193 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Framing

    HERO12 Black

    @@ -10717,7 +14503,8 @@

    Limitations

    - + + @@ -10732,27 +14519,70 @@

    Limitations

    -
    Supported Cameras
    0 Widescreen HERO12 Black Full Frame HERO12 Black
    -
    object

    All currently known status values indexed by status ID

    -
    +
    1
    integer
    Enum: 0 1

    Is the system's internal battery present?

    +
    +
    +
    + +
    + + + + + + +
    +
    +object +
    +

    All currently known status values indexed by status ID

    +
    +
    + + + +
    + + + + +
    +1 +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the system's internal battery present?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    2
    integer
    Enum: 0 1 2 3 4
    +
    +2 +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4
    +

    Rough approximation of internal battery level in bars (or charging)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -10794,7 +14625,8 @@

    Limitations

    - + + @@ -10814,97 +14646,199 @@

    Limitations

    -
    Meaning
    0 Zero
    4 Charging
    -
    6
    integer
    Enum: 0 1

    Is the system currently overheating?

    +
    +
    +
    + + + +6 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the system currently overheating?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    8
    integer
    Enum: 0 1

    Is the camera busy?

    +
    +
    + + + +8 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the camera busy?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    9
    integer
    Enum: 0 1

    Is Quick Capture feature enabled?

    +
    +
    + + + +9 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Quick Capture feature enabled?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    10
    integer
    Enum: 0 1

    Is the system currently encoding?

    +
    +
    + + + +10 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the system currently encoding?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    11
    integer
    Enum: 0 1

    Is LCD lock active?

    +
    +
    + + + +11 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is LCD lock active?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    13
    integer

    When encoding video, this is the duration (seconds) of the video so far; 0 otherwise

    +
    +
    + + + +13 + +
    +
    +integer +
    +

    When encoding video, this is the duration (seconds) of the video so far; 0 otherwise

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    17
    integer
    Enum: 0 1

    Are Wireless Connections enabled?

    +HERO9 Black

    +
    +
    + + + +17 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Are Wireless Connections enabled?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    19
    integer
    Enum: 0 1 2 3 4
    + +19 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4
    +

    The pairing state of the camera

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -10946,7 +14881,8 @@

    Limitations

    - + + @@ -10966,13 +14902,26 @@

    Limitations

    -
    Meaning
    0 Never Started
    4 Completed
    -
    20
    integer
    Enum: 0 1 2 3
    + +20 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3
    +

    The last type of pairing in which the camera was engaged

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -11010,7 +14960,8 @@

    Limitations

    - + + @@ -11026,23 +14977,47 @@

    Limitations

    -
    Meaning
    0 Not Pairing
    3 Pairing Bluetooth Device
    -
    21
    integer

    Time since boot (milliseconds) of last successful pairing complete action

    + + +
    +
    + + + +21 + +
    +
    +integer +
    +

    Time since boot (milliseconds) of last successful pairing complete action

    HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    22
    integer
    Enum: 0 1 2 3 4
    + +22 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4
    +

    State of current scan for WiFi Access Points

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -11084,7 +15060,8 @@

    Limitations

    - + + @@ -11104,25 +15081,49 @@

    Limitations

    -
    Meaning
    0 Never started
    4 Completed
    -
    23
    integer

    Time since boot (milliseconds) that the WiFi Access Point scan completed

    + + +
    +
    + + + +23 + +
    +
    +integer +
    +

    Time since boot (milliseconds) that the WiFi Access Point scan completed

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    24
    integer
    Enum: 0 1 2 3 4
    + +24 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4
    +

    WiFi AP provisioning state

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -11164,7 +15166,8 @@

    Limitations

    - + + @@ -11184,93 +15187,187 @@

    Limitations

    -
    Meaning
    0 Never started
    4 Completed
    -
    26
    integer

    Wireless remote control version

    + + +
    +
    + + + +26 + +
    +
    +integer +
    +

    Wireless remote control version

    HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    27
    integer
    Enum: 0 1

    Is a wireless remote control connected?

    +HERO9 Black

    +
    +
    + + + +27 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is a wireless remote control connected?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    28
    integer

    Wireless Pairing State. Each bit contains state information (see WirelessPairingStateFlags)

    +
    +
    + + + +28 + +
    +
    +integer +
    +

    Wireless Pairing State. Each bit contains state information (see WirelessPairingStateFlags)

    HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    29
    string

    SSID of the AP the camera is currently connected to. On BLE connection, value is big-endian byte-encoded int32

    +
    +
    + + + +29 + +
    +
    +string +
    +

    SSID of the AP the camera is currently connected to. On BLE connection, value is big-endian byte-encoded int32

    HERO12 Black HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    30
    string

    The camera's WiFi SSID. On BLE connection, value is big-endian byte-encoded int32

    +
    +
    + + + +30 + +
    +
    +string +
    +

    The camera's WiFi SSID. On BLE connection, value is big-endian byte-encoded int32

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    31
    integer

    The number of wireless devices connected to the camera

    +HERO9 Black

    +
    +
    + + + +31 + +
    +
    +integer +
    +

    The number of wireless devices connected to the camera

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    32
    integer
    Enum: 0 1

    Is Preview Stream enabled?

    +
    +
    + + + +32 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Preview Stream enabled?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    33
    integer
    Enum: -1 0 1 2 3 4 8
    + +33 + +
    +
    +integer +
    +
    + Enum: -1 0 1 2 3 4 8
    +

    Primary Storage Status

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -11320,7 +15418,8 @@

    Limitations

    - + + @@ -11348,59 +15447,116 @@

    Limitations

    -
    Meaning
    -1 Unknown
    8 SD Card Swapped
    -
    34
    integer

    How many photos can be taken with current settings before sdcard is full

    + + +
    +
    + + + +34 + +
    +
    +integer +
    +

    How many photos can be taken with current settings before sdcard is full

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    35
    integer

    How many minutes of video can be captured with current settings before sdcard is full

    +HERO9 Black

    +
    +
    + + + +35 + +
    +
    +integer +
    +

    How many minutes of video can be captured with current settings before sdcard is full

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    38
    integer

    Total number of photos on sdcard

    +HERO9 Black

    +
    +
    + + + +38 + +
    +
    +integer +
    +

    Total number of photos on sdcard

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    39
    integer

    Total number of videos on sdcard

    +
    +
    + + + +39 + +
    +
    +integer +
    +

    Total number of videos on sdcard

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    41
    integer
    Enum: 0 1 2 3 4 5 6 7 8 9 10
    + +41 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10
    +

    The current status of Over The Air (OTA) update

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -11466,7 +15623,8 @@

    Limitations

    - + + @@ -11510,120 +15668,238 @@

    Limitations

    -
    Meaning
    0 Idle
    10 GoPro App: Ready
    -
    42
    integer
    Enum: 0 1

    Is there a pending request to cancel a firmware update download?

    + + +
    +
    + + + +42 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is there a pending request to cancel a firmware update download?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    45
    integer
    Enum: 0 1

    Is locate camera feature active?

    +
    +
    + + + +45 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is locate camera feature active?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    49
    integer

    The current timelapse interval countdown value (e.g. 5...4...3...2...1...)

    +
    +
    + + + +49 + +
    +
    +integer +
    +

    The current timelapse interval countdown value (e.g. 5...4...3...2...1...)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    54
    integer

    Remaining space on the sdcard in Kilobytes

    +
    +
    + + + +54 + +
    +
    +integer +
    +

    Remaining space on the sdcard in Kilobytes

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    55
    integer
    Enum: 0 1

    Is preview stream supported in current recording/mode/secondary-stream?

    +
    +
    + + + +55 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is preview stream supported in current recording/mode/secondary-stream?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    56
    integer

    WiFi signal strength in bars

    +
    +
    + + + +56 + +
    +
    +integer +
    +

    WiFi signal strength in bars

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    58
    integer

    The number of hilights in currently-encoding video (value is set to 0 when encoding stops)

    +
    +
    + + + +58 + +
    +
    +integer +
    +

    The number of hilights in currently-encoding video (value is set to 0 when encoding stops)

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    59
    integer

    Time since boot (milliseconds) of most recent hilight in encoding video (set to 0 when encoding stops)

    +HERO9 Black

    +
    +
    + + + +59 + +
    +
    +integer +
    +

    Time since boot (milliseconds) of most recent hilight in encoding video (set to 0 when encoding stops)

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    60
    integer

    The minimum time between camera status updates (milliseconds). Best practice is to not poll for status more often than this

    +HERO9 Black

    +
    +
    + + + +60 + +
    +
    +integer +
    +

    The minimum time between camera status updates (milliseconds). Best practice is to not poll for status more often than this

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    65
    integer
    Enum: 0 1 2 3
    + +65 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3
    +

    Liveview Exposure Select Mode

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -11660,7 +15937,8 @@

    Limitations

    - + + @@ -11676,69 +15954,141 @@

    Limitations

    -
    Meaning
    0 Disabled
    3 Hemisphere
    -
    66
    integer [ 0 .. 100 ]

    Liveview Exposure Select: y-coordinate (percent)

    + + +
    +
    + + + +66 + +
    +
    +integer [ 0 .. 100 ] +
    +

    Liveview Exposure Select: y-coordinate (percent)

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    67
    integer [ 0 .. 100 ]

    Liveview Exposure Select: y-coordinate (percent)

    +HERO9 Black

    +
    +
    + + + +67 + +
    +
    +integer [ 0 .. 100 ] +
    +

    Liveview Exposure Select: y-coordinate (percent)

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    68
    integer
    Enum: 0 1

    Does the camera currently have a GPS lock?

    +HERO9 Black

    +
    +
    + + + +68 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Does the camera currently have a GPS lock?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    69
    integer
    Enum: 0 1

    Is AP mode enabled?

    +
    +
    + + + +69 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is AP mode enabled?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    70
    integer [ 0 .. 100 ]

    Internal battery level (percent)

    +
    +
    + + + +70 + +
    +
    +integer [ 0 .. 100 ] +
    +

    Internal battery level (percent)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    74
    integer
    Enum: 0 1 2
    + +74 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Microphone Accessory status

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -11772,7 +16123,8 @@

    Limitations

    - + + @@ -11784,25 +16136,49 @@

    Limitations

    -
    Meaning
    0 Accessory not connected
    2 Accessory connected and a microphone is plugged into the accessory
    -
    75
    integer [ 0 .. 100 ]

    Digital Zoom level (percent)

    + + +
    +
    + + + +75 + +
    +
    +integer [ 0 .. 100 ] +
    +

    Digital Zoom level (percent)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    76
    integer
    Enum: 0 1
    + +76 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Wireless Band

    HERO12 Black HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -11832,7 +16209,8 @@

    Limitations

    - + + @@ -11840,91 +16218,195 @@

    Limitations

    -
    Meaning
    0 2.4 GHz
    1 5 GHz
    -
    77
    integer
    Enum: 0 1

    Is Digital Zoom feature available?

    + + +
    +
    + + + +77 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Digital Zoom feature available?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    78
    integer
    Enum: 0 1

    Are current video settings mobile friendly? (related to video compression and frame rate)

    +
    +
    + + + +78 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Are current video settings mobile friendly? (related to video compression and frame rate)

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    79
    integer
    Enum: 0 1

    Is the camera currently in First Time Use (FTU) UI flow?

    +HERO9 Black

    +
    +
    + + + +79 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the camera currently in First Time Use (FTU) UI flow?

    HERO10 Black - HERO9 Black

    -
    81
    integer
    Enum: 0 1

    Is 5GHz wireless band available?

    +HERO9 Black

    +
    +
    + + + +81 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is 5GHz wireless band available?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    82
    integer
    Enum: 0 1

    Is the system fully booted and ready to accept commands?

    +
    +
    + + + +82 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the system fully booted and ready to accept commands?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    83
    integer
    Enum: 0 1

    Is the internal battery charged sufficiently to start Over The Air (OTA) update?

    +
    +
    + + + +83 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the internal battery charged sufficiently to start Over The Air (OTA) update?

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    85
    integer
    Enum: 0 1

    Is the camera getting too cold to continue recording?

    +HERO9 Black

    +
    +
    + + + +85 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the camera getting too cold to continue recording?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    86
    integer
    Enum: 0 1 2 3
    + +86 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3
    +

    Rotational orientation of the camera

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -11962,7 +16445,8 @@

    Limitations

    - + + @@ -11978,135 +16462,273 @@

    Limitations

    -
    Meaning
    0 0 degrees (upright)
    3 270 degrees (laying on left side)
    -
    88
    integer
    Enum: 0 1

    Is this camera model capable of zooming while encoding?

    + + +
    +
    + + + +88 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is this camera model capable of zooming while encoding?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    89
    integer

    Current Flatmode ID

    +
    +
    + + + +89 + +
    +
    +integer +
    +

    Current Flatmode ID

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    93
    integer

    Current Video Preset (ID)

    +
    +
    + + + +93 + +
    +
    +integer +
    +

    Current Video Preset (ID)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    94
    integer

    Current Photo Preset (ID)

    +
    +
    + + + +94 + +
    +
    +integer +
    +

    Current Photo Preset (ID)

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    95
    integer

    Current Time Lapse Preset (ID)

    +HERO9 Black

    +
    +
    + + + +95 + +
    +
    +integer +
    +

    Current Time Lapse Preset (ID)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    96
    integer

    Current Preset Group (ID) (corresponds to ui_mode_groups in settings.json)

    +
    +
    + + + +96 + +
    +
    +integer +
    +

    Current Preset Group (ID) (corresponds to ui_mode_groups in settings.json)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    97
    integer

    Current Preset (ID)

    +
    +
    + + + +97 + +
    +
    +integer +
    +

    Current Preset (ID)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    98
    integer

    Preset Modified Status, which contains an event ID and a Preset (Group) ID

    +
    +
    + + + +98 + +
    +
    +integer +
    +

    Preset Modified Status, which contains an event ID and a Preset (Group) ID

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    99
    integer

    The number of Live Bursts can be captured with current settings before sdcard is full

    +
    +
    + + + +99 + +
    +
    +integer +
    +

    The number of Live Bursts can be captured with current settings before sdcard is full

    HERO11 Black HERO10 Black - HERO9 Black

    -
    100
    integer

    Total number of Live Bursts on sdcard

    +HERO9 Black

    +
    +
    + + + +100 + +
    +
    +integer +
    +

    Total number of Live Bursts on sdcard

    HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    101
    integer
    Enum: 0 1

    Is Capture Delay currently active (i.e. counting down)?

    +
    +
    + + + +101 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Capture Delay currently active (i.e. counting down)?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    102
    integer
    Enum: 0 2 3
    + +102 + +
    +
    +integer +
    +
    + Enum: 0 2 3
    +

    Media Mod state

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -12140,7 +16763,8 @@

    Limitations

    - + + @@ -12152,13 +16776,26 @@

    Limitations

    -
    Meaning
    0 Media Mod microphone removed
    3 Media Mod microphone with external microphone
    -
    103
    integer
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12
    + +103 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12
    +

    Time Warp Speed

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -12232,7 +16870,8 @@

    Limitations

    - + + @@ -12284,19 +16923,45 @@

    Limitations

    -
    Meaning
    0 15x
    12 1/2x (slow-motion)
    -
    104
    integer
    Enum: 0 1

    Is the system's Linux core active?

    + + +
    +
    + + + +104 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the system's Linux core active?

    HERO10 Black - HERO9 Black

    -
    105
    integer
    Enum: 0 1 2

    +
    +
    + + + +105 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Camera lens type (reflects changes to lens settings such as 162, 189, 194, ...)

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -12330,7 +16996,8 @@

    Limitations

    - + + @@ -12342,42 +17009,92 @@

    Limitations

    -
    Meaning
    0 Default
    2 Max Lens 2.0
    -
    106
    integer
    Enum: 0 1

    Is Video Hindsight Capture Active?

    + + +
    +
    + + + +106 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Video Hindsight Capture Active?

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    107
    integer

    Scheduled Capture Preset ID

    +HERO9 Black

    +
    +
    + + + +107 + +
    +
    +integer +
    +

    Scheduled Capture Preset ID

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    108
    integer
    Enum: 0 1

    Is Scheduled Capture set?

    +HERO9 Black

    +
    +
    + + + +108 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Scheduled Capture set?

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    110
    integer
    Enum: 0 1 2 3 4 5 6 7

    +
    +
    + + + +110 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7
    +

    Display Mod Status (bitmasked)

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -12430,7 +17148,8 @@

    Limitations

    - + + @@ -12462,44 +17181,94 @@

    Limitations

    -
    Meaning
    0 000 = Display Mod: 0, HDMI: 0, Display Mod Connected: False
    7 111 = Display Mod: 1, HDMI: 1, Display Mod Connected: True
    -
    111
    integer
    Enum: 0 1

    Does sdcard meet specified minimum write speed?

    + + +
    +
    + + + +111 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Does sdcard meet specified minimum write speed?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black

    -
    112
    integer

    Number of sdcard write speed errors since device booted

    +HERO10 Black

    +
    +
    + + + +112 + +
    +
    +integer +
    +

    Number of sdcard write speed errors since device booted

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black

    -
    113
    integer
    Enum: 0 1

    Is Turbo Transfer active?

    +HERO10 Black

    +
    +
    + + + +113 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Turbo Transfer active?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    114
    integer
    Enum: 0 1 2
    + +114 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Camera control status ID

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black

    +HERO10 Black

    @@ -12532,7 +17302,8 @@

    Limitations

    - + + @@ -12544,22 +17315,48 @@

    Limitations

    -
    Meaning
    0 Camera Idle: No one is attempting to change camera settings
    2 Camera External Control: An outside entity (app) has control and is in a menu or modifying settings
    -
    115
    integer
    Enum: 0 1

    Is the camera connected to a PC via USB?

    + + +
    +
    + + + +115 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the camera connected to a PC via USB?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black

    -
    116
    integer
    Enum: 0 1

    +
    +
    + + + +116 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Camera control over USB state

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black

    +HERO10 Black

    @@ -12588,7 +17386,8 @@

    Limitations

    - + + @@ -12596,20 +17395,431 @@

    Limitations

    -
    Meaning
    0 Disabled
    1 Enabled
    -
    117
    integer

    Total SD card capacity in Kilobytes

    + + +
    +
    + + + +117 + +
    +
    +integer +
    +

    Total SD card capacity in Kilobytes

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black

    -
    118
    integer

    Photo interval capture count

    +
    +
    + + + +118 + +
    +
    +integer +
    +

    Photo interval capture count

    HERO12 Black

    -
    {
    • "settings": {
      },
    • "status": {
      }
    }

    VideoMetadata

    + + +
    ct
    required
    integer
    Enum: 0 1 2 3 4 5 6 8 9 10 11 12
    +
    + +
    +
    {
      +
    • +"settings": {
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +}, +
    • +
    • +"status": {
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +} +
    • +
    +}
    +
    +
    + +
    +

    +VideoMetadata

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +ct<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 8 9 10 11 12
    Limitations <td>12</td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg">

    Media content type

    +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +

    Media content type

    @@ -12674,7 +17885,8 @@

    Limitations

    - + + @@ -12722,58 +17934,433 @@

    Limitations

    -
    Mode
    Video 0
    Live Burst 12
    -
    cre
    required
    integer
    Example: "1692992748"

    Creation time in seconds since epoch

    -
    s
    required
    integer
    Example: "1234567890"

    File size in bytes

    -
    gumi
    required
    string
    Example: "12345678998765443211234567899875"

    Globally Unique Media ID

    -
    h
    required
    integer
    Example: "1080"

    Height of media in pixels

    -
    w
    required
    integer
    Example: "1920"

    Width of media in pixels

    -
    hc
    required
    integer [ 0 .. 99 ]

    Number of hilights in media

    -
    eis
    required
    integer
    Enum: 0 1

    1 if stabilized, 0 otherwise

    -
    mp
    required
    integer
    Enum: 0 1

    1 if metadata is present, 0 otherwise

    -
    rot
    required
    string

    Deprecated

    -
    tr
    required
    integer
    Enum: 0 1

    1 if file is transcoded, 0 otherwise

    -
    us
    required
    integer
    Enum: 0 1

    Has the file been uploaded? 0 if no, 1 if yes

    -
    ao
    required
    string
    Enum: "auto" "wind" "stereo" "off"
    Example: "auto"

    Audio option

    -
    profile
    required
    integer [ 0 .. 255 ]

    Advanced Video Codec Level

    -
    avc_profile
    required
    integer [ 0 .. 255 ]
    Example: "0"

    Advanced Video Code Profile

    -
    cl
    required
    integer
    Enum: 0 1

    1 if clipped, 0 otherwise

    -
    dur
    required
    integer
    Example: "42"

    Video duration in seconds

    -
    fps
    required
    integer
    Example: "1001"

    Video frame rate numerator

    -
    fps_denom
    required
    integer
    Example: "30000"

    Video frame rate denominator

    -
    ls
    required
    integer [ -1 .. 1234567890 ]

    Low Resolution Video file size in bytes. -1 if there is no LRV file

    -
    pta
    required
    integer
    Enum: 0 1

    1 if protune audio is present, 0 otherwise

    -
    subsample
    required
    integer
    Enum: 0 1

    1 if subsampled from other video, 0 otherwise

    -
    fov
    string

    Field of View

    -
    hi
    Array of integers
    Example: "1500,4700"

    List of hilights in ms offset from start of video

    -
    lc
    integer
    Enum: 0 1

    Lens configuration ==> 0 for front, 1 for rear

    -
    mos
    Array of strings
    Items Enum: "app" "pc" "other"
    Example: "app,pc"

    List of offload states

    -
    prjn
    integer
    Enum: 0 1 2 3 4 5 6 7 8
    +
    +cre<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1692992748" +
    +
    +

    Creation time in seconds since epoch

    +
    +
    +
    +s<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1234567890" +
    +
    +

    File size in bytes

    +
    +
    +
    +gumi<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: "12345678998765443211234567899875" +
    +
    +

    Globally Unique Media ID

    +
    +
    +
    +h<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1080" +
    +
    +

    Height of media in pixels

    +
    +
    +
    +w<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1920" +
    +
    +

    Width of media in pixels

    +
    +
    +
    +hc<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer [ 0 .. 99 ] +
    +

    Number of hilights in media

    +
    +
    +
    +eis<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if stabilized, 0 otherwise

    +
    +
    +
    +mp<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if metadata is present, 0 otherwise

    +
    +
    +
    +rot<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    +

    Deprecated

    +
    +
    +
    +tr<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if file is transcoded, 0 otherwise

    +
    +
    +
    +us<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Has the file been uploaded? 0 if no, 1 if yes

    +
    +
    +
    +ao<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    +
    + Enum: "auto" "wind" "stereo" "off"
    + Example: "auto" +
    +
    +

    Audio option

    +
    +
    +
    +profile<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer [ 0 .. 255 ] +
    +

    Advanced Video Codec Level

    +
    +
    +
    +avc_profile<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer [ 0 .. 255 ] +
    + Example: "0" +
    +
    +

    Advanced Video Code Profile

    +
    +
    +
    +cl<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if clipped, 0 otherwise

    +
    +
    +
    +dur<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "42" +
    +
    +

    Video duration in seconds

    +
    +
    +
    +fps<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "1001" +
    +
    +

    Video frame rate numerator

    +
    +
    +
    +fps_denom<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    + Example: "30000" +
    +
    +

    Video frame rate denominator

    +
    +
    +
    +ls<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer [ -1 .. 1234567890 ] +
    +

    Low Resolution Video file size in bytes. -1 if there is no LRV file

    +
    +
    +
    +pta<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if protune audio is present, 0 otherwise

    +
    +
    +
    +subsample<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    +

    1 if subsampled from other video, 0 otherwise

    +
    +
    +
    +fov + +
    +
    +string +
    +

    Field of View

    +
    +
    +
    +hi + +
    +
    +Array of integers +
    + Example: "1500,4700" +
    +
    +

    List of hilights in ms offset from start of video

    +
    +
    +
    +lc + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Lens configuration ==> 0 for front, 1 for rear

    +
    +
    +
    +mos + +
    +
    +Array of strings +
    +
    +Items Enum: "app" "pc" "other"
    + Example: "app,pc" +
    +
    +

    List of offload states

    +
    +
    +
    +prjn + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8
    Limitations <td>8</td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg">

    Lens projection

    +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +

    Lens projection

    @@ -12826,7 +18414,8 @@

    Limitations

    - + + @@ -12862,44 +18451,191 @@

    Limitations

    -
    Mode
    EAC 0
    Hemisheric 8
    -
    progr
    integer
    Enum: 0 1

    Is video progressive? 1 if progressive, 0 if interlaced

    -
    {
    • "ao": "auto",
    • "avc_profile": 0,
    • "cl": 0,
    • "cre": 1692992748,
    • "ct": 0,
    • "dur": 42,
    • "eis": 0,
    • "fov": "string",
    • "fps": 1001,
    • "fps_denom": 30000,
    • "gumi": "12345678998765443211234567899875",
    • "h": 1080,
    • "hc": 99,
    • "hi": [
      ],
    • "lc": 0,
    • "ls": -1,
    • "mos": [
      ],
    • "mp": 0,
    • "prjn": 0,
    • "profile": 255,
    • "progr": 0,
    • "pta": 0,
    • "rot": "string",
    • "s": 1234567890,
    • "subsample": 0,
    • "tr": 0,
    • "us": 0,
    • "w": 1920
    }

    OTA

    +
    +progr + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is video progressive? 1 if progressive, 0 if interlaced

    +
    +
    +
    +
    +
    + +
    +
    {
      +
    • +"ao": "auto", +
    • +
    • +"avc_profile": 0, +
    • +
    • +"cl": 0, +
    • +
    • +"cre": 1692992748, +
    • +
    • +"ct": 0, +
    • +
    • +"dur": 42, +
    • +
    • +"eis": 0, +
    • +
    • +"fov": "string", +
    • +
    • +"fps": 1001, +
    • +
    • +"fps_denom": 30000, +
    • +
    • +"gumi": "12345678998765443211234567899875", +
    • +
    • +"h": 1080, +
    • +
    • +"hc": 99, +
    • +
    • +"hi": [
        +
      • +
      • +
      +], +
    • +
    • +"lc": 0, +
    • +
    • +"ls": -1, +
    • +
    • +"mos": [
        +
      • +
      • +
      +], +
    • +
    • +"mp": 0, +
    • +
    • +"prjn": 0, +
    • +
    • +"profile": 255, +
    • +
    • +"progr": 0, +
    • +
    • +"pta": 0, +
    • +
    • +"rot": "string", +
    • +
    • +"s": 1234567890, +
    • +
    • +"subsample": 0, +
    • +
    • +"tr": 0, +
    • +
    • +"us": 0, +
    • +
    • +"w": 1920 +
    • +
    +}
    +
    +
    +
    +
    +

    +OTA

    +
    +

    The Over The Air (OTA) update feature allows the user to update the camera's firmware via HTTP connection. There are two ways to perform OTA updates: Simple OTA Update and Resumable OTA Update.

    -

    Firmware update files can be obtained from GoPro's update page or programmatically +

    Firmware update files can be obtained from GoPro's update page or programmatically using the firmware catalog.

    In order to complete the firmware update process, the camera will reboot one or more times. This will cause any existing HTTP connections to be lost.

    -

    Simple OTA Update

    +

    +Simple OTA Update

    +
    +

    The simple OTA update process is done by sending an entire update file to the camera in a single HTTP/POST. Details can be found in the diagram below.

    simple ota state diagram

    -

    Resumable OTA Update

    +

    +Resumable OTA Update

    +
    +

    The resumable OTA update process involves uploading chunks (or all) of a file, marking the file complete and then telling the camera to begin the update process. Chunks are stored until they are explicitly deleted, allowing the client to stop and resume as needed. Details can be found in the diagram below.

    simple ota state diagram

    -

    Resumable OTA Update

    +
    +

    +Resumable OTA Update

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -12921,7 +18658,23 @@

    Limitations


    Perform Resumable OTA Update

    To send a portion of the OTA image as per the requestBody specification, do not use the request parameter.

    -
    query Parameters
    request
    string
    Enum: "delete" "showui" "start" "progress" "cancelled"
    Example: request=progress
    query Parameters + + + +
    +request + +
    +
    +string +
    +
    + Enum: "delete" "showui" "start" "progress" "cancelled"
    + Example: request=progress +
    +
    Limitations <td>show canceled/failed ui on the camera</td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg">

    Optional request parameter to control / query OTA functionality.

    +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +

    Optional request parameter to control / query OTA functionality.

    @@ -12958,7 +18712,8 @@

    Limitations

    - + + @@ -12978,18 +18733,135 @@

    Limitations

    + +
    Behavior
    delete Delete any old / cached OTA data
    cancelled show canceled/failed ui on the camera
    +
    +
    +
    +
    +
    Request Body schema: multipart/form-data +
    +
    +

    OTA image chunk used when executed with no request parameter

    +
    + + + + + + + + + + + + +
    +file + +
    +
    +string <binary> +
    +

    Binary file

    +
    +
    +
    +offset + +
    +
    +integer +
    +

    Offset (in bytes) into the file data to start reading from

    +
    +
    +
    +sha1 + +
    +
    +string +
    +

    SHA of the complete firmware upload zip file

    +
    +
    +
    -
    Request Body schema: multipart/form-data

    OTA image chunk used when executed with no request parameter

    -
    file
    string <binary>

    Binary file

    -
    offset
    integer

    Offset (in bytes) into the file data to start reading from

    -
    sha1
    string

    SHA of the complete firmware upload zip file

    -

    Responses

    Response Schema: application/json
    + + + + + + +
    bytes_complete
    integer
    complete
    boolean
    message
    string
    sha1
    string
    status
    integer (OtaStatus)
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12
    Responses +
    +
    +
    Response Schema: application/json +
    + + + + + + + + + + + + + + + + + + + +
    +bytes_complete + +
    +
    +integer +
    +
    +
    +complete + +
    +
    +boolean +
    +
    +
    +message + +
    +
    +string +
    +
    +
    +sha1 + +
    +
    +string +
    +
    +
    +status + +
    +
    +integer (OtaStatus) +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12
    Limitations <td>Insufficient space on the sdcard to hold decompressed update file</td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg">

    OTA Status

    +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +

    OTA Status

    @@ -13072,2248 +18945,993 @@

    Limitations

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Status Description
    0OKNo errors occurred
    1Unknown RequestServer did not recognize the request
    2Bad ParamsParameter values not recognized
    3SHA1 Send MismatchSHA1 for chunk did not match SHA1 of previous chunk(s)
    4SHA1 Calculated MismatchCalculated SHA1 did not match user-specified SHA1
    5HTTP Boundary ErrorHTTP Post was malformed
    6HTTP Post ErrorUnexpected HTTP / Post Content Type
    7Server BusyHTTP server is busy
    8Offset MismatchAttempt to upload chunk with offset that did not align with previous chunk
    9Bad Post DataServer failed to parse POST data
    10File IncompleteTried to start update before server finished validating .zip file
    11Update in progressFirmware update is in progress
    12Insufficient SpaceInsufficient space on the sdcard to hold decompressed update file
    -

    Request samples

    curl --request POST \
    -  --url 'http://10.5.5.9:8080/gp/gpSoftUpdate?request=progress' \
    -  --header 'content-type: multipart/form-data'

    Response samples

    Content type
    application/json
    {
    • "bytes_complete": 0,
    • "complete": true,
    • "message": "string",
    • "sha1": "string",
    • "status": 0
    }

    Simple OTA Update

    HERO11 Black Mini -HERO11 Black - HERO10 Black -HERO9 Black

    -

    Supported Protocols:

    -
      -
    • USB
    • -
    • WIFI
    • -
    -
    -
    Request Body schema: multipart/form-data
    DirectToSD
    integer

    Always set to 1

    -
    file
    string <binary>

    Binary file

    -
    sha1
    string

    SHA of the complete firmware upload zip file

    -
    update
    integer

    Always set to 1

    -

    Responses

    Response Schema: application/json
    status
    integer (OtaStatus)
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12

    OTA Status

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    IDStatusDescription
    0OKNo errors occurred
    1Unknown RequestServer did not recognize the request
    2Bad ParamsParameter values not recognized
    3SHA1 Send MismatchSHA1 for chunk did not match SHA1 of previous chunk(s)
    4SHA1 Calculated MismatchCalculated SHA1 did not match user-specified SHA1
    5HTTP Boundary ErrorHTTP Post was malformed
    6HTTP Post ErrorUnexpected HTTP / Post Content Type
    7Server BusyHTTP server is busy
    8Offset MismatchAttempt to upload chunk with offset that did not align with previous chunk
    9Bad Post DataServer failed to parse POST data
    10File IncompleteTried to start update before server finished validating .zip file
    11Update in progressFirmware update is in progress
    12Insufficient SpaceInsufficient space on the sdcard to hold decompressed update file
    -

    Request samples

    curl --request POST \
    -  --url http://10.5.5.9:8080/gp/gpUpdate \
    -  --header 'content-type: multipart/form-data'

    Response samples

    Content type
    application/json
    {
    • "status": 0
    }

    Presets

    Presets

    The camera organizes many modes of operation into Presets.

    -
    -

    Note: The Preset ID is required to load a Preset via Load Preset.

    -
    -

    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:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    IDSetting
    162Max Lens
    173Video Performance Mode
    175Controls
    177Enable Night Photo
    180Video Mode
    186Video Mode
    187Lapse Mode
    189Max Lens Mod
    190Max Lens Mod Enable
    191Photo Mode
    -

    Preset Groups

    Presets are organized into Preset Groups.

    -

    To find the currently available Presets / Preset Groups, use Get Preset Status.

    -

    Get Available Presets

    HERO12 Black -HERO11 Black Mini - HERO11 Black -HERO10 Black - HERO9 Black

    -

    Supported Protocols:

    -
      -
    • USB
    • -
    • WIFI
    • -
    -
    -

    Get the currently available Preset Groups and Presets, the set of which -depends on the current camera settings.

    -

    Responses

    Response Schema: application/json
    +
    Array of objects

    A list of ranges of icon ID's available for custom presets.

    -
    Array
    length
    integer
    Example: "10"

    number of items in the range

    -
    start
    integer
    Example: "0"

    start index of range

    -
    Array of objects

    A list of ranges of title ID's available for custom presets.

    -
    Array
    length
    integer
    Example: "25"

    number of items in the range

    -
    start
    integer
    Example: "18"

    start index of range

    -
    Array of objects (PresetGroup)

    Array of Preset Groups

    -
    Array
    +
    canAddPreset
    boolean

    Is there room in the group to add additional Presets?

    -
    icon
    integer (EnumPresetGroupIcon)
    Enum: 0 1 2 3 4 5 6 7
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    IDNameSummary
    0PRESET_GROUP_VIDEO_ICON_ID
    1PRESET_GROUP_PHOTO_ICON_ID
    2PRESET_GROUP_TIMELAPSE_ICON_ID
    3PRESET_GROUP_LONG_BAT_VIDEO_ICON_ID
    4PRESET_GROUP_ENDURANCE_VIDEO_ICON_ID
    5PRESET_GROUP_MAX_VIDEO_ICON_ID
    6PRESET_GROUP_MAX_PHOTO_ICON_ID
    7PRESET_GROUP_MAX_TIMELAPSE_ICON_ID
    -
    id
    integer (EnumPresetGroup)
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 1000 1001 1002
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    IDNameSummary
    0PRESET_GROUP_ID_VIDEO_SINGLE_LENSSingle video
    1PRESET_GROUP_ID_PHOTO_SINGLE_LENSSingle photo
    2PRESET_GROUP_ID_TIMELAPSE_SINGLE_LENSSingle timelapse
    3PRESET_GROUP_ID_VIDEO_HEMI_LENSSpherical video hemi lens
    4PRESET_GROUP_ID_PHOTO_HEMI_LENSSpherical photo hemi lens
    5PRESET_GROUP_ID_TIMELAPSE_HEMI_LENSSpherical timelapse hemi lens
    6PRESET_GROUP_ID_SPECIAL_INTERNALSpecial
    7PRESET_GROUP_ID_SPECIAL_HEMISpecial hemi lens
    8PRESET_GROUP_ID_VIDEO_ENDURANCE_SINGLE_LENSVideo battery endurance
    9PRESET_GROUP_ID_VIDEO_LONGEST_BATTERY_SINGLE_LENSVideo longest battery
    10PRESET_GROUP_ID_EASY_VIDEO_SINGLE_LENSEasy single video
    11PRESET_GROUP_ID_EASY_VIDEO_ENDURANCE_SINGLE_LENSEasy video battery endurance
    12PRESET_GROUP_ID_EASY_PHOTO_SINGLE_LENSEasy single photo
    13PRESET_GROUP_ID_EASY_TIMELAPSE_SINGLE_LENSEasy single timelapse
    14PRESET_GROUP_ID_EASY_VIDEO_LONGEST_BATTERY_SINGLE_LENSEasy video longest battery
    15PRESET_GROUP_ID_VIDEO_HEMI_LENS_2Hemi Lens 2 video
    16PRESET_GROUP_ID_PHOTO_HEMI_LENS_2Hemi Lens 2 photo
    17PRESET_GROUP_ID_TIMELAPSE_HEMI_LENS_2Hemi Lens 2 timelapse
    18PRESET_GROUP_ID_SPECIAL_HEMI_LENS_2Hemi Lens 2 special
    19PRESET_GROUP_ID_EASY_VIDEO_HEMI_LENSHemi Lens easy video
    20PRESET_GROUP_ID_EASY_PHOTO_HEMI_LENSHemi Lens easy photo
    21PRESET_GROUP_ID_EASY_TIMELAPSE_HEMI_LENSHemi Lens easy timelapse
    22PRESET_GROUP_ID_EASY_VIDEO_HEMI_LENS_2Hemi Lens 2 easy video
    23PRESET_GROUP_ID_EASY_PHOTO_HEMI_LENS_2Hemi Lens 2 easy photo
    24PRESET_GROUP_ID_EASY_TIMELAPSE_HEMI_LENS_2Hemi Lens 2 easy timelapse
    25PRESET_GROUP_ID_VIDEO_SINGLE_LENS_STANDARDSingle video standard profile - for internal preset switch only
    26PRESET_GROUP_ID_VIDEO_SINGLE_LENS_HDRSingle video hdr profile - for internal preset switch only
    27PRESET_GROUP_ID_VIDEO_SINGLE_LENS_LOGSingle video log profile - for internal preset switch only
    28PRESET_GROUP_ID_VIDEO_SPHERICAL_LENSSpherical video mode
    29PRESET_GROUP_ID_PHOTO_SPHERICAL_LENSSpherical photo mode
    30PRESET_GROUP_ID_TIMELAPSE_SPHERICAL_LENSSpherical timelapse mode
    31PRESET_GROUP_ID_SPECIAL_SPHERICALSpecial spherical lens
    32PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS_STANDARDSpherical video standard profile - for internal preset switch only
    33PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS_LOGSpherical video standard profile - for internal preset switch only
    34PRESET_GROUP_ID_VIDEO_HEMI_LENS_2_STANDARDHemi Lens 2 video standard profile and Hemi Lens 2.5 video standard profile - for internal preset switch only
    35PRESET_GROUP_ID_VIDEO_HEMI_LENS_2_LOGHemi Lens 2 video log profile and Hemi Lens 2.5 video log profile - for internal preset switch only
    36PRESET_GROUP_ID_VIDEO_MACRO_LENSVideo macro lens
    37PRESET_GROUP_ID_PHOTO_MACRO_LENSPhoto macro lens
    38PRESET_GROUP_ID_TIMELAPSE_MACRO_LENSTimelapse macro lens
    39PRESET_GROUP_ID_EASY_VIDEO_MACRO_LENSEasy Video macro lens
    40PRESET_GROUP_ID_EASY_PHOTO_MACRO_LENSEasy Photo macro lens
    41PRESET_GROUP_ID_EASY_TIMELAPSE_MACRO_LENSEasy Timelapse macro lens
    42PRESET_GROUP_ID_VIDEO_MACRO_LENS_STANDARDMacro lens video standard profile - for internal preset switch only
    43PRESET_GROUP_ID_VIDEO_MACRO_LENS_LOGMacro lens video log profile - for internal preset switch only
    44PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENSVideo anamorphic lens
    45PRESET_GROUP_ID_PHOTO_ANAMORPHIC_LENSPhoto anamorphic lens
    46PRESET_GROUP_ID_TIMELAPSE_ANAMORPHIC_LENSTimelapse anamorphic lens
    47PRESET_GROUP_ID_EASY_VIDEO_ANAMORPHIC_LENSEasy Video anamorphic lens
    48PRESET_GROUP_ID_EASY_PHOTO_ANAMORPHIC_LENSEasy Photo anamorphic lens
    49PRESET_GROUP_ID_EASY_TIMELAPSE_ANAMORPHIC_LENSEasy Timelapse anamorphic lens
    50PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS_STANDARDAnamorphic lens video standard profile - for internal preset switch only
    51PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS_LOGAnamorphic lens video log profile - for internal preset switch only
    1000PRESET_GROUP_ID_VIDEO
    1001PRESET_GROUP_ID_PHOTO
    1002PRESET_GROUP_ID_TIMELAPSE
    -
    Array of objects (Preset)

    Array of Presets contained in this Preset Group

    -
    Array
    icon
    integer (EnumPresetIcon)
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 89 90 91 92 93 94 95 96 97 98 99 100 101 102 1000 1001 1002
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + +
    IDNameSummary
    0PRESET_ICON_VIDEO
    1PRESET_ICON_ACTIVITY
    2PRESET_ICON_CINEMATIC
    3PRESET_ICON_PHOTO
    4PRESET_ICON_LIVE_BURST
    5PRESET_ICON_BURST
    6PRESET_ICON_PHOTO_NIGHT
    7PRESET_ICON_TIMEWARP
    8PRESET_ICON_TIMELAPSE
    9PRESET_ICON_NIGHTLAPSE
    10PRESET_ICON_SNAIL
    11PRESET_ICON_VIDEO_2
    12PRESET_ICON_360_VIDEO
    13PRESET_ICON_PHOTO_2
    14PRESET_ICON_PANORAMA
    15PRESET_ICON_BURST_2
    16PRESET_ICON_TIMEWARP_2
    17PRESET_ICON_TIMELAPSE_2
    18PRESET_ICON_CUSTOM
    19PRESET_ICON_AIR
    20PRESET_ICON_BIKE
    21PRESET_ICON_EPIC
    22PRESET_ICON_INDOOR
    23PRESET_ICON_MOTOR
    24PRESET_ICON_MOUNTED
    25PRESET_ICON_OUTDOOR
    26PRESET_ICON_POV
    27PRESET_ICON_SELFIE
    28PRESET_ICON_SKATE
    29PRESET_ICON_SNOW
    30PRESET_ICON_TRAIL
    31PRESET_ICON_TRAVEL
    32PRESET_ICON_WATER
    33PRESET_ICON_LOOPING
    34PRESET_ICON_STARS
    35PRESET_ICON_ACTION
    36PRESET_ICON_FOLLOW_CAM
    37PRESET_ICON_SURF
    38PRESET_ICON_CITY
    39PRESET_ICON_SHAKY
    40PRESET_ICON_CHESTY
    41PRESET_ICON_HELMET
    42PRESET_ICON_BITE
    55PRESET_ICON_MAX_VIDEO
    56PRESET_ICON_MAX_PHOTO
    57PRESET_ICON_MAX_TIMEWARP
    58PRESET_ICON_BASIC
    59PRESET_ICON_ULTRA_SLO_MO
    60PRESET_ICON_STANDARD_ENDURANCE
    61PRESET_ICON_ACTIVITY_ENDURANCE
    62PRESET_ICON_CINEMATIC_ENDURANCE
    63PRESET_ICON_SLOMO_ENDURANCE
    64PRESET_ICON_STATIONARY_1
    65PRESET_ICON_STATIONARY_2
    66PRESET_ICON_STATIONARY_3
    67PRESET_ICON_STATIONARY_4
    70PRESET_ICON_SIMPLE_SUPER_PHOTO
    71PRESET_ICON_SIMPLE_NIGHT_PHOTO
    73PRESET_ICON_HIGHEST_QUALITY_VIDEO
    74PRESET_ICON_STANDARD_QUALITY_VIDEO
    75PRESET_ICON_BASIC_QUALITY_VIDEO
    76PRESET_ICON_STAR_TRAIL
    77PRESET_ICON_LIGHT_PAINTING
    78PRESET_ICON_LIGHT_TRAIL
    79PRESET_ICON_FULL_FRAME
    80PRESET_ICON_EASY_MAX_VIDEO
    81PRESET_ICON_EASY_MAX_PHOTO
    82PRESET_ICON_EASY_MAX_TIMEWARP
    83PRESET_ICON_EASY_MAX_STAR_TRAIL
    84PRESET_ICON_EASY_MAX_LIGHT_PAINTING
    85PRESET_ICON_EASY_MAX_LIGHT_TRAIL
    89PRESET_ICON_MAX_STAR_TRAIL
    90PRESET_ICON_MAX_LIGHT_PAINTING
    91PRESET_ICON_MAX_LIGHT_TRAIL
    92PRESET_ICON_360_BURST
    93PRESET_ICON_360_PHOTO_NIGHT0OKNo errors occurred
    94PRESET_ICON_360_NIGHTLAPSE1Unknown RequestServer did not recognize the request
    95PRESET_ICON_360_TIMELAPSE_PHOTO2Bad ParamsParameter values not recognized
    96PRESET_ICON_360_NIGHTLAPSE_PHOTO3SHA1 Send MismatchSHA1 for chunk did not match SHA1 of previous chunk(s)
    97PRESET_ICON_360_PHOTO4SHA1 Calculated MismatchCalculated SHA1 did not match user-specified SHA1
    98PRESET_ICON_360_TIMELAPSE5HTTP Boundary ErrorHTTP Post was malformed
    99PRESET_ICON_360_TIMEWARP6HTTP Post ErrorUnexpected HTTP / Post Content Type
    100PRESET_ICON_EASY_STANDARD_PROFILE7Server BusyHTTP server is busy
    101PRESET_ICON_EASY_HDR_PROFILE8Offset MismatchAttempt to upload chunk with offset that did not align with previous chunk
    102PRESET_ICON_BURST_SLOMO9Bad Post DataServer failed to parse POST data
    1000PRESET_ICON_TIMELAPSE_PHOTO10File IncompleteTried to start update before server finished validating .zip file
    1001PRESET_ICON_NIGHTLAPSE_PHOTO11Update in progressFirmware update is in progress
    1002PRESET_ICON_MAX12Insufficient SpaceInsufficient space on the sdcard to hold decompressed update file
    +
    +
    +
    -
    id
    integer <int32>

    Unique preset identifier

    -
    isFixed
    boolean

    Is this preset mutable?

    -
    isModified
    boolean

    Has the preset been modified from the factory defaults?

    -
    mode
    integer (EnumFlatMode)
    Enum: -1 4 5 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request POST \
    +  --url 'http://10.5.5.9:8080/gp/gpSoftUpdate?request=progress' \
    +  --header 'content-type: multipart/form-data'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    {
      +
    • +"bytes_complete": 0, +
    • +
    • +"complete": true, +
    • +
    • +"message": "string", +
    • +
    • +"sha1": "string", +
    • +
    • +"status": 0 +
    • +
    +}
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Simple OTA Update

    +
    +

    HERO11 Black Mini +HERO11 Black + HERO10 Black +HERO9 Black

    +

    Supported Protocols:

    +
      +
    • USB
    • +
    • WIFI
    • +
    +
    +
    +
    Request Body schema: multipart/form-data +
    +
    + + + + + + + + + + + + + + + + + +
    +DirectToSD + +
    +
    +integer +
    +

    Always set to 1

    +
    +
    +
    +file + +
    +
    +string <binary> +
    +

    Binary file

    +
    +
    +
    +sha1 + +
    +
    +string +
    +

    SHA of the complete firmware upload zip file

    +
    +
    +
    +update + +
    +
    +integer +
    +

    Always set to 1

    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    + + + +
    +status + +
    +
    +integer (OtaStatus) +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12
    +

    OTA Status

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    IDStatusDescription
    0OKNo errors occurred
    1Unknown RequestServer did not recognize the request
    2Bad ParamsParameter values not recognized
    3SHA1 Send MismatchSHA1 for chunk did not match SHA1 of previous chunk(s)
    4SHA1 Calculated MismatchCalculated SHA1 did not match user-specified SHA1
    5HTTP Boundary ErrorHTTP Post was malformed
    6HTTP Post ErrorUnexpected HTTP / Post Content Type
    7Server BusyHTTP server is busy
    8Offset MismatchAttempt to upload chunk with offset that did not align with previous chunk
    9Bad Post DataServer failed to parse POST data
    10File IncompleteTried to start update before server finished validating .zip file
    11Update in progressFirmware update is in progress
    12Insufficient SpaceInsufficient space on the sdcard to hold decompressed update file
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request POST \
    +  --url http://10.5.5.9:8080/gp/gpUpdate \
    +  --header 'content-type: multipart/form-data'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    {
    • +"status": 0 +
    +}
    +
    +
    +
    +
    +
    +
    +

    +Presets

    +
    +

    +Presets

    +
    +

    The camera organizes many modes of operation into Presets.

    +
    +

    Note: The Preset ID is required to load a Preset via Load Preset.

    +
    +

    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:

    + + + - - + - - - - + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + + +
    IDNameSummarySetting
    -1FLAT_MODE_UNKNOWN
    162Max Lens
    4FLAT_MODE_PLAYBACK173Video Performance Mode
    5FLAT_MODE_SETUP175Controls
    12FLAT_MODE_VIDEO177Enable Night Photo
    13FLAT_MODE_TIME_LAPSE_VIDEO180Video Mode
    15FLAT_MODE_LOOPING186Video Mode
    16FLAT_MODE_PHOTO_SINGLE187Lapse Mode
    17FLAT_MODE_PHOTO189Max Lens Mod
    18FLAT_MODE_PHOTO_NIGHT190Max Lens Mod Enable
    19FLAT_MODE_PHOTO_BURST191Photo Mode
    +
    +
    +
    +

    +Preset Groups

    +
    +

    Presets are organized into Preset Groups.

    +

    To find the currently available Presets / Preset Groups, use Get Preset Status.

    +
    +
    +
    +
    +

    +Get Available Presets

    +
    +

    HERO12 Black +HERO11 Black Mini + HERO11 Black +HERO10 Black + HERO9 Black

    +

    Supported Protocols:

    +
      +
    • USB
    • +
    • WIFI
    • +
    +
    +

    Get the currently available Preset Groups and Presets, the set of which +depends on the current camera settings.

    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    + + + + + + + + + + + + + + + +
    + + +
    +
    +Array of objects +
    +

    A list of ranges of icon ID's available for custom presets.

    +
    +
    +
    +
    +
    Array
    +
    + + + + + + + + +
    +length +
    +
    +integer +
    + Example: "10" +
    +
    +

    number of items in the range

    +
    +
    +start +
    +
    +integer +
    + Example: "0" +
    +
    +

    start index of range

    +
    +
    +
    +
    +
    + + +
    +
    +Array of objects +
    +

    A list of ranges of title ID's available for custom presets.

    +
    +
    +
    +
    +
    Array
    +
    + + + + + + + + +
    +length +
    +
    +integer +
    + Example: "25" +
    +
    +

    number of items in the range

    +
    +
    +start +
    +
    +integer +
    + Example: "18" +
    +
    +

    start index of range

    +
    +
    +
    +
    +
    + + +
    +
    +Array of objects (PresetGroup) +
    +

    Array of Preset Groups

    +
    +
    +
    +
    +
    Array
    +
    + + + + + + + + + + + + + +
    +canAddPreset +
    +
    +boolean +
    +

    Is there room in the group to add additional Presets?

    +
    +
    +icon +
    +
    +integer (EnumPresetGroupIcon) +
    +
    + Enum: 0 1 2 3 4 5 6 7
    + + - - - + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + +
    20FLAT_MODE_TIME_LAPSE_PHOTOIDNameSummary
    21FLAT_MODE_NIGHT_LAPSE_PHOTO0PRESET_GROUP_VIDEO_ICON_ID
    22FLAT_MODE_BROADCAST_RECORD1PRESET_GROUP_PHOTO_ICON_ID
    23FLAT_MODE_BROADCAST_BROADCAST2PRESET_GROUP_TIMELAPSE_ICON_ID
    24FLAT_MODE_TIME_WARP_VIDEO3PRESET_GROUP_LONG_BAT_VIDEO_ICON_ID
    25FLAT_MODE_LIVE_BURST4PRESET_GROUP_ENDURANCE_VIDEO_ICON_ID
    26FLAT_MODE_NIGHT_LAPSE_VIDEO5PRESET_GROUP_MAX_VIDEO_ICON_ID
    27FLAT_MODE_SLOMO6PRESET_GROUP_MAX_PHOTO_ICON_ID
    28FLAT_MODE_IDLE7PRESET_GROUP_MAX_TIMELAPSE_ICON_ID
    +
    +
    +id +
    +
    +integer (EnumPresetGroup) +
    +
    + Enum: 1000 1001 1002
    + + - - - + + + + + - - + + - - + + - - + + -
    29FLAT_MODE_VIDEO_STAR_TRAILIDNameSummary
    30FLAT_MODE_VIDEO_LIGHT_PAINTING1000PRESET_GROUP_ID_VIDEO
    31FLAT_MODE_VIDEO_LIGHT_TRAIL1001PRESET_GROUP_ID_PHOTO
    32FLAT_MODE_VIDEO_BURST_SLOMO1002PRESET_GROUP_ID_TIMELAPSE
    -
    Array of objects (PresetSetting)
    Array
    id
    integer <int32>

    Setting identifier

    -
    isCaption
    boolean

    Does this setting appear on the Preset "pill" in the camera UI?

    -
    value
    integer <int32>

    Setting value

    -
    titleId
    integer (EnumPresetTitle)
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
    +
    + +
    +
    +Array of objects (Preset) +
    +

    Array of Presets contained in this Preset Group

    +
    +
    +
    Array
    +
    + + + + + + + + + + + + + + + + + + +
    +icon +
    +
    +integer (EnumPresetIcon) +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 70 71 73 74 75 76 77 78 79 1000 1001
    Limitations </thead> <tbody><tr> <td>0</td> -<td>PRESET_TITLE_ACTIVITY</td> +<td>PRESET_ICON_VIDEO</td> <td></td> </tr> <tr> <td>1</td> -<td>PRESET_TITLE_STANDARD</td> +<td>PRESET_ICON_ACTIVITY</td> <td></td> </tr> <tr> <td>2</td> -<td>PRESET_TITLE_CINEMATIC</td> +<td>PRESET_ICON_CINEMATIC</td> <td></td> </tr> <tr> <td>3</td> -<td>PRESET_TITLE_PHOTO</td> +<td>PRESET_ICON_PHOTO</td> <td></td> </tr> <tr> <td>4</td> -<td>PRESET_TITLE_LIVE_BURST</td> +<td>PRESET_ICON_LIVE_BURST</td> <td></td> </tr> <tr> <td>5</td> -<td>PRESET_TITLE_BURST</td> +<td>PRESET_ICON_BURST</td> <td></td> </tr> <tr> <td>6</td> -<td>PRESET_TITLE_NIGHT</td> +<td>PRESET_ICON_PHOTO_NIGHT</td> <td></td> </tr> <tr> <td>7</td> -<td>PRESET_TITLE_TIME_WARP</td> +<td>PRESET_ICON_TIMEWARP</td> <td></td> </tr> <tr> <td>8</td> -<td>PRESET_TITLE_TIME_LAPSE</td> +<td>PRESET_ICON_TIMELAPSE</td> <td></td> </tr> <tr> <td>9</td> -<td>PRESET_TITLE_NIGHT_LAPSE</td> +<td>PRESET_ICON_NIGHTLAPSE</td> <td></td> </tr> <tr> <td>10</td> -<td>PRESET_TITLE_VIDEO</td> +<td>PRESET_ICON_SNAIL</td> <td></td> </tr> <tr> <td>11</td> -<td>PRESET_TITLE_SLOMO</td> -<td></td> -</tr> -<tr> -<td>12</td> -<td>PRESET_TITLE_360_VIDEO</td> +<td>PRESET_ICON_VIDEO_2</td> <td></td> </tr> <tr> <td>13</td> -<td>PRESET_TITLE_PHOTO_2</td> +<td>PRESET_ICON_PHOTO_2</td> <td></td> </tr> <tr> <td>14</td> -<td>PRESET_TITLE_PANORAMA</td> +<td>PRESET_ICON_PANORAMA</td> <td></td> </tr> <tr> <td>15</td> -<td>PRESET_TITLE_360_PHOTO</td> +<td>PRESET_ICON_BURST_2</td> <td></td> </tr> <tr> <td>16</td> -<td>PRESET_TITLE_TIME_WARP_2</td> +<td>PRESET_ICON_TIMEWARP_2</td> <td></td> </tr> <tr> <td>17</td> -<td>PRESET_TITLE_360_TIME_WARP</td> +<td>PRESET_ICON_TIMELAPSE_2</td> <td></td> </tr> <tr> <td>18</td> -<td>PRESET_TITLE_CUSTOM</td> +<td>PRESET_ICON_CUSTOM</td> <td></td> </tr> <tr> <td>19</td> -<td>PRESET_TITLE_AIR</td> +<td>PRESET_ICON_AIR</td> <td></td> </tr> <tr> <td>20</td> -<td>PRESET_TITLE_BIKE</td> +<td>PRESET_ICON_BIKE</td> <td></td> </tr> <tr> <td>21</td> -<td>PRESET_TITLE_EPIC</td> +<td>PRESET_ICON_EPIC</td> <td></td> </tr> <tr> <td>22</td> -<td>PRESET_TITLE_INDOOR</td> +<td>PRESET_ICON_INDOOR</td> <td></td> </tr> <tr> <td>23</td> -<td>PRESET_TITLE_MOTOR</td> +<td>PRESET_ICON_MOTOR</td> <td></td> </tr> <tr> <td>24</td> -<td>PRESET_TITLE_MOUNTED</td> +<td>PRESET_ICON_MOUNTED</td> <td></td> </tr> <tr> <td>25</td> -<td>PRESET_TITLE_OUTDOOR</td> -<td></td> -</tr> -<tr> -<td>26</td> -<td>PRESET_TITLE_POV</td> -<td></td> -</tr> -<tr> -<td>27</td> -<td>PRESET_TITLE_SELFIE</td> -<td></td> -</tr> -<tr> -<td>28</td> -<td>PRESET_TITLE_SKATE</td> -<td></td> -</tr> -<tr> -<td>29</td> -<td>PRESET_TITLE_SNOW</td> -<td></td> -</tr> -<tr> -<td>30</td> -<td>PRESET_TITLE_TRAIL</td> -<td></td> -</tr> -<tr> -<td>31</td> -<td>PRESET_TITLE_TRAVEL</td> -<td></td> -</tr> -<tr> -<td>32</td> -<td>PRESET_TITLE_WATER</td> -<td></td> -</tr> -<tr> -<td>33</td> -<td>PRESET_TITLE_LOOPING</td> -<td></td> -</tr> -<tr> -<td>34</td> -<td>PRESET_TITLE_STARS</td> -<td></td> -</tr> -<tr> -<td>35</td> -<td>PRESET_TITLE_ACTION</td> -<td></td> -</tr> -<tr> -<td>36</td> -<td>PRESET_TITLE_FOLLOW_CAM</td> -<td></td> -</tr> -<tr> -<td>37</td> -<td>PRESET_TITLE_SURF</td> -<td></td> -</tr> -<tr> -<td>38</td> -<td>PRESET_TITLE_CITY</td> -<td></td> -</tr> -<tr> -<td>39</td> -<td>PRESET_TITLE_SHAKY</td> -<td></td> -</tr> -<tr> -<td>40</td> -<td>PRESET_TITLE_CHESTY</td> -<td></td> -</tr> -<tr> -<td>41</td> -<td>PRESET_TITLE_HELMET</td> -<td></td> -</tr> -<tr> -<td>42</td> -<td>PRESET_TITLE_BITE</td> -<td></td> -</tr> -<tr> -<td>43</td> -<td>PRESET_TITLE_CUSTOM_CINEMATIC</td> -<td></td> -</tr> -<tr> -<td>44</td> -<td>PRESET_TITLE_DIVE</td> -<td></td> -</tr> -<tr> -<td>45</td> -<td>PRESET_TITLE_FPV</td> -<td></td> -</tr> -<tr> -<td>46</td> -<td>PRESET_TITLE_HDR</td> -<td></td> -</tr> -<tr> -<td>47</td> -<td>PRESET_TITLE_LANDSCAPE</td> -<td></td> -</tr> -<tr> -<td>48</td> -<td>PRESET_TITLE_LOG</td> -<td></td> -</tr> -<tr> -<td>49</td> -<td>PRESET_TITLE_CUSTOM_SLOMO</td> -<td></td> -</tr> -<tr> -<td>50</td> -<td>PRESET_TITLE_TRIPOD</td> -<td></td> -</tr> -<tr> -<td>51</td> -<td>PRESET_TITLE_360_TIMELAPSE</td> -<td></td> -</tr> -<tr> -<td>52</td> -<td>PRESET_TITLE_360_NIGHT_LAPSE</td> -<td></td> -</tr> -<tr> -<td>53</td> -<td>PRESET_TITLE_360_NIGHT_PHOTO</td> -<td></td> -</tr> -<tr> -<td>54</td> -<td>PRESET_TITLE_PANO_TIME_LAPSE</td> -<td></td> -</tr> -<tr> -<td>55</td> -<td>PRESET_TITLE_MAX_VIDEO</td> -<td></td> -</tr> -<tr> -<td>56</td> -<td>PRESET_TITLE_MAX_PHOTO</td> -<td></td> -</tr> -<tr> -<td>57</td> -<td>PRESET_TITLE_MAX_TIMEWARP</td> -<td></td> -</tr> -<tr> -<td>58</td> -<td>PRESET_TITLE_BASIC</td> -<td></td> -</tr> -<tr> -<td>59</td> -<td>PRESET_TITLE_ULTRA_SLO_MO</td> -<td></td> -</tr> -<tr> -<td>60</td> -<td>PRESET_TITLE_STANDARD_ENDURANCE</td> -<td></td> -</tr> -<tr> -<td>61</td> -<td>PRESET_TITLE_ACTIVITY_ENDURANCE</td> -<td></td> -</tr> -<tr> -<td>62</td> -<td>PRESET_TITLE_CINEMATIC_ENDURANCE</td> -<td></td> -</tr> -<tr> -<td>63</td> -<td>PRESET_TITLE_SLOMO_ENDURANCE</td> -<td></td> -</tr> -<tr> -<td>64</td> -<td>PRESET_TITLE_STATIONARY_1</td> -<td></td> -</tr> -<tr> -<td>65</td> -<td>PRESET_TITLE_STATIONARY_2</td> -<td></td> -</tr> -<tr> -<td>66</td> -<td>PRESET_TITLE_STATIONARY_3</td> -<td></td> -</tr> -<tr> -<td>67</td> -<td>PRESET_TITLE_STATIONARY_4</td> -<td></td> -</tr> -<tr> -<td>68</td> -<td>PRESET_TITLE_SIMPLE_VIDEO</td> -<td></td> -</tr> -<tr> -<td>69</td> -<td>PRESET_TITLE_SIMPLE_TIME_WARP</td> +<td>PRESET_ICON_OUTDOOR</td> <td></td> </tr> <tr> -<td>70</td> -<td>PRESET_TITLE_SIMPLE_SUPER_PHOTO</td> +<td>26</td> +<td>PRESET_ICON_POV</td> <td></td> </tr> <tr> -<td>71</td> -<td>PRESET_TITLE_SIMPLE_NIGHT_PHOTO</td> +<td>27</td> +<td>PRESET_ICON_SELFIE</td> <td></td> </tr> <tr> -<td>72</td> -<td>PRESET_TITLE_SIMPLE_VIDEO_ENDURANCE</td> +<td>28</td> +<td>PRESET_ICON_SKATE</td> <td></td> </tr> <tr> -<td>73</td> -<td>PRESET_TITLE_HIGHEST_QUALITY</td> +<td>29</td> +<td>PRESET_ICON_SNOW</td> <td></td> </tr> <tr> -<td>74</td> -<td>PRESET_TITLE_EXTENDED_BATTERY</td> +<td>30</td> +<td>PRESET_ICON_TRAIL</td> <td></td> </tr> <tr> -<td>75</td> -<td>PRESET_TITLE_LONGEST_BATTERY</td> +<td>31</td> +<td>PRESET_ICON_TRAVEL</td> <td></td> </tr> <tr> -<td>76</td> -<td>PRESET_TITLE_STAR_TRAIL</td> +<td>32</td> +<td>PRESET_ICON_WATER</td> <td></td> </tr> <tr> -<td>77</td> -<td>PRESET_TITLE_LIGHT_PAINTING</td> +<td>33</td> +<td>PRESET_ICON_LOOPING</td> <td></td> </tr> <tr> -<td>78</td> -<td>PRESET_TITLE_LIGHT_TRAIL</td> +<td>34</td> +<td>PRESET_ICON_STARS</td> <td></td> </tr> <tr> -<td>79</td> -<td>PRESET_TITLE_FULL_FRAME</td> +<td>35</td> +<td>PRESET_ICON_ACTION</td> <td></td> </tr> <tr> -<td>80</td> -<td>PRESET_TITLE_MAX_LENS_VIDEO</td> +<td>36</td> +<td>PRESET_ICON_FOLLOW_CAM</td> <td></td> </tr> <tr> -<td>81</td> -<td>PRESET_TITLE_MAX_LENS_TIMEWARP</td> +<td>37</td> +<td>PRESET_ICON_SURF</td> <td></td> </tr> <tr> -<td>82</td> -<td>PRESET_TITLE_STANDARD_QUALITY_VIDEO</td> +<td>38</td> +<td>PRESET_ICON_CITY</td> <td></td> </tr> <tr> -<td>83</td> -<td>PRESET_TITLE_BASIC_QUALITY_VIDEO</td> +<td>39</td> +<td>PRESET_ICON_SHAKY</td> <td></td> </tr> <tr> -<td>84</td> -<td>PRESET_TITLE_EASY_MAX_VIDEO</td> +<td>40</td> +<td>PRESET_ICON_CHESTY</td> <td></td> </tr> <tr> -<td>85</td> -<td>PRESET_TITLE_EASY_MAX_PHOTO</td> +<td>41</td> +<td>PRESET_ICON_HELMET</td> <td></td> </tr> <tr> -<td>86</td> -<td>PRESET_TITLE_EASY_MAX_TIMEWARP</td> +<td>42</td> +<td>PRESET_ICON_BITE</td> <td></td> </tr> <tr> -<td>87</td> -<td>PRESET_TITLE_EASY_MAX_STAR_TRAIL</td> +<td>58</td> +<td>PRESET_ICON_BASIC</td> <td></td> </tr> <tr> -<td>88</td> -<td>PRESET_TITLE_EASY_MAX_LIGHT_PAINTING</td> +<td>59</td> +<td>PRESET_ICON_ULTRA_SLO_MO</td> <td></td> </tr> <tr> -<td>89</td> -<td>PRESET_TITLE_EASY_MAX_LIGHT_TRAIL</td> +<td>60</td> +<td>PRESET_ICON_STANDARD_ENDURANCE</td> <td></td> </tr> <tr> -<td>90</td> -<td>PRESET_TITLE_MAX_STAR_TRAIL</td> +<td>61</td> +<td>PRESET_ICON_ACTIVITY_ENDURANCE</td> <td></td> </tr> <tr> -<td>91</td> -<td>PRESET_TITLE_MAX_LIGHT_PAINTING</td> +<td>62</td> +<td>PRESET_ICON_CINEMATIC_ENDURANCE</td> <td></td> </tr> <tr> -<td>92</td> -<td>PRESET_TITLE_MAX_LIGHT_TRAIL</td> +<td>63</td> +<td>PRESET_ICON_SLOMO_ENDURANCE</td> <td></td> </tr> <tr> -<td>93</td> -<td>PRESET_TITLE_HIGHEST_QUALITY_VIDEO</td> +<td>64</td> +<td>PRESET_ICON_STATIONARY_1</td> <td></td> </tr> <tr> -<td>94</td> -<td>PRESET_TITLE_USER_DEFINED_CUSTOM_NAME</td> +<td>65</td> +<td>PRESET_ICON_STATIONARY_2</td> <td></td> </tr> <tr> -<td>95</td> -<td>PRESET_TITLE_360_DEG_BURST</td> -<td>- FW_PRESET_TITLE_360_BURST</td> -</tr> -<tr> -<td>96</td> -<td>PRESET_TITLE_360_DEG_NIGHT_PHOTO</td> -<td>- FW_PRESET_TITLE_360_NIGHT</td> +<td>66</td> +<td>PRESET_ICON_STATIONARY_3</td> +<td></td> </tr> <tr> -<td>97</td> -<td>PRESET_TITLE_360_DEG_TIME_LAPSE_PHOTO</td> -<td>- FW_PRESET_TITLE_360_TIME_LAPSE_PHOTO</td> +<td>67</td> +<td>PRESET_ICON_STATIONARY_4</td> +<td></td> </tr> <tr> -<td>98</td> -<td>PRESET_TITLE_360_DEG_NIGHT_LAPSE_PHOTO</td> -<td>- FW_PRESET_TITLE_360_NIGHT_LAPSE_PHOTO</td> +<td>70</td> +<td>PRESET_ICON_SIMPLE_SUPER_PHOTO</td> +<td></td> </tr> <tr> -<td>99</td> -<td>PRESET_TITLE_EASY_STANDARD_PROFILE</td> +<td>71</td> +<td>PRESET_ICON_SIMPLE_NIGHT_PHOTO</td> <td></td> </tr> <tr> -<td>100</td> -<td>PRESET_TITLE_EASY_HDR_PROFILE</td> +<td>73</td> +<td>PRESET_ICON_HIGHEST_QUALITY_VIDEO</td> <td></td> </tr> <tr> -<td>101</td> -<td>PRESET_TITLE_360_DEG_TIME_LAPSE_VIDEO</td> -<td>- FW_PRESET_TITLE_MAX_2_TIME_LAPSE</td> +<td>74</td> +<td>PRESET_ICON_STANDARD_QUALITY_VIDEO</td> +<td></td> </tr> <tr> -<td>102</td> -<td>PRESET_TITLE_360_DEG_NIGHT_LAPSE_VIDEO</td> -<td>- FW_PRESET_TITLE_MAX_2_NIGHT_LAPSE</td> +<td>75</td> +<td>PRESET_ICON_BASIC_QUALITY_VIDEO</td> +<td></td> </tr> <tr> -<td>103</td> -<td>PRESET_TITLE_360_DEG_PHOTO</td> -<td>- FW_PRESET_TITLE_MAX_2_PHOTO</td> +<td>76</td> +<td>PRESET_ICON_STAR_TRAIL</td> +<td></td> </tr> <tr> -<td>104</td> -<td>PRESET_TITLE_360_DEG_TIME_WARP</td> -<td>- FW_PRESET_TITLE_MAX_2_TIME_WARP</td> +<td>77</td> +<td>PRESET_ICON_LIGHT_PAINTING</td> +<td></td> </tr> <tr> -<td>105</td> -<td>PRESET_TITLE_360_DEG_VIDEO</td> -<td>- FW_PRESET_TITLE_MAX_2_VIDEO</td> +<td>78</td> +<td>PRESET_ICON_LIGHT_TRAIL</td> +<td></td> </tr> <tr> -<td>106</td> -<td>PRESET_TITLE_BURST_SLOMO</td> +<td>79</td> +<td>PRESET_ICON_FULL_FRAME</td> <td></td> </tr> <tr> -<td>107</td> -<td>PRESET_TITLE_VLOG</td> +<td>1000</td> +<td>PRESET_ICON_TIMELAPSE_PHOTO</td> <td></td> </tr> <tr> -<td>108</td> -<td>PRESET_TITLE_MAX</td> +<td>1001</td> +<td>PRESET_ICON_NIGHTLAPSE_PHOTO</td> <td></td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -15875,613 +20264,694 @@

    Limitations

    - + + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - + - + - - - - - - + - + - + - + - + - + - + - - - - - - + - - + + - - + + + +
    ID Summary
    0PRESET_TITLE_ACTIVITYPRESET_ICON_VIDEO
    1PRESET_TITLE_STANDARDPRESET_ICON_ACTIVITY
    2PRESET_TITLE_CINEMATICPRESET_ICON_CINEMATIC
    3PRESET_TITLE_PHOTOPRESET_ICON_PHOTO
    4PRESET_TITLE_LIVE_BURSTPRESET_ICON_LIVE_BURST
    5PRESET_TITLE_BURSTPRESET_ICON_BURST
    6PRESET_TITLE_NIGHTPRESET_ICON_PHOTO_NIGHT
    7PRESET_TITLE_TIME_WARPPRESET_ICON_TIMEWARP
    8PRESET_TITLE_TIME_LAPSEPRESET_ICON_TIMELAPSE
    9PRESET_TITLE_NIGHT_LAPSEPRESET_ICON_NIGHTLAPSE
    10PRESET_TITLE_VIDEOPRESET_ICON_SNAIL
    11PRESET_TITLE_SLOMO
    12PRESET_TITLE_360_VIDEOPRESET_ICON_VIDEO_2
    13PRESET_TITLE_PHOTO_2PRESET_ICON_PHOTO_2
    14PRESET_TITLE_PANORAMAPRESET_ICON_PANORAMA
    15PRESET_TITLE_360_PHOTOPRESET_ICON_BURST_2
    16PRESET_TITLE_TIME_WARP_2PRESET_ICON_TIMEWARP_2
    17PRESET_TITLE_360_TIME_WARPPRESET_ICON_TIMELAPSE_2
    18PRESET_TITLE_CUSTOMPRESET_ICON_CUSTOM
    19PRESET_TITLE_AIRPRESET_ICON_AIR
    20PRESET_TITLE_BIKEPRESET_ICON_BIKE
    21PRESET_TITLE_EPICPRESET_ICON_EPIC
    22PRESET_TITLE_INDOORPRESET_ICON_INDOOR
    23PRESET_TITLE_MOTORPRESET_ICON_MOTOR
    24PRESET_TITLE_MOUNTEDPRESET_ICON_MOUNTED
    25PRESET_TITLE_OUTDOORPRESET_ICON_OUTDOOR
    26PRESET_TITLE_POVPRESET_ICON_POV
    27PRESET_TITLE_SELFIEPRESET_ICON_SELFIE
    28PRESET_TITLE_SKATE
    29PRESET_TITLE_SNOW
    30PRESET_TITLE_TRAIL
    31PRESET_TITLE_TRAVEL
    32PRESET_TITLE_WATER
    33PRESET_TITLE_LOOPING
    34PRESET_TITLE_STARS
    35PRESET_TITLE_ACTION
    36PRESET_TITLE_FOLLOW_CAM
    37PRESET_TITLE_SURF
    38PRESET_TITLE_CITY
    39PRESET_TITLE_SHAKY
    40PRESET_TITLE_CHESTY
    41PRESET_TITLE_HELMET
    42PRESET_TITLE_BITE
    43PRESET_TITLE_CUSTOM_CINEMATICPRESET_ICON_SKATE
    44PRESET_TITLE_DIVE29PRESET_ICON_SNOW
    45PRESET_TITLE_FPV30PRESET_ICON_TRAIL
    46PRESET_TITLE_HDR31PRESET_ICON_TRAVEL
    47PRESET_TITLE_LANDSCAPE32PRESET_ICON_WATER
    48PRESET_TITLE_LOG33PRESET_ICON_LOOPING
    49PRESET_TITLE_CUSTOM_SLOMO34PRESET_ICON_STARS
    50PRESET_TITLE_TRIPOD35PRESET_ICON_ACTION
    51PRESET_TITLE_360_TIMELAPSE36PRESET_ICON_FOLLOW_CAM
    52PRESET_TITLE_360_NIGHT_LAPSE37PRESET_ICON_SURF
    53PRESET_TITLE_360_NIGHT_PHOTO38PRESET_ICON_CITY
    54PRESET_TITLE_PANO_TIME_LAPSE39PRESET_ICON_SHAKY
    55PRESET_TITLE_MAX_VIDEO40PRESET_ICON_CHESTY
    56PRESET_TITLE_MAX_PHOTO41PRESET_ICON_HELMET
    57PRESET_TITLE_MAX_TIMEWARP42PRESET_ICON_BITE
    58PRESET_TITLE_BASICPRESET_ICON_BASIC
    59PRESET_TITLE_ULTRA_SLO_MOPRESET_ICON_ULTRA_SLO_MO
    60PRESET_TITLE_STANDARD_ENDURANCEPRESET_ICON_STANDARD_ENDURANCE
    61PRESET_TITLE_ACTIVITY_ENDURANCEPRESET_ICON_ACTIVITY_ENDURANCE
    62PRESET_TITLE_CINEMATIC_ENDURANCEPRESET_ICON_CINEMATIC_ENDURANCE
    63PRESET_TITLE_SLOMO_ENDURANCEPRESET_ICON_SLOMO_ENDURANCE
    64PRESET_TITLE_STATIONARY_1PRESET_ICON_STATIONARY_1
    65PRESET_TITLE_STATIONARY_2PRESET_ICON_STATIONARY_2
    66PRESET_TITLE_STATIONARY_3PRESET_ICON_STATIONARY_3
    67PRESET_TITLE_STATIONARY_4
    68PRESET_TITLE_SIMPLE_VIDEO
    69PRESET_TITLE_SIMPLE_TIME_WARPPRESET_ICON_STATIONARY_4
    70PRESET_TITLE_SIMPLE_SUPER_PHOTOPRESET_ICON_SIMPLE_SUPER_PHOTO
    71PRESET_TITLE_SIMPLE_NIGHT_PHOTO
    72PRESET_TITLE_SIMPLE_VIDEO_ENDURANCEPRESET_ICON_SIMPLE_NIGHT_PHOTO
    73PRESET_TITLE_HIGHEST_QUALITYPRESET_ICON_HIGHEST_QUALITY_VIDEO
    74PRESET_TITLE_EXTENDED_BATTERYPRESET_ICON_STANDARD_QUALITY_VIDEO
    75PRESET_TITLE_LONGEST_BATTERYPRESET_ICON_BASIC_QUALITY_VIDEO
    76PRESET_TITLE_STAR_TRAILPRESET_ICON_STAR_TRAIL
    77PRESET_TITLE_LIGHT_PAINTINGPRESET_ICON_LIGHT_PAINTING
    78PRESET_TITLE_LIGHT_TRAILPRESET_ICON_LIGHT_TRAIL
    79PRESET_TITLE_FULL_FRAME
    80PRESET_TITLE_MAX_LENS_VIDEOPRESET_ICON_FULL_FRAME
    81PRESET_TITLE_MAX_LENS_TIMEWARP1000PRESET_ICON_TIMELAPSE_PHOTO
    82PRESET_TITLE_STANDARD_QUALITY_VIDEO1001PRESET_ICON_NIGHTLAPSE_PHOTO
    +
    +
    +id +
    +
    +integer <int32> +
    +

    Unique preset identifier

    +
    +
    +isFixed +
    +
    +boolean +
    +

    Is this preset mutable?

    +
    +
    +isModified +
    +
    +boolean +
    +

    Has the preset been modified from the factory defaults?

    +
    +
    +mode +
    +
    +integer (EnumFlatMode) +
    +
    + Enum: -1 4 5 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
    + + - - - + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + -
    83PRESET_TITLE_BASIC_QUALITY_VIDEOIDNameSummary
    84PRESET_TITLE_EASY_MAX_VIDEO-1FLAT_MODE_UNKNOWN
    85PRESET_TITLE_EASY_MAX_PHOTO4FLAT_MODE_PLAYBACK
    86PRESET_TITLE_EASY_MAX_TIMEWARP5FLAT_MODE_SETUP
    87PRESET_TITLE_EASY_MAX_STAR_TRAIL12FLAT_MODE_VIDEO
    88PRESET_TITLE_EASY_MAX_LIGHT_PAINTING13FLAT_MODE_TIME_LAPSE_VIDEO
    89PRESET_TITLE_EASY_MAX_LIGHT_TRAIL15FLAT_MODE_LOOPING
    90PRESET_TITLE_MAX_STAR_TRAIL16FLAT_MODE_PHOTO_SINGLE
    91PRESET_TITLE_MAX_LIGHT_PAINTING17FLAT_MODE_PHOTO
    92PRESET_TITLE_MAX_LIGHT_TRAIL18FLAT_MODE_PHOTO_NIGHT
    93PRESET_TITLE_HIGHEST_QUALITY_VIDEO19FLAT_MODE_PHOTO_BURST
    94PRESET_TITLE_USER_DEFINED_CUSTOM_NAME20FLAT_MODE_TIME_LAPSE_PHOTO
    95PRESET_TITLE_360_DEG_BURST- FW_PRESET_TITLE_360_BURST
    96PRESET_TITLE_360_DEG_NIGHT_PHOTO- FW_PRESET_TITLE_360_NIGHT
    97PRESET_TITLE_360_DEG_TIME_LAPSE_PHOTO- FW_PRESET_TITLE_360_TIME_LAPSE_PHOTO21FLAT_MODE_NIGHT_LAPSE_PHOTO
    98PRESET_TITLE_360_DEG_NIGHT_LAPSE_PHOTO- FW_PRESET_TITLE_360_NIGHT_LAPSE_PHOTO22FLAT_MODE_BROADCAST_RECORD
    99PRESET_TITLE_EASY_STANDARD_PROFILE23FLAT_MODE_BROADCAST_BROADCAST
    100PRESET_TITLE_EASY_HDR_PROFILE24FLAT_MODE_TIME_WARP_VIDEO
    101PRESET_TITLE_360_DEG_TIME_LAPSE_VIDEO- FW_PRESET_TITLE_MAX_2_TIME_LAPSE25FLAT_MODE_LIVE_BURST
    102PRESET_TITLE_360_DEG_NIGHT_LAPSE_VIDEO- FW_PRESET_TITLE_MAX_2_NIGHT_LAPSE26FLAT_MODE_NIGHT_LAPSE_VIDEO
    103PRESET_TITLE_360_DEG_PHOTO- FW_PRESET_TITLE_MAX_2_PHOTO27FLAT_MODE_SLOMO
    104PRESET_TITLE_360_DEG_TIME_WARP- FW_PRESET_TITLE_MAX_2_TIME_WARP28FLAT_MODE_IDLE
    105PRESET_TITLE_360_DEG_VIDEO- FW_PRESET_TITLE_MAX_2_VIDEO29FLAT_MODE_VIDEO_STAR_TRAIL
    106PRESET_TITLE_BURST_SLOMO30FLAT_MODE_VIDEO_LIGHT_PAINTING
    107PRESET_TITLE_VLOG31FLAT_MODE_VIDEO_LIGHT_TRAIL
    108PRESET_TITLE_MAX32FLAT_MODE_VIDEO_BURST_SLOMO
    -
    titleNumber
    integer <int32>

    Preset title number

    -
    userDefined
    boolean

    Is this preset user defined?

    -

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/camera/presets/get

    Response samples

    Content type
    application/json
    {
    • "customIconIds": [
      ],
    • "customTitleIds": [
      ],
    • "presetGroupArray": [
      ]
    }

    Load Preset by ID

    HERO12 Black -HERO11 Black Mini - HERO11 Black -HERO10 Black - HERO9 Black

    -

    Supported Protocols:

    -
      -
    • USB
    • -
    • WIFI
    • -
    -
    -

    Preset ID's are not constant and must be retrieved via Get Preset Status

    -
    query Parameters
    id
    required
    integer

    Preset to load

    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/presets/load?id=0'

    Response samples

    Content type
    application/json
    { }

    Load Preset Group by ID

    HERO12 Black -HERO11 Black Mini - HERO11 Black -HERO10 Black - HERO9 Black

    -

    Supported Protocols:

    -
      -
    • USB
    • -
    • WIFI
    • -
    -
    -
    query Parameters
    + + + + + + + + + + + + + + + +
    id
    required
    integer
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 1000 1001 1002
    Example: id=1000
    +
    + +
    +
    +Array of objects (PresetSetting) +
    +
    +
    Array
    +
    + + + + + + + + + + + + +
    +id +
    +
    +integer <int32> +
    +

    Setting identifier

    +
    +
    +isCaption +
    +
    +boolean +
    +

    Does this setting appear on the Preset "pill" in the camera UI?

    +
    +
    +value +
    +
    +integer <int32> +
    +

    Setting value

    +
    +
    +
    +
    +titleId +
    +
    +integer (EnumPresetTitle) +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 82 83 93 94
    Limitations </thead> <tbody><tr> <td>0</td> -<td>PRESET_GROUP_ID_VIDEO_SINGLE_LENS</td> -<td>Single video</td> +<td>PRESET_TITLE_ACTIVITY</td> +<td></td> </tr> <tr> <td>1</td> -<td>PRESET_GROUP_ID_PHOTO_SINGLE_LENS</td> -<td>Single photo</td> +<td>PRESET_TITLE_STANDARD</td> +<td></td> </tr> <tr> <td>2</td> -<td>PRESET_GROUP_ID_TIMELAPSE_SINGLE_LENS</td> -<td>Single timelapse</td> +<td>PRESET_TITLE_CINEMATIC</td> +<td></td> </tr> <tr> <td>3</td> -<td>PRESET_GROUP_ID_VIDEO_HEMI_LENS</td> -<td>Spherical video hemi lens</td> +<td>PRESET_TITLE_PHOTO</td> +<td></td> </tr> <tr> <td>4</td> -<td>PRESET_GROUP_ID_PHOTO_HEMI_LENS</td> -<td>Spherical photo hemi lens</td> +<td>PRESET_TITLE_LIVE_BURST</td> +<td></td> </tr> <tr> <td>5</td> -<td>PRESET_GROUP_ID_TIMELAPSE_HEMI_LENS</td> -<td>Spherical timelapse hemi lens</td> +<td>PRESET_TITLE_BURST</td> +<td></td> </tr> <tr> <td>6</td> -<td>PRESET_GROUP_ID_SPECIAL_INTERNAL</td> -<td>Special</td> +<td>PRESET_TITLE_NIGHT</td> +<td></td> </tr> <tr> <td>7</td> -<td>PRESET_GROUP_ID_SPECIAL_HEMI</td> -<td>Special hemi lens</td> +<td>PRESET_TITLE_TIME_WARP</td> +<td></td> </tr> <tr> <td>8</td> -<td>PRESET_GROUP_ID_VIDEO_ENDURANCE_SINGLE_LENS</td> -<td>Video battery endurance</td> +<td>PRESET_TITLE_TIME_LAPSE</td> +<td></td> </tr> <tr> <td>9</td> -<td>PRESET_GROUP_ID_VIDEO_LONGEST_BATTERY_SINGLE_LENS</td> -<td>Video longest battery</td> +<td>PRESET_TITLE_NIGHT_LAPSE</td> +<td></td> </tr> <tr> <td>10</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_SINGLE_LENS</td> -<td>Easy single video</td> +<td>PRESET_TITLE_VIDEO</td> +<td></td> </tr> <tr> <td>11</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_ENDURANCE_SINGLE_LENS</td> -<td>Easy video battery endurance</td> -</tr> -<tr> -<td>12</td> -<td>PRESET_GROUP_ID_EASY_PHOTO_SINGLE_LENS</td> -<td>Easy single photo</td> +<td>PRESET_TITLE_SLOMO</td> +<td></td> </tr> <tr> <td>13</td> -<td>PRESET_GROUP_ID_EASY_TIMELAPSE_SINGLE_LENS</td> -<td>Easy single timelapse</td> +<td>PRESET_TITLE_PHOTO_2</td> +<td></td> </tr> <tr> <td>14</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_LONGEST_BATTERY_SINGLE_LENS</td> -<td>Easy video longest battery</td> -</tr> -<tr> -<td>15</td> -<td>PRESET_GROUP_ID_VIDEO_HEMI_LENS_2</td> -<td>Hemi Lens 2 video</td> +<td>PRESET_TITLE_PANORAMA</td> +<td></td> </tr> <tr> <td>16</td> -<td>PRESET_GROUP_ID_PHOTO_HEMI_LENS_2</td> -<td>Hemi Lens 2 photo</td> -</tr> -<tr> -<td>17</td> -<td>PRESET_GROUP_ID_TIMELAPSE_HEMI_LENS_2</td> -<td>Hemi Lens 2 timelapse</td> +<td>PRESET_TITLE_TIME_WARP_2</td> +<td></td> </tr> <tr> <td>18</td> -<td>PRESET_GROUP_ID_SPECIAL_HEMI_LENS_2</td> -<td>Hemi Lens 2 special</td> +<td>PRESET_TITLE_CUSTOM</td> +<td></td> </tr> <tr> <td>19</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_HEMI_LENS</td> -<td>Hemi Lens easy video</td> +<td>PRESET_TITLE_AIR</td> +<td></td> </tr> <tr> <td>20</td> -<td>PRESET_GROUP_ID_EASY_PHOTO_HEMI_LENS</td> -<td>Hemi Lens easy photo</td> +<td>PRESET_TITLE_BIKE</td> +<td></td> </tr> <tr> <td>21</td> -<td>PRESET_GROUP_ID_EASY_TIMELAPSE_HEMI_LENS</td> -<td>Hemi Lens easy timelapse</td> +<td>PRESET_TITLE_EPIC</td> +<td></td> </tr> <tr> <td>22</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_HEMI_LENS_2</td> -<td>Hemi Lens 2 easy video</td> +<td>PRESET_TITLE_INDOOR</td> +<td></td> </tr> <tr> <td>23</td> -<td>PRESET_GROUP_ID_EASY_PHOTO_HEMI_LENS_2</td> -<td>Hemi Lens 2 easy photo</td> +<td>PRESET_TITLE_MOTOR</td> +<td></td> </tr> <tr> <td>24</td> -<td>PRESET_GROUP_ID_EASY_TIMELAPSE_HEMI_LENS_2</td> -<td>Hemi Lens 2 easy timelapse</td> +<td>PRESET_TITLE_MOUNTED</td> +<td></td> </tr> <tr> <td>25</td> -<td>PRESET_GROUP_ID_VIDEO_SINGLE_LENS_STANDARD</td> -<td>Single video standard profile - for internal preset switch only</td> +<td>PRESET_TITLE_OUTDOOR</td> +<td></td> </tr> <tr> <td>26</td> -<td>PRESET_GROUP_ID_VIDEO_SINGLE_LENS_HDR</td> -<td>Single video hdr profile - for internal preset switch only</td> +<td>PRESET_TITLE_POV</td> +<td></td> </tr> <tr> <td>27</td> -<td>PRESET_GROUP_ID_VIDEO_SINGLE_LENS_LOG</td> -<td>Single video log profile - for internal preset switch only</td> +<td>PRESET_TITLE_SELFIE</td> +<td></td> </tr> <tr> <td>28</td> -<td>PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS</td> -<td>Spherical video mode</td> +<td>PRESET_TITLE_SKATE</td> +<td></td> </tr> <tr> <td>29</td> -<td>PRESET_GROUP_ID_PHOTO_SPHERICAL_LENS</td> -<td>Spherical photo mode</td> +<td>PRESET_TITLE_SNOW</td> +<td></td> </tr> <tr> <td>30</td> -<td>PRESET_GROUP_ID_TIMELAPSE_SPHERICAL_LENS</td> -<td>Spherical timelapse mode</td> +<td>PRESET_TITLE_TRAIL</td> +<td></td> </tr> <tr> <td>31</td> -<td>PRESET_GROUP_ID_SPECIAL_SPHERICAL</td> -<td>Special spherical lens</td> +<td>PRESET_TITLE_TRAVEL</td> +<td></td> </tr> <tr> <td>32</td> -<td>PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS_STANDARD</td> -<td>Spherical video standard profile - for internal preset switch only</td> +<td>PRESET_TITLE_WATER</td> +<td></td> </tr> <tr> <td>33</td> -<td>PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS_LOG</td> -<td>Spherical video standard profile - for internal preset switch only</td> +<td>PRESET_TITLE_LOOPING</td> +<td></td> </tr> <tr> <td>34</td> -<td>PRESET_GROUP_ID_VIDEO_HEMI_LENS_2_STANDARD</td> -<td>Hemi Lens 2 video standard profile and Hemi Lens 2.5 video standard profile - for internal preset switch only</td> +<td>PRESET_TITLE_STARS</td> +<td></td> </tr> <tr> <td>35</td> -<td>PRESET_GROUP_ID_VIDEO_HEMI_LENS_2_LOG</td> -<td>Hemi Lens 2 video log profile and Hemi Lens 2.5 video log profile - for internal preset switch only</td> +<td>PRESET_TITLE_ACTION</td> +<td></td> </tr> <tr> <td>36</td> -<td>PRESET_GROUP_ID_VIDEO_MACRO_LENS</td> -<td>Video macro lens</td> +<td>PRESET_TITLE_FOLLOW_CAM</td> +<td></td> </tr> <tr> <td>37</td> -<td>PRESET_GROUP_ID_PHOTO_MACRO_LENS</td> -<td>Photo macro lens</td> +<td>PRESET_TITLE_SURF</td> +<td></td> </tr> <tr> <td>38</td> -<td>PRESET_GROUP_ID_TIMELAPSE_MACRO_LENS</td> -<td>Timelapse macro lens</td> +<td>PRESET_TITLE_CITY</td> +<td></td> </tr> <tr> <td>39</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_MACRO_LENS</td> -<td>Easy Video macro lens</td> +<td>PRESET_TITLE_SHAKY</td> +<td></td> </tr> <tr> <td>40</td> -<td>PRESET_GROUP_ID_EASY_PHOTO_MACRO_LENS</td> -<td>Easy Photo macro lens</td> +<td>PRESET_TITLE_CHESTY</td> +<td></td> </tr> <tr> <td>41</td> -<td>PRESET_GROUP_ID_EASY_TIMELAPSE_MACRO_LENS</td> -<td>Easy Timelapse macro lens</td> +<td>PRESET_TITLE_HELMET</td> +<td></td> </tr> <tr> <td>42</td> -<td>PRESET_GROUP_ID_VIDEO_MACRO_LENS_STANDARD</td> -<td>Macro lens video standard profile - for internal preset switch only</td> +<td>PRESET_TITLE_BITE</td> +<td></td> +</tr> +<tr> +<td>58</td> +<td>PRESET_TITLE_BASIC</td> +<td></td> </tr> <tr> -<td>43</td> -<td>PRESET_GROUP_ID_VIDEO_MACRO_LENS_LOG</td> -<td>Macro lens video log profile - for internal preset switch only</td> +<td>59</td> +<td>PRESET_TITLE_ULTRA_SLO_MO</td> +<td></td> </tr> <tr> -<td>44</td> -<td>PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS</td> -<td>Video anamorphic lens</td> +<td>60</td> +<td>PRESET_TITLE_STANDARD_ENDURANCE</td> +<td></td> </tr> <tr> -<td>45</td> -<td>PRESET_GROUP_ID_PHOTO_ANAMORPHIC_LENS</td> -<td>Photo anamorphic lens</td> +<td>61</td> +<td>PRESET_TITLE_ACTIVITY_ENDURANCE</td> +<td></td> </tr> <tr> -<td>46</td> -<td>PRESET_GROUP_ID_TIMELAPSE_ANAMORPHIC_LENS</td> -<td>Timelapse anamorphic lens</td> +<td>62</td> +<td>PRESET_TITLE_CINEMATIC_ENDURANCE</td> +<td></td> </tr> <tr> -<td>47</td> -<td>PRESET_GROUP_ID_EASY_VIDEO_ANAMORPHIC_LENS</td> -<td>Easy Video anamorphic lens</td> +<td>63</td> +<td>PRESET_TITLE_SLOMO_ENDURANCE</td> +<td></td> </tr> <tr> -<td>48</td> -<td>PRESET_GROUP_ID_EASY_PHOTO_ANAMORPHIC_LENS</td> -<td>Easy Photo anamorphic lens</td> +<td>64</td> +<td>PRESET_TITLE_STATIONARY_1</td> +<td></td> </tr> <tr> -<td>49</td> -<td>PRESET_GROUP_ID_EASY_TIMELAPSE_ANAMORPHIC_LENS</td> -<td>Easy Timelapse anamorphic lens</td> +<td>65</td> +<td>PRESET_TITLE_STATIONARY_2</td> +<td></td> </tr> <tr> -<td>50</td> -<td>PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS_STANDARD</td> -<td>Anamorphic lens video standard profile - for internal preset switch only</td> +<td>66</td> +<td>PRESET_TITLE_STATIONARY_3</td> +<td></td> +</tr> +<tr> +<td>67</td> +<td>PRESET_TITLE_STATIONARY_4</td> +<td></td> +</tr> +<tr> +<td>68</td> +<td>PRESET_TITLE_SIMPLE_VIDEO</td> +<td></td> +</tr> +<tr> +<td>69</td> +<td>PRESET_TITLE_SIMPLE_TIME_WARP</td> +<td></td> +</tr> +<tr> +<td>70</td> +<td>PRESET_TITLE_SIMPLE_SUPER_PHOTO</td> +<td></td> +</tr> +<tr> +<td>71</td> +<td>PRESET_TITLE_SIMPLE_NIGHT_PHOTO</td> +<td></td> +</tr> +<tr> +<td>72</td> +<td>PRESET_TITLE_SIMPLE_VIDEO_ENDURANCE</td> +<td></td> +</tr> +<tr> +<td>73</td> +<td>PRESET_TITLE_HIGHEST_QUALITY</td> +<td></td> +</tr> +<tr> +<td>74</td> +<td>PRESET_TITLE_EXTENDED_BATTERY</td> +<td></td> +</tr> +<tr> +<td>75</td> +<td>PRESET_TITLE_LONGEST_BATTERY</td> +<td></td> +</tr> +<tr> +<td>76</td> +<td>PRESET_TITLE_STAR_TRAIL</td> +<td></td> +</tr> +<tr> +<td>77</td> +<td>PRESET_TITLE_LIGHT_PAINTING</td> +<td></td> +</tr> +<tr> +<td>78</td> +<td>PRESET_TITLE_LIGHT_TRAIL</td> +<td></td> +</tr> +<tr> +<td>79</td> +<td>PRESET_TITLE_FULL_FRAME</td> +<td></td> </tr> <tr> -<td>51</td> -<td>PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS_LOG</td> -<td>Anamorphic lens video log profile - for internal preset switch only</td> +<td>82</td> +<td>PRESET_TITLE_STANDARD_QUALITY_VIDEO</td> +<td></td> </tr> <tr> -<td>1000</td> -<td>PRESET_GROUP_ID_VIDEO</td> +<td>83</td> +<td>PRESET_TITLE_BASIC_QUALITY_VIDEO</td> <td></td> </tr> <tr> -<td>1001</td> -<td>PRESET_GROUP_ID_PHOTO</td> +<td>93</td> +<td>PRESET_TITLE_HIGHEST_QUALITY_VIDEO</td> <td></td> </tr> <tr> -<td>1002</td> -<td>PRESET_GROUP_ID_TIMELAPSE</td> +<td>94</td> +<td>PRESET_TITLE_USER_DEFINED_CUSTOM_NAME</td> <td></td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -16773,266 +21299,717 @@

    Limitations

    - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - + + - - + + - - - - - - - + + - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + +
    ID Summary
    0PRESET_GROUP_ID_VIDEO_SINGLE_LENSSingle videoPRESET_TITLE_ACTIVITY
    1PRESET_GROUP_ID_PHOTO_SINGLE_LENSSingle photoPRESET_TITLE_STANDARD
    2PRESET_GROUP_ID_TIMELAPSE_SINGLE_LENSSingle timelapsePRESET_TITLE_CINEMATIC
    3PRESET_GROUP_ID_VIDEO_HEMI_LENSSpherical video hemi lensPRESET_TITLE_PHOTO
    4PRESET_GROUP_ID_PHOTO_HEMI_LENSSpherical photo hemi lensPRESET_TITLE_LIVE_BURST
    5PRESET_GROUP_ID_TIMELAPSE_HEMI_LENSSpherical timelapse hemi lensPRESET_TITLE_BURST
    6PRESET_GROUP_ID_SPECIAL_INTERNALSpecialPRESET_TITLE_NIGHT
    7PRESET_GROUP_ID_SPECIAL_HEMISpecial hemi lensPRESET_TITLE_TIME_WARP
    8PRESET_GROUP_ID_VIDEO_ENDURANCE_SINGLE_LENSVideo battery endurancePRESET_TITLE_TIME_LAPSE
    9PRESET_GROUP_ID_VIDEO_LONGEST_BATTERY_SINGLE_LENSVideo longest batteryPRESET_TITLE_NIGHT_LAPSE
    10PRESET_GROUP_ID_EASY_VIDEO_SINGLE_LENSEasy single videoPRESET_TITLE_VIDEO
    11PRESET_GROUP_ID_EASY_VIDEO_ENDURANCE_SINGLE_LENSEasy video battery endurance
    12PRESET_GROUP_ID_EASY_PHOTO_SINGLE_LENSEasy single photoPRESET_TITLE_SLOMO
    13PRESET_GROUP_ID_EASY_TIMELAPSE_SINGLE_LENSEasy single timelapsePRESET_TITLE_PHOTO_2
    14PRESET_GROUP_ID_EASY_VIDEO_LONGEST_BATTERY_SINGLE_LENSEasy video longest battery
    15PRESET_GROUP_ID_VIDEO_HEMI_LENS_2Hemi Lens 2 videoPRESET_TITLE_PANORAMA
    16PRESET_GROUP_ID_PHOTO_HEMI_LENS_2Hemi Lens 2 photo
    17PRESET_GROUP_ID_TIMELAPSE_HEMI_LENS_2Hemi Lens 2 timelapsePRESET_TITLE_TIME_WARP_2
    18PRESET_GROUP_ID_SPECIAL_HEMI_LENS_2Hemi Lens 2 specialPRESET_TITLE_CUSTOM
    19PRESET_GROUP_ID_EASY_VIDEO_HEMI_LENSHemi Lens easy videoPRESET_TITLE_AIR
    20PRESET_GROUP_ID_EASY_PHOTO_HEMI_LENSHemi Lens easy photoPRESET_TITLE_BIKE
    21PRESET_GROUP_ID_EASY_TIMELAPSE_HEMI_LENSHemi Lens easy timelapsePRESET_TITLE_EPIC
    22PRESET_GROUP_ID_EASY_VIDEO_HEMI_LENS_2Hemi Lens 2 easy videoPRESET_TITLE_INDOOR
    23PRESET_GROUP_ID_EASY_PHOTO_HEMI_LENS_2Hemi Lens 2 easy photoPRESET_TITLE_MOTOR
    24PRESET_GROUP_ID_EASY_TIMELAPSE_HEMI_LENS_2Hemi Lens 2 easy timelapsePRESET_TITLE_MOUNTED
    25PRESET_GROUP_ID_VIDEO_SINGLE_LENS_STANDARDSingle video standard profile - for internal preset switch onlyPRESET_TITLE_OUTDOOR
    26PRESET_GROUP_ID_VIDEO_SINGLE_LENS_HDRSingle video hdr profile - for internal preset switch onlyPRESET_TITLE_POV
    27PRESET_GROUP_ID_VIDEO_SINGLE_LENS_LOGSingle video log profile - for internal preset switch onlyPRESET_TITLE_SELFIE
    28PRESET_GROUP_ID_VIDEO_SPHERICAL_LENSSpherical video modePRESET_TITLE_SKATE
    29PRESET_GROUP_ID_PHOTO_SPHERICAL_LENSSpherical photo modePRESET_TITLE_SNOW
    30PRESET_GROUP_ID_TIMELAPSE_SPHERICAL_LENSSpherical timelapse modePRESET_TITLE_TRAIL
    31PRESET_GROUP_ID_SPECIAL_SPHERICALSpecial spherical lensPRESET_TITLE_TRAVEL
    32PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS_STANDARDSpherical video standard profile - for internal preset switch onlyPRESET_TITLE_WATER
    33PRESET_GROUP_ID_VIDEO_SPHERICAL_LENS_LOGSpherical video standard profile - for internal preset switch onlyPRESET_TITLE_LOOPING
    34PRESET_GROUP_ID_VIDEO_HEMI_LENS_2_STANDARDHemi Lens 2 video standard profile and Hemi Lens 2.5 video standard profile - for internal preset switch onlyPRESET_TITLE_STARS
    35PRESET_GROUP_ID_VIDEO_HEMI_LENS_2_LOGHemi Lens 2 video log profile and Hemi Lens 2.5 video log profile - for internal preset switch onlyPRESET_TITLE_ACTION
    36PRESET_GROUP_ID_VIDEO_MACRO_LENSVideo macro lensPRESET_TITLE_FOLLOW_CAM
    37PRESET_GROUP_ID_PHOTO_MACRO_LENSPhoto macro lensPRESET_TITLE_SURF
    38PRESET_GROUP_ID_TIMELAPSE_MACRO_LENSTimelapse macro lensPRESET_TITLE_CITY
    39PRESET_GROUP_ID_EASY_VIDEO_MACRO_LENSEasy Video macro lensPRESET_TITLE_SHAKY
    40PRESET_GROUP_ID_EASY_PHOTO_MACRO_LENSEasy Photo macro lensPRESET_TITLE_CHESTY
    41PRESET_GROUP_ID_EASY_TIMELAPSE_MACRO_LENSEasy Timelapse macro lensPRESET_TITLE_HELMET
    42PRESET_GROUP_ID_VIDEO_MACRO_LENS_STANDARDMacro lens video standard profile - for internal preset switch onlyPRESET_TITLE_BITE
    43PRESET_GROUP_ID_VIDEO_MACRO_LENS_LOGMacro lens video log profile - for internal preset switch only58PRESET_TITLE_BASIC
    44PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENSVideo anamorphic lens59PRESET_TITLE_ULTRA_SLO_MO
    45PRESET_GROUP_ID_PHOTO_ANAMORPHIC_LENSPhoto anamorphic lens60PRESET_TITLE_STANDARD_ENDURANCE
    46PRESET_GROUP_ID_TIMELAPSE_ANAMORPHIC_LENSTimelapse anamorphic lens61PRESET_TITLE_ACTIVITY_ENDURANCE
    47PRESET_GROUP_ID_EASY_VIDEO_ANAMORPHIC_LENSEasy Video anamorphic lens62PRESET_TITLE_CINEMATIC_ENDURANCE
    48PRESET_GROUP_ID_EASY_PHOTO_ANAMORPHIC_LENSEasy Photo anamorphic lens63PRESET_TITLE_SLOMO_ENDURANCE
    49PRESET_GROUP_ID_EASY_TIMELAPSE_ANAMORPHIC_LENSEasy Timelapse anamorphic lens64PRESET_TITLE_STATIONARY_1
    50PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS_STANDARDAnamorphic lens video standard profile - for internal preset switch only65PRESET_TITLE_STATIONARY_2
    66PRESET_TITLE_STATIONARY_3
    67PRESET_TITLE_STATIONARY_4
    68PRESET_TITLE_SIMPLE_VIDEO
    69PRESET_TITLE_SIMPLE_TIME_WARP
    70PRESET_TITLE_SIMPLE_SUPER_PHOTO
    71PRESET_TITLE_SIMPLE_NIGHT_PHOTO
    72PRESET_TITLE_SIMPLE_VIDEO_ENDURANCE
    73PRESET_TITLE_HIGHEST_QUALITY
    74PRESET_TITLE_EXTENDED_BATTERY
    75PRESET_TITLE_LONGEST_BATTERY
    76PRESET_TITLE_STAR_TRAIL
    77PRESET_TITLE_LIGHT_PAINTING
    78PRESET_TITLE_LIGHT_TRAIL
    79PRESET_TITLE_FULL_FRAME
    82PRESET_TITLE_STANDARD_QUALITY_VIDEO
    83PRESET_TITLE_BASIC_QUALITY_VIDEO
    93PRESET_TITLE_HIGHEST_QUALITY_VIDEO
    51PRESET_GROUP_ID_VIDEO_ANAMORPHIC_LENS_LOGAnamorphic lens video log profile - for internal preset switch only94PRESET_TITLE_USER_DEFINED_CUSTOM_NAME
    +
    +
    +titleNumber +
    +
    +integer <int32> +
    +

    Preset title number

    +
    +
    +userDefined +
    +
    +boolean +
    +

    Is this preset user defined?

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/camera/presets/get
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    + +
    +
    {
      +
    • +"customIconIds": [
      +], +
    • +
    • +"customTitleIds": [
      +], +
    • +
    • +"presetGroupArray": [
      +] +
    • +
    +}
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Load Preset by ID

    +
    +

    HERO12 Black +HERO11 Black Mini + HERO11 Black +HERO10 Black + HERO9 Black

    +

    Supported Protocols:

    +
      +
    • USB
    • +
    • WIFI
    • +
    +
    +

    Preset ID's are not constant and must be retrieved via Get Preset Status

    +
    +
    +
    query Parameters
    + + + +
    +id<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +

    Preset to load

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/presets/load?id=0'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Load Preset Group by ID

    +
    +

    HERO12 Black +HERO11 Black Mini + HERO11 Black +HERO10 Black + HERO9 Black

    +

    Supported Protocols:

    +
      +
    • USB
    • +
    • WIFI
    • +
    +
    +
    +
    +
    query Parameters
    + + +
    +id<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 1000 1001 1002
    + Example: id=1000 +
    +
    + + + + + + + + @@ -17048,13 +22025,85 @@

    Limitations

    -
    IDNameSummary
    1000 PRESET_GROUP_ID_VIDEO PRESET_GROUP_ID_TIMELAPSE
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/presets/set_group?id=1000'

    Response samples

    Content type
    application/json
    { }

    Update Custom Preset

    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/presets/set_group?id=1000'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Update Custom Preset

    +
    +

    HERO12 Black

    Supported Protocols:

    • USB
    • @@ -17094,37 +22144,55 @@

      Limitations

      Preset is not custom.

      The use cases are:

        -
      1. Update the Custom Preset Icon

        +
      2. +

        Update the Custom Preset Icon

          -
        • icon_id is always optional and can always be passed
        • +
        • +icon_id is always optional and can always be passed

      and / or

        -
      1. Update the Custom Preset Title to a...

        +
      2. +

        Update the Custom Preset Title to a...

          -
        • Factory Preset Title: Set title_id to a non-PRESET_TITLE_USER_DEFINED_CUSTOM_NAME (94) value
        • -
        • Custom Preset Name: Set title_id to PRESET_TITLE_USER_DEFINED_CUSTOM_NAME (94) and -specify a custom_name
        • +
        • +Factory Preset Title: Set title_id to a non-PRESET_TITLE_USER_DEFINED_CUSTOM_NAME (94) value
        • +
        • +Custom Preset Name: Set title_id to PRESET_TITLE_USER_DEFINED_CUSTOM_NAME (94) and +specify a custom_name +
      -

      Note! The range of acceptable custom title_id's and icon_id's can be found in the +

      Note! The range of acceptable custom title_id's and icon_id's can be found in the Get Preset Status response

      -
    Request Body schema: application/json
    required
    custom_name
    string

    UTF-8 encoded target custom preset name which obeys the following:

    -
      -
    • must be between 1 and 16 characters (inclusive)
    • -
    • No special characters outside of the following languages: English, French, -Italian, German, Spanish, Portuguese, Swedish, Russian
    • -
    -
    icon_id
    integer (EnumPresetIcon)
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 89 90 91 92 93 94 95 96 97 98 99 100 101 102 1000 1001 1002
    Request Body schema: application/json
    required
    + +
    + + + + + + + + +
    +custom_name +string UTF-8 encoded target custom preset name which obeys the following +must be between 1 and 16 characters (inclusive) +No special characters outside of the following languages: English, French, +Italian, German, Spanish, Portuguese, Swedish, Russian
    +icon_id + +
    +
    +integer (EnumPresetIcon) +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 70 71 73 74 75 76 77 78 79 1000 1001
    Limitations <td></td> </tr> <tr> -<td>12</td> -<td>PRESET_ICON_360_VIDEO</td> -<td></td> -</tr> -<tr> <td>13</td> <td>PRESET_ICON_PHOTO_2</td> <td></td> @@ -17348,21 +22411,6 @@

    Limitations

    <td></td> </tr> <tr> -<td>55</td> -<td>PRESET_ICON_MAX_VIDEO</td> -<td></td> -</tr> -<tr> -<td>56</td> -<td>PRESET_ICON_MAX_PHOTO</td> -<td></td> -</tr> -<tr> -<td>57</td> -<td>PRESET_ICON_MAX_TIMEWARP</td> -<td></td> -</tr> -<tr> <td>58</td> <td>PRESET_ICON_BASIC</td> <td></td> @@ -17458,106 +22506,6 @@

    Limitations

    <td></td> </tr> <tr> -<td>80</td> -<td>PRESET_ICON_EASY_MAX_VIDEO</td> -<td></td> -</tr> -<tr> -<td>81</td> -<td>PRESET_ICON_EASY_MAX_PHOTO</td> -<td></td> -</tr> -<tr> -<td>82</td> -<td>PRESET_ICON_EASY_MAX_TIMEWARP</td> -<td></td> -</tr> -<tr> -<td>83</td> -<td>PRESET_ICON_EASY_MAX_STAR_TRAIL</td> -<td></td> -</tr> -<tr> -<td>84</td> -<td>PRESET_ICON_EASY_MAX_LIGHT_PAINTING</td> -<td></td> -</tr> -<tr> -<td>85</td> -<td>PRESET_ICON_EASY_MAX_LIGHT_TRAIL</td> -<td></td> -</tr> -<tr> -<td>89</td> -<td>PRESET_ICON_MAX_STAR_TRAIL</td> -<td></td> -</tr> -<tr> -<td>90</td> -<td>PRESET_ICON_MAX_LIGHT_PAINTING</td> -<td></td> -</tr> -<tr> -<td>91</td> -<td>PRESET_ICON_MAX_LIGHT_TRAIL</td> -<td></td> -</tr> -<tr> -<td>92</td> -<td>PRESET_ICON_360_BURST</td> -<td></td> -</tr> -<tr> -<td>93</td> -<td>PRESET_ICON_360_PHOTO_NIGHT</td> -<td></td> -</tr> -<tr> -<td>94</td> -<td>PRESET_ICON_360_NIGHTLAPSE</td> -<td></td> -</tr> -<tr> -<td>95</td> -<td>PRESET_ICON_360_TIMELAPSE_PHOTO</td> -<td></td> -</tr> -<tr> -<td>96</td> -<td>PRESET_ICON_360_NIGHTLAPSE_PHOTO</td> -<td></td> -</tr> -<tr> -<td>97</td> -<td>PRESET_ICON_360_PHOTO</td> -<td></td> -</tr> -<tr> -<td>98</td> -<td>PRESET_ICON_360_TIMELAPSE</td> -<td></td> -</tr> -<tr> -<td>99</td> -<td>PRESET_ICON_360_TIMEWARP</td> -<td></td> -</tr> -<tr> -<td>100</td> -<td>PRESET_ICON_EASY_STANDARD_PROFILE</td> -<td></td> -</tr> -<tr> -<td>101</td> -<td>PRESET_ICON_EASY_HDR_PROFILE</td> -<td></td> -</tr> -<tr> -<td>102</td> -<td>PRESET_ICON_BURST_SLOMO</td> -<td></td> -</tr> -<tr> <td>1000</td> <td>PRESET_ICON_TIMELAPSE_PHOTO</td> <td></td> @@ -17567,13 +22515,9 @@

    Limitations

    <td>PRESET_ICON_NIGHTLAPSE_PHOTO</td> <td></td> </tr> -<tr> -<td>1002</td> -<td>PRESET_ICON_MAX</td> -<td></td> -</tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -17581,7 +22525,8 @@

    Limitations

    - + + @@ -17642,11 +22587,6 @@

    Limitations

    - - - - - @@ -17786,224 +22726,109 @@

    Limitations

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -18016,13 +22841,23 @@

    Limitations

    - - - - - -
    ID Summary
    0 PRESET_ICON_VIDEO
    12PRESET_ICON_360_VIDEO
    13 PRESET_ICON_PHOTO_2 PRESET_ICON_CHESTY
    41PRESET_ICON_HELMET
    42PRESET_ICON_BITE
    55PRESET_ICON_MAX_VIDEO
    56PRESET_ICON_MAX_PHOTO
    57PRESET_ICON_MAX_TIMEWARP
    58PRESET_ICON_BASIC
    59PRESET_ICON_ULTRA_SLO_MO
    60PRESET_ICON_STANDARD_ENDURANCE
    61PRESET_ICON_ACTIVITY_ENDURANCE
    62PRESET_ICON_CINEMATIC_ENDURANCE
    63PRESET_ICON_SLOMO_ENDURANCE
    64PRESET_ICON_STATIONARY_1
    65PRESET_ICON_STATIONARY_2
    66PRESET_ICON_STATIONARY_3
    67PRESET_ICON_STATIONARY_4
    70PRESET_ICON_SIMPLE_SUPER_PHOTO
    71PRESET_ICON_SIMPLE_NIGHT_PHOTO
    73PRESET_ICON_HIGHEST_QUALITY_VIDEO
    74PRESET_ICON_STANDARD_QUALITY_VIDEO
    75PRESET_ICON_BASIC_QUALITY_VIDEO
    76PRESET_ICON_STAR_TRAIL
    77PRESET_ICON_LIGHT_PAINTING
    78PRESET_ICON_LIGHT_TRAIL
    79PRESET_ICON_FULL_FRAME
    41PRESET_ICON_HELMET
    80PRESET_ICON_EASY_MAX_VIDEO42PRESET_ICON_BITE
    81PRESET_ICON_EASY_MAX_PHOTO58PRESET_ICON_BASIC
    82PRESET_ICON_EASY_MAX_TIMEWARP59PRESET_ICON_ULTRA_SLO_MO
    83PRESET_ICON_EASY_MAX_STAR_TRAIL60PRESET_ICON_STANDARD_ENDURANCE
    84PRESET_ICON_EASY_MAX_LIGHT_PAINTING61PRESET_ICON_ACTIVITY_ENDURANCE
    85PRESET_ICON_EASY_MAX_LIGHT_TRAIL62PRESET_ICON_CINEMATIC_ENDURANCE
    89PRESET_ICON_MAX_STAR_TRAIL63PRESET_ICON_SLOMO_ENDURANCE
    90PRESET_ICON_MAX_LIGHT_PAINTING64PRESET_ICON_STATIONARY_1
    91PRESET_ICON_MAX_LIGHT_TRAIL65PRESET_ICON_STATIONARY_2
    92PRESET_ICON_360_BURST66PRESET_ICON_STATIONARY_3
    93PRESET_ICON_360_PHOTO_NIGHT67PRESET_ICON_STATIONARY_4
    94PRESET_ICON_360_NIGHTLAPSE70PRESET_ICON_SIMPLE_SUPER_PHOTO
    95PRESET_ICON_360_TIMELAPSE_PHOTO71PRESET_ICON_SIMPLE_NIGHT_PHOTO
    96PRESET_ICON_360_NIGHTLAPSE_PHOTO73PRESET_ICON_HIGHEST_QUALITY_VIDEO
    97PRESET_ICON_360_PHOTO74PRESET_ICON_STANDARD_QUALITY_VIDEO
    98PRESET_ICON_360_TIMELAPSE75PRESET_ICON_BASIC_QUALITY_VIDEO
    99PRESET_ICON_360_TIMEWARP76PRESET_ICON_STAR_TRAIL
    100PRESET_ICON_EASY_STANDARD_PROFILE77PRESET_ICON_LIGHT_PAINTING
    101PRESET_ICON_EASY_HDR_PROFILE78PRESET_ICON_LIGHT_TRAIL
    102PRESET_ICON_BURST_SLOMO79PRESET_ICON_FULL_FRAME
    PRESET_ICON_NIGHTLAPSE_PHOTO
    1002PRESET_ICON_MAX
    -
    title_id
    integer (EnumPresetTitle)
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
    +
    +title_id + +
    +
    +integer (EnumPresetTitle) +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 82 83 93 94
    Limitations <td></td> </tr> <tr> -<td>12</td> -<td>PRESET_TITLE_360_VIDEO</td> -<td></td> -</tr> -<tr> <td>13</td> <td>PRESET_TITLE_PHOTO_2</td> <td></td> @@ -18106,21 +22936,11 @@

    Limitations

    <td></td> </tr> <tr> -<td>15</td> -<td>PRESET_TITLE_360_PHOTO</td> -<td></td> -</tr> -<tr> <td>16</td> <td>PRESET_TITLE_TIME_WARP_2</td> <td></td> </tr> <tr> -<td>17</td> -<td>PRESET_TITLE_360_TIME_WARP</td> -<td></td> -</tr> -<tr> <td>18</td> <td>PRESET_TITLE_CUSTOM</td> <td></td> @@ -18246,81 +23066,6 @@

    Limitations

    <td></td> </tr> <tr> -<td>43</td> -<td>PRESET_TITLE_CUSTOM_CINEMATIC</td> -<td></td> -</tr> -<tr> -<td>44</td> -<td>PRESET_TITLE_DIVE</td> -<td></td> -</tr> -<tr> -<td>45</td> -<td>PRESET_TITLE_FPV</td> -<td></td> -</tr> -<tr> -<td>46</td> -<td>PRESET_TITLE_HDR</td> -<td></td> -</tr> -<tr> -<td>47</td> -<td>PRESET_TITLE_LANDSCAPE</td> -<td></td> -</tr> -<tr> -<td>48</td> -<td>PRESET_TITLE_LOG</td> -<td></td> -</tr> -<tr> -<td>49</td> -<td>PRESET_TITLE_CUSTOM_SLOMO</td> -<td></td> -</tr> -<tr> -<td>50</td> -<td>PRESET_TITLE_TRIPOD</td> -<td></td> -</tr> -<tr> -<td>51</td> -<td>PRESET_TITLE_360_TIMELAPSE</td> -<td></td> -</tr> -<tr> -<td>52</td> -<td>PRESET_TITLE_360_NIGHT_LAPSE</td> -<td></td> -</tr> -<tr> -<td>53</td> -<td>PRESET_TITLE_360_NIGHT_PHOTO</td> -<td></td> -</tr> -<tr> -<td>54</td> -<td>PRESET_TITLE_PANO_TIME_LAPSE</td> -<td></td> -</tr> -<tr> -<td>55</td> -<td>PRESET_TITLE_MAX_VIDEO</td> -<td></td> -</tr> -<tr> -<td>56</td> -<td>PRESET_TITLE_MAX_PHOTO</td> -<td></td> -</tr> -<tr> -<td>57</td> -<td>PRESET_TITLE_MAX_TIMEWARP</td> -<td></td> -</tr> -<tr> <td>58</td> <td>PRESET_TITLE_BASIC</td> <td></td> @@ -18431,16 +23176,6 @@

    Limitations

    <td></td> </tr> <tr> -<td>80</td> -<td>PRESET_TITLE_MAX_LENS_VIDEO</td> -<td></td> -</tr> -<tr> -<td>81</td> -<td>PRESET_TITLE_MAX_LENS_TIMEWARP</td> -<td></td> -</tr> -<tr> <td>82</td> <td>PRESET_TITLE_STANDARD_QUALITY_VIDEO</td> <td></td> @@ -18451,51 +23186,6 @@

    Limitations

    <td></td> </tr> <tr> -<td>84</td> -<td>PRESET_TITLE_EASY_MAX_VIDEO</td> -<td></td> -</tr> -<tr> -<td>85</td> -<td>PRESET_TITLE_EASY_MAX_PHOTO</td> -<td></td> -</tr> -<tr> -<td>86</td> -<td>PRESET_TITLE_EASY_MAX_TIMEWARP</td> -<td></td> -</tr> -<tr> -<td>87</td> -<td>PRESET_TITLE_EASY_MAX_STAR_TRAIL</td> -<td></td> -</tr> -<tr> -<td>88</td> -<td>PRESET_TITLE_EASY_MAX_LIGHT_PAINTING</td> -<td></td> -</tr> -<tr> -<td>89</td> -<td>PRESET_TITLE_EASY_MAX_LIGHT_TRAIL</td> -<td></td> -</tr> -<tr> -<td>90</td> -<td>PRESET_TITLE_MAX_STAR_TRAIL</td> -<td></td> -</tr> -<tr> -<td>91</td> -<td>PRESET_TITLE_MAX_LIGHT_PAINTING</td> -<td></td> -</tr> -<tr> -<td>92</td> -<td>PRESET_TITLE_MAX_LIGHT_TRAIL</td> -<td></td> -</tr> -<tr> <td>93</td> <td>PRESET_TITLE_HIGHEST_QUALITY_VIDEO</td> <td></td> @@ -18505,78 +23195,9 @@

    Limitations

    <td>PRESET_TITLE_USER_DEFINED_CUSTOM_NAME</td> <td></td> </tr> -<tr> -<td>95</td> -<td>PRESET_TITLE_360_DEG_BURST</td> -<td>- FW_PRESET_TITLE_360_BURST</td> -</tr> -<tr> -<td>96</td> -<td>PRESET_TITLE_360_DEG_NIGHT_PHOTO</td> -<td>- FW_PRESET_TITLE_360_NIGHT</td> -</tr> -<tr> -<td>97</td> -<td>PRESET_TITLE_360_DEG_TIME_LAPSE_PHOTO</td> -<td>- FW_PRESET_TITLE_360_TIME_LAPSE_PHOTO</td> -</tr> -<tr> -<td>98</td> -<td>PRESET_TITLE_360_DEG_NIGHT_LAPSE_PHOTO</td> -<td>- FW_PRESET_TITLE_360_NIGHT_LAPSE_PHOTO</td> -</tr> -<tr> -<td>99</td> -<td>PRESET_TITLE_EASY_STANDARD_PROFILE</td> -<td></td> -</tr> -<tr> -<td>100</td> -<td>PRESET_TITLE_EASY_HDR_PROFILE</td> -<td></td> -</tr> -<tr> -<td>101</td> -<td>PRESET_TITLE_360_DEG_TIME_LAPSE_VIDEO</td> -<td>- FW_PRESET_TITLE_MAX_2_TIME_LAPSE</td> -</tr> -<tr> -<td>102</td> -<td>PRESET_TITLE_360_DEG_NIGHT_LAPSE_VIDEO</td> -<td>- FW_PRESET_TITLE_MAX_2_NIGHT_LAPSE</td> -</tr> -<tr> -<td>103</td> -<td>PRESET_TITLE_360_DEG_PHOTO</td> -<td>- FW_PRESET_TITLE_MAX_2_PHOTO</td> -</tr> -<tr> -<td>104</td> -<td>PRESET_TITLE_360_DEG_TIME_WARP</td> -<td>- FW_PRESET_TITLE_MAX_2_TIME_WARP</td> -</tr> -<tr> -<td>105</td> -<td>PRESET_TITLE_360_DEG_VIDEO</td> -<td>- FW_PRESET_TITLE_MAX_2_VIDEO</td> -</tr> -<tr> -<td>106</td> -<td>PRESET_TITLE_BURST_SLOMO</td> -<td></td> -</tr> -<tr> -<td>107</td> -<td>PRESET_TITLE_VLOG</td> -<td></td> -</tr> -<tr> -<td>108</td> -<td>PRESET_TITLE_MAX</td> -<td></td> -</tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +
    @@ -18584,7 +23205,8 @@

    Limitations

    - + + @@ -18645,11 +23267,6 @@

    Limitations

    - - - - - @@ -18660,21 +23277,11 @@

    Limitations

    - - - - - - - - - - @@ -18785,93 +23392,18 @@

    Limitations

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + @@ -18985,16 +23517,6 @@

    Limitations

    - - - - - - - - - - @@ -19005,51 +23527,6 @@

    Limitations

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -19059,101 +23536,134 @@

    Limitations

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
    ID Summary
    0 PRESET_TITLE_ACTIVITY
    12PRESET_TITLE_360_VIDEO
    13 PRESET_TITLE_PHOTO_2
    15PRESET_TITLE_360_PHOTO
    16 PRESET_TITLE_TIME_WARP_2
    17PRESET_TITLE_360_TIME_WARP
    18 PRESET_TITLE_CUSTOM
    40PRESET_TITLE_CHESTY
    41PRESET_TITLE_HELMET
    42PRESET_TITLE_BITE
    43PRESET_TITLE_CUSTOM_CINEMATIC
    44PRESET_TITLE_DIVE
    45PRESET_TITLE_FPV
    46PRESET_TITLE_HDR
    47PRESET_TITLE_LANDSCAPE
    48PRESET_TITLE_LOG
    49PRESET_TITLE_CUSTOM_SLOMO
    50PRESET_TITLE_TRIPOD
    51PRESET_TITLE_360_TIMELAPSE
    52PRESET_TITLE_360_NIGHT_LAPSE
    53PRESET_TITLE_360_NIGHT_PHOTO
    54PRESET_TITLE_PANO_TIME_LAPSE
    55PRESET_TITLE_MAX_VIDEO40PRESET_TITLE_CHESTY
    56PRESET_TITLE_MAX_PHOTO41PRESET_TITLE_HELMET
    57PRESET_TITLE_MAX_TIMEWARP42PRESET_TITLE_BITE
    80PRESET_TITLE_MAX_LENS_VIDEO
    81PRESET_TITLE_MAX_LENS_TIMEWARP
    82 PRESET_TITLE_STANDARD_QUALITY_VIDEO
    84PRESET_TITLE_EASY_MAX_VIDEO
    85PRESET_TITLE_EASY_MAX_PHOTO
    86PRESET_TITLE_EASY_MAX_TIMEWARP
    87PRESET_TITLE_EASY_MAX_STAR_TRAIL
    88PRESET_TITLE_EASY_MAX_LIGHT_PAINTING
    89PRESET_TITLE_EASY_MAX_LIGHT_TRAIL
    90PRESET_TITLE_MAX_STAR_TRAIL
    91PRESET_TITLE_MAX_LIGHT_PAINTING
    92PRESET_TITLE_MAX_LIGHT_TRAIL
    93 PRESET_TITLE_HIGHEST_QUALITY_VIDEO PRESET_TITLE_USER_DEFINED_CUSTOM_NAME
    95PRESET_TITLE_360_DEG_BURST- FW_PRESET_TITLE_360_BURST
    96PRESET_TITLE_360_DEG_NIGHT_PHOTO- FW_PRESET_TITLE_360_NIGHT
    97PRESET_TITLE_360_DEG_TIME_LAPSE_PHOTO- FW_PRESET_TITLE_360_TIME_LAPSE_PHOTO
    98PRESET_TITLE_360_DEG_NIGHT_LAPSE_PHOTO- FW_PRESET_TITLE_360_NIGHT_LAPSE_PHOTO
    99PRESET_TITLE_EASY_STANDARD_PROFILE
    100PRESET_TITLE_EASY_HDR_PROFILE
    101PRESET_TITLE_360_DEG_TIME_LAPSE_VIDEO- FW_PRESET_TITLE_MAX_2_TIME_LAPSE
    102PRESET_TITLE_360_DEG_NIGHT_LAPSE_VIDEO- FW_PRESET_TITLE_MAX_2_NIGHT_LAPSE
    103PRESET_TITLE_360_DEG_PHOTO- FW_PRESET_TITLE_MAX_2_PHOTO
    104PRESET_TITLE_360_DEG_TIME_WARP- FW_PRESET_TITLE_MAX_2_TIME_WARP
    105PRESET_TITLE_360_DEG_VIDEO- FW_PRESET_TITLE_MAX_2_VIDEO
    106PRESET_TITLE_BURST_SLOMO
    107PRESET_TITLE_VLOG
    108PRESET_TITLE_MAX
    +
    +
    +
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    Content type
    application/json
    {
    • "custom_name": "string",
    • "icon_id": 0,
    • "title_id": 0
    }

    Response samples

    Content type
    application/json
    { }

    Preview Stream

    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + + +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    {
      +
    • +"custom_name": "string", +
    • +
    • +"icon_id": 0, +
    • +
    • +"title_id": 0 +
    • +
    +}
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
      + + +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Preview Stream

    +

    When the preview stream is started, the camera starts up a UDP client and begins writing MPEG Transport +"> +

    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.

    -

    Start Preview Stream

    +
    +

    +Start Preview Stream

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -19164,39 +23674,105 @@

    Limitations

  • WIFI

  • -
    query Parameters
    port
    integer
    Example: port=8556

    Port to use for Preview Stream.

    -

    Not supported on:

    -
      -
    • Hero 11 Black Mini
    • -
    • Hero 11 Black
    • -
    • Hero 10 Black
    • -
    • Hero 9 Black
    • +
    +
    +
    query Parameters
    + + + +
    +port +integer Example: port=8556Port to use for Preview Stream. +Not supported on +Hero 11 Black Mini +Hero 11 Black +Hero 10 Black +Hero 9 Black
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + +
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/stream/start?port=8556'

    Response samples

    Content type
    application/json
    { }

    Stop Preview Stream

    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/stream/start?port=8556'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Stop Preview Stream

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -19207,18 +23783,91 @@

    Limitations

  • WIFI

  • -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/camera/stream/stop

    Response samples

    Content type
    application/json
    { }

    Query

    Get information about the camera

    -

    Get Camera State

    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/camera/stream/stop
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +

    +Query

    +
    +

    Get information about the camera

    +
    +
    +
    +
    +

    +Get Camera State

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -19238,16 +23888,49 @@

    Limitations


    Get all camera settings and statuses.

    -

    Responses

    Response Schema: application/json
    + + + + + + + + +
    object

    All currently known setting values indexed by setting ID

    -
    + + + + + + + +
    2
    integer
    Enum: 1 4 6 7 9 18 24 25 26 27 28 100 107 108 109 110 111
    Responses +
    +
    +
    Response Schema: application/json +
    + + + + + + + + + + + + +
    + + +
    +
    +object +
    +

    All currently known setting values indexed by setting ID

    +
    +
    +
    +
    + + + + + + +
    +2 +
    +
    +integer +
    +
    + Enum: 1 4 6 7 9 18 24 25 26 27 28 100 107 108 109 110 111
    +

    Resolution

    HERO12 Black HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -19356,20 +24040,27 @@

    Limitations

    - + + - + - + - + @@ -19379,12 +24070,16 @@

    Limitations

    - + - + @@ -19399,22 +24094,30 @@

    Limitations

    - + - + - + - + @@ -19441,13 +24144,26 @@

    Limitations

    -
    Supported Cameras
    1 4KHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    4 2.7KHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    6 2.7K 4:3HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    7
    9 1080HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    18 4K 4:3HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    24
    26 5.3K 8:7HERO11 Black MiniHERO11 Black +HERO11 Black MiniHERO11 Black +
    27 5.3K 4:3HERO11 Black MiniHERO11 Black +HERO11 Black MiniHERO11 Black +
    28 4K 8:7HERO11 Black MiniHERO11 Black +HERO11 Black MiniHERO11 Black +
    100 5.3KHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 Black +
    107 2.7K HERO12 Black
    -
    3
    integer
    Enum: 0 1 2 5 6 8 9 10 13
    +
    +3 +
    +
    +integer +
    +
    + Enum: 0 1 2 5 6 8 9 10 13
    +

    Frames Per Second

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -19516,58 +24233,90 @@

    Limitations

    - + + - + - + - + - + - + - + - + - + - - -
    Supported Cameras
    0 240HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    1 120HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    2 100HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    5 60HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    6 50HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    8 30HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    9 25HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    10 24HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    13 200HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
    -
    43
    integer
    Enum: 0 2 3 4
    HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    +43 +
    +
    +integer +
    +
    + Enum: 0 2 3 4
    +

    Webcam Digital Lenses

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -19611,33 +24361,55 @@

    Limitations

    - + + - + - + - + - - -
    Supported Cameras
    0 WideHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    2 NarrowHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    3 SuperviewHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    4 LinearHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
    -
    59
    integer
    Enum: 0 1 4 6 7 11 12
    HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    +59 +
    +
    +integer +
    +
    + Enum: 0 1 4 6 7 11 12
    +

    Auto Power Down

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -19696,30 +24469,41 @@

    Limitations

    - + + - + - + - + - + - + @@ -19731,11 +24515,24 @@

    Limitations

    -
    Supported Cameras
    0 NeverHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    1 1 MinHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    4 5 MinHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    6 15 MinHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    7 30 MinHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    11 30 Seconds HERO11 Black Mini
    -
    83
    integer
    Enum: 0 1
    +
    +83 +
    +
    +integer +
    +
    + Enum: 0 1
    +

    GPS

    HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -19767,19 +24565,37 @@

    Limitations

    - + + - + - - -
    Supported Cameras
    0 OffHERO11 BlackHERO10 BlackHERO9 Black +HERO11 BlackHERO10 BlackHERO9 Black +
    1 OnHERO11 BlackHERO10 BlackHERO9 Black
    -
    108
    integer
    Enum: 0 1 3 4
    HERO10 BlackHERO9 Black +
    +
    +
    +108 +
    +
    +integer +
    +
    + Enum: 0 1 3 4
    +

    Aspect Ratio

    HERO12 Black

    @@ -19819,7 +24636,8 @@

    Limitations

    - + + @@ -19839,13 +24657,26 @@

    Limitations

    -
    Supported Cameras
    0 4:3 HERO12 Black 9:16 HERO12 Black
    -
    121
    integer
    Enum: 0 2 3 4 7 8 9 10 11
    +
    +121 +
    +
    +integer +
    +
    + Enum: 0 2 3 4 7 8 9 10 11
    +

    Lens

    HERO12 Black HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -19914,57 +24746,87 @@

    Limitations

    - + + - + - + - + - + - + - + - + - + -
    Supported Cameras
    0 WideHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    2 NarrowHERO10 BlackHERO9 Black +HERO10 BlackHERO9 Black +
    3 SuperviewHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    4 LinearHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    7 Max SuperViewHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    8 Linear + Horizon LevelingHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    9 HyperViewHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    10 Linear + Horizon LockHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    11 Max HyperView HERO12 Black
    -
    122
    integer
    Enum: 19 100 101 102
    +
    +122 +
    +
    +integer +
    +
    + Enum: 19 100 101 102
    +

    Lens

    HERO12 Black HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -20007,32 +24870,54 @@

    Limitations

    - + + - + - + - + - - -
    Supported Cameras
    19 NarrowHERO10 BlackHERO9 Black +HERO10 BlackHERO9 Black +
    100 Max SuperViewHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    101 WideHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    102 LinearHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
    -
    123
    integer
    Enum: 19 100 101 102
    HERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    +123 +
    +
    +integer +
    +
    + Enum: 19 100 101 102
    +

    Time Lapse Digital Lenses

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -20075,10 +24961,13 @@

    Limitations

    - + + - + @@ -20088,19 +24977,36 @@

    Limitations

    - + - - -
    Supported Cameras
    19 NarrowHERO10 BlackHERO9 Black +HERO10 BlackHERO9 Black +
    100
    101 WideHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    102 LinearHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
    -
    128
    integer
    Enum: 13 20 21 26
    HERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    + + + +128 + +
    +
    +integer +
    +
    + Enum: 13 20 21 26
    +

    Media Format

    HERO12 Black HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -20143,33 +25050,55 @@

    Limitations

    - + + - + - + - + - - -
    Supported Cameras
    13 Time Lapse VideoHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    20 Time Lapse PhotoHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    21 Night Lapse PhotoHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    26 Night Lapse VideoHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
    -
    134
    integer
    Enum: 2 3
    HERO11 BlackHERO10 BlackHERO9 Black + + + + +
    +
    + + + +134 + +
    +
    +integer +
    +
    + Enum: 2 3
    +

    Anti-Flicker

    HERO12 Black HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -20203,23 +25133,41 @@

    Limitations

    - + + - + - - -
    Supported Cameras
    2 60HzHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    3 50HzHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
    -
    135
    integer
    Enum: 0 1 2 3 4 100
    HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black + + + + +
    +
    + + + +135 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 100
    +

    Hypersmooth

    HERO12 Black HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -20273,39 +25222,63 @@

    Limitations

    - + + - + - + - + - + - + -
    Supported Cameras
    0 OffHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    1 LowHERO12 BlackHERO11 Black MiniHERO11 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO9 Black +
    2 HighHERO10 BlackHERO9 Black +HERO10 BlackHERO9 Black +
    3 BoostHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    4 Auto BoostHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    100 Standard HERO10 Black
    -
    150
    integer
    Enum: 0 2
    + +150 + +
    +
    +integer +
    +
    + Enum: 0 2
    +

    Horizon Leveling

    HERO11 Black

    @@ -20335,7 +25309,8 @@

    Limitations

    - + + @@ -20345,9 +25320,22 @@

    Limitations

    -
    Supported Cameras
    0 Off HERO11 Black Locked HERO11 Black
    -
    151
    integer
    Enum: 0 2
    + +151 + +
    +
    +integer +
    +
    + Enum: 0 2
    +

    Horizon Leveling

    HERO11 Black

    @@ -20377,7 +25366,8 @@

    Limitations

    - + + @@ -20387,11 +25377,24 @@

    Limitations

    -
    Supported Cameras
    0 Off HERO11 Black Locked HERO11 Black
    -
    162
    integer
    Enum: 0 1
    + +162 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Max Lens

    HERO11 Black HERO10 Black HERO9 Black

    @@ -20423,22 +25427,40 @@

    Limitations

    Supported Cameras - + + 0 Off -HERO11 BlackHERO10 BlackHERO9 Black + +HERO11 BlackHERO10 BlackHERO9 Black + 1 On -HERO11 BlackHERO10 BlackHERO9 Black - - -
    167
    integer
    Enum: 2 3 4
    HERO10 BlackHERO9 Black + + + + +
    +
    + + + +167 + +
    +
    +integer +
    +
    + Enum: 2 3 4
    +

    HindSight

    HERO12 Black HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -20476,24 +25499,44 @@

    Limitations

    - + + - + - + - - -
    Supported Cameras
    2 15 SecondsHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    3 30 SecondsHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    4 OffHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
    -
    171
    integer
    Enum: 0 2 3 4 5 6 7 8 9 10
    HERO11 BlackHERO10 BlackHERO9 Black + + + + +
    +
    + + + +171 + +
    +
    +integer +
    +
    + Enum: 0 2 3 4 5 6 7 8 9 10
    +

    Interval

    HERO12 Black

    @@ -20563,7 +25607,8 @@

    Limitations

    - + + @@ -20613,9 +25658,22 @@

    Limitations

    -
    Supported Cameras
    0 Off HERO12 Black 3s HERO12 Black
    -
    172
    integer
    Enum: 0 1 2 3 4 5 6 7 8 9
    + +172 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9
    +

    Duration

    HERO12 Black

    @@ -20685,7 +25744,8 @@

    Limitations

    - + + @@ -20735,9 +25795,22 @@

    Limitations

    -
    Supported Cameras
    0 Off HERO12 Black 3 Hours HERO12 Black
    -
    173
    integer
    Enum: 0 1 2
    + +173 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Video Performance Mode

    HERO10 Black

    @@ -20772,7 +25846,8 @@

    Limitations

    - + + @@ -20787,10 +25862,23 @@

    Limitations

    -
    Supported Cameras
    0 Maximum Video Performance HERO10 Black Tripod / Stationary Video HERO10 Black
    -
    175
    integer
    Enum: 0 1
    + +175 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Controls

    HERO12 Black HERO11 Black

    @@ -20821,20 +25910,38 @@

    Limitations

    - + + - + - - -
    Supported Cameras
    0 EasyHERO12 BlackHERO11 Black +HERO12 BlackHERO11 Black +
    1 ProHERO12 BlackHERO11 Black
    -
    176
    integer
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
    HERO11 Black + + + + +
    +
    + + + +176 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
    +

    Easy Mode Speed

    HERO12 Black - HERO11 Black

    +HERO11 Black

    @@ -21185,7 +26293,8 @@

    Limitations

    - + + @@ -21515,9 +26624,22 @@

    Limitations

    -
    Supported Cameras
    0 8X Ultra Slo-Mo HERO11 Black 1X Speed (4K) (50Hz) (Full Frame) (Low Light) (V2) HERO12 Black
    -
    177
    integer
    Enum: 0 1
    + +177 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Enable Night Photo

    HERO11 Black

    @@ -21547,7 +26670,8 @@

    Limitations

    - + + @@ -21557,11 +26681,24 @@

    Limitations

    -
    Supported Cameras
    0 Off HERO11 Black On HERO11 Black
    -
    178
    integer
    Enum: 0 1
    + +178 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Wireless Band

    HERO12 Black HERO11 Black Mini HERO11 Black

    @@ -21593,21 +26731,39 @@

    Limitations

    Supported Cameras - + + 0 2.4GHz -HERO12 BlackHERO11 Black MiniHERO11 Black + +HERO12 BlackHERO11 Black MiniHERO11 Black + 1 5GHz -HERO12 BlackHERO11 Black MiniHERO11 Black - - -
    179
    integer
    Enum: 1 2 3
    HERO11 Black MiniHERO11 Black + + + + +
    +
    + + + +179 + +
    +
    +integer +
    +
    + Enum: 1 2 3
    +

    Trail Length

    HERO12 Black HERO11 Black Mini HERO11 Black

    @@ -21644,24 +26801,44 @@

    Limitations

    Supported Cameras - + + 1 Short -HERO12 BlackHERO11 Black MiniHERO11 Black + +HERO12 BlackHERO11 Black MiniHERO11 Black + 2 Long -HERO12 BlackHERO11 Black MiniHERO11 Black + +HERO12 BlackHERO11 Black MiniHERO11 Black + 3 Max -HERO12 BlackHERO11 Black MiniHERO11 Black - - -
    180
    integer
    Enum: 0 101 102
    HERO11 Black MiniHERO11 Black + + + + +
    +
    + + + +180 + +
    +
    +integer +
    +
    + Enum: 0 101 102
    +

    Video Mode

    HERO11 Black

    @@ -21696,7 +26874,8 @@

    Limitations

    - + + @@ -21711,9 +26890,22 @@

    Limitations

    -
    Supported Cameras
    0 Highest Quality HERO11 Black Longest Battery (Green Icon) HERO11 Black
    -
    182
    integer
    Enum: 0 1
    + +182 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Bit Rate

    HERO12 Black

    @@ -21743,7 +26936,8 @@

    Limitations

    - + + @@ -21753,9 +26947,22 @@

    Limitations

    -
    Supported Cameras
    0 Standard HERO12 Black High HERO12 Black
    -
    183
    integer
    Enum: 0 2
    + +183 + +
    +
    +integer +
    +
    + Enum: 0 2
    +

    Bit Depth

    HERO12 Black

    @@ -21785,7 +26993,8 @@

    Limitations

    - + + @@ -21795,9 +27004,22 @@

    Limitations

    -
    Supported Cameras
    0 8-Bit HERO12 Black 10-Bit HERO12 Black
    -
    184
    integer
    Enum: 0 1 2
    + +184 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Profiles

    HERO12 Black

    @@ -21832,7 +27055,8 @@

    Limitations

    - + + @@ -21847,9 +27071,22 @@

    Limitations

    -
    Supported Cameras
    0 Standard HERO12 Black Log HERO12 Black
    -
    186
    integer
    Enum: 0 1 2
    + +186 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Video Mode

    HERO12 Black

    @@ -21884,7 +27122,8 @@

    Limitations

    - + + @@ -21899,9 +27138,22 @@

    Limitations

    -
    Supported Cameras
    0 Highest Quality HERO12 Black Basic Quality HERO12 Black
    -
    187
    integer
    Enum: 0 1 2 3 4 5 6 7
    + +187 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7
    +

    Lapse Mode

    HERO12 Black

    @@ -21961,7 +27214,8 @@

    Limitations

    - + + @@ -22001,9 +27255,22 @@

    Limitations

    -
    Supported Cameras
    0 TimeWarp HERO12 Black Max Vehicle Lights HERO12 Black
    -
    189
    integer
    Enum: 0 1 2
    + +189 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Max Lens Mod

    HERO12 Black

    @@ -22038,7 +27306,8 @@

    Limitations

    - + + @@ -22053,9 +27322,22 @@

    Limitations

    -
    Supported Cameras
    0 None HERO12 Black Max Lens 2.0 HERO12 Black
    -
    190
    integer
    Enum: 0 1
    + +190 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Max Lens Mod Enable

    HERO12 Black

    @@ -22085,7 +27368,8 @@

    Limitations

    - + + @@ -22095,9 +27379,22 @@

    Limitations

    -
    Supported Cameras
    0 Off HERO12 Black On HERO12 Black
    -
    191
    integer
    Enum: 0 1
    + +191 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Photo Mode

    HERO12 Black

    @@ -22127,7 +27425,8 @@

    Limitations

    - + + @@ -22137,9 +27436,22 @@

    Limitations

    -
    Supported Cameras
    0 Super Photo HERO12 Black Night Photo HERO12 Black
    -
    192
    integer
    Enum: 0 1 3
    + +192 + +
    +
    +integer +
    +
    + Enum: 0 1 3
    +

    Aspect Ratio

    HERO12 Black

    @@ -22174,7 +27487,8 @@

    Limitations

    - + + @@ -22189,9 +27503,22 @@

    Limitations

    -
    Supported Cameras
    0 4:3 HERO12 Black 8:7 HERO12 Black
    -
    193
    integer
    Enum: 0 1 2
    + +193 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Framing

    HERO12 Black

    @@ -22226,7 +27554,8 @@

    Limitations

    - + + @@ -22241,27 +27570,70 @@

    Limitations

    -
    Supported Cameras
    0 Widescreen HERO12 Black Full Frame HERO12 Black
    -
    object

    All currently known status values indexed by status ID

    -
    +
    1
    integer
    Enum: 0 1

    Is the system's internal battery present?

    +
    +
    +
    + +
    + + + + + + +
    +
    +object +
    +

    All currently known status values indexed by status ID

    +
    +
    + + + +
    + + + + +
    +1 +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the system's internal battery present?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    2
    integer
    Enum: 0 1 2 3 4
    +
    +2 +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4
    +

    Rough approximation of internal battery level in bars (or charging)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -22303,7 +27676,8 @@

    Limitations

    - + + @@ -22323,97 +27697,199 @@

    Limitations

    -
    Meaning
    0 Zero
    4 Charging
    -
    6
    integer
    Enum: 0 1

    Is the system currently overheating?

    +
    +
    +
    + + + +6 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the system currently overheating?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    8
    integer
    Enum: 0 1

    Is the camera busy?

    +
    +
    + + + +8 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the camera busy?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    9
    integer
    Enum: 0 1

    Is Quick Capture feature enabled?

    +
    +
    + + + +9 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Quick Capture feature enabled?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    10
    integer
    Enum: 0 1

    Is the system currently encoding?

    +
    +
    + + + +10 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the system currently encoding?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    11
    integer
    Enum: 0 1

    Is LCD lock active?

    +
    +
    + + + +11 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is LCD lock active?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    13
    integer

    When encoding video, this is the duration (seconds) of the video so far; 0 otherwise

    +
    +
    + + + +13 + +
    +
    +integer +
    +

    When encoding video, this is the duration (seconds) of the video so far; 0 otherwise

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    17
    integer
    Enum: 0 1

    Are Wireless Connections enabled?

    +HERO9 Black

    +
    +
    + + + +17 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Are Wireless Connections enabled?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    19
    integer
    Enum: 0 1 2 3 4
    + +19 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4
    +

    The pairing state of the camera

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -22455,7 +27932,8 @@

    Limitations

    - + + @@ -22475,13 +27953,26 @@

    Limitations

    -
    Meaning
    0 Never Started
    4 Completed
    -
    20
    integer
    Enum: 0 1 2 3
    + +20 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3
    +

    The last type of pairing in which the camera was engaged

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -22519,7 +28011,8 @@

    Limitations

    - + + @@ -22535,23 +28028,47 @@

    Limitations

    -
    Meaning
    0 Not Pairing
    3 Pairing Bluetooth Device
    -
    21
    integer

    Time since boot (milliseconds) of last successful pairing complete action

    + + +
    +
    + + + +21 + +
    +
    +integer +
    +

    Time since boot (milliseconds) of last successful pairing complete action

    HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    22
    integer
    Enum: 0 1 2 3 4
    + +22 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4
    +

    State of current scan for WiFi Access Points

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -22593,7 +28111,8 @@

    Limitations

    - + + @@ -22613,25 +28132,49 @@

    Limitations

    -
    Meaning
    0 Never started
    4 Completed
    -
    23
    integer

    Time since boot (milliseconds) that the WiFi Access Point scan completed

    + + +
    +
    + + + +23 + +
    +
    +integer +
    +

    Time since boot (milliseconds) that the WiFi Access Point scan completed

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    24
    integer
    Enum: 0 1 2 3 4
    + +24 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4
    +

    WiFi AP provisioning state

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -22673,7 +28217,8 @@

    Limitations

    - + + @@ -22693,93 +28238,187 @@

    Limitations

    -
    Meaning
    0 Never started
    4 Completed
    -
    26
    integer

    Wireless remote control version

    + + +
    +
    + + + +26 + +
    +
    +integer +
    +

    Wireless remote control version

    HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    27
    integer
    Enum: 0 1

    Is a wireless remote control connected?

    +HERO9 Black

    +
    +
    + + + +27 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is a wireless remote control connected?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    28
    integer

    Wireless Pairing State. Each bit contains state information (see WirelessPairingStateFlags)

    +
    +
    + + + +28 + +
    +
    +integer +
    +

    Wireless Pairing State. Each bit contains state information (see WirelessPairingStateFlags)

    HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    29
    string

    SSID of the AP the camera is currently connected to. On BLE connection, value is big-endian byte-encoded int32

    +
    +
    + + + +29 + +
    +
    +string +
    +

    SSID of the AP the camera is currently connected to. On BLE connection, value is big-endian byte-encoded int32

    HERO12 Black HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    30
    string

    The camera's WiFi SSID. On BLE connection, value is big-endian byte-encoded int32

    +
    +
    + + + +30 + +
    +
    +string +
    +

    The camera's WiFi SSID. On BLE connection, value is big-endian byte-encoded int32

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    31
    integer

    The number of wireless devices connected to the camera

    +HERO9 Black

    +
    +
    + + + +31 + +
    +
    +integer +
    +

    The number of wireless devices connected to the camera

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    32
    integer
    Enum: 0 1

    Is Preview Stream enabled?

    +
    +
    + + + +32 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Preview Stream enabled?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    33
    integer
    Enum: -1 0 1 2 3 4 8
    + +33 + +
    +
    +integer +
    +
    + Enum: -1 0 1 2 3 4 8
    +

    Primary Storage Status

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -22829,7 +28469,8 @@

    Limitations

    - + + @@ -22857,59 +28498,116 @@

    Limitations

    -
    Meaning
    -1 Unknown
    8 SD Card Swapped
    -
    34
    integer

    How many photos can be taken with current settings before sdcard is full

    + + +
    +
    + + + +34 + +
    +
    +integer +
    +

    How many photos can be taken with current settings before sdcard is full

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    35
    integer

    How many minutes of video can be captured with current settings before sdcard is full

    +HERO9 Black

    +
    +
    + + + +35 + +
    +
    +integer +
    +

    How many minutes of video can be captured with current settings before sdcard is full

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    38
    integer

    Total number of photos on sdcard

    +HERO9 Black

    +
    +
    + + + +38 + +
    +
    +integer +
    +

    Total number of photos on sdcard

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    39
    integer

    Total number of videos on sdcard

    +
    +
    + + + +39 + +
    +
    +integer +
    +

    Total number of videos on sdcard

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    41
    integer
    Enum: 0 1 2 3 4 5 6 7 8 9 10
    + +41 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10
    +

    The current status of Over The Air (OTA) update

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -22975,7 +28674,8 @@

    Limitations

    - + + @@ -23019,120 +28719,238 @@

    Limitations

    -
    Meaning
    0 Idle
    10 GoPro App: Ready
    -
    42
    integer
    Enum: 0 1

    Is there a pending request to cancel a firmware update download?

    + + +
    +
    + + + +42 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is there a pending request to cancel a firmware update download?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    45
    integer
    Enum: 0 1

    Is locate camera feature active?

    +
    +
    + + + +45 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is locate camera feature active?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    49
    integer

    The current timelapse interval countdown value (e.g. 5...4...3...2...1...)

    +
    +
    + + + +49 + +
    +
    +integer +
    +

    The current timelapse interval countdown value (e.g. 5...4...3...2...1...)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    54
    integer

    Remaining space on the sdcard in Kilobytes

    +
    +
    + + + +54 + +
    +
    +integer +
    +

    Remaining space on the sdcard in Kilobytes

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    55
    integer
    Enum: 0 1

    Is preview stream supported in current recording/mode/secondary-stream?

    +
    +
    + + + +55 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is preview stream supported in current recording/mode/secondary-stream?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    56
    integer

    WiFi signal strength in bars

    +
    +
    + + + +56 + +
    +
    +integer +
    +

    WiFi signal strength in bars

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    58
    integer

    The number of hilights in currently-encoding video (value is set to 0 when encoding stops)

    +
    +
    + + + +58 + +
    +
    +integer +
    +

    The number of hilights in currently-encoding video (value is set to 0 when encoding stops)

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    59
    integer

    Time since boot (milliseconds) of most recent hilight in encoding video (set to 0 when encoding stops)

    +HERO9 Black

    +
    +
    + + + +59 + +
    +
    +integer +
    +

    Time since boot (milliseconds) of most recent hilight in encoding video (set to 0 when encoding stops)

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    60
    integer

    The minimum time between camera status updates (milliseconds). Best practice is to not poll for status more often than this

    +HERO9 Black

    +
    +
    + + + +60 + +
    +
    +integer +
    +

    The minimum time between camera status updates (milliseconds). Best practice is to not poll for status more often than this

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    65
    integer
    Enum: 0 1 2 3
    + +65 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3
    +

    Liveview Exposure Select Mode

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -23169,7 +28988,8 @@

    Limitations

    - + + @@ -23185,69 +29005,141 @@

    Limitations

    -
    Meaning
    0 Disabled
    3 Hemisphere
    -
    66
    integer [ 0 .. 100 ]

    Liveview Exposure Select: y-coordinate (percent)

    + + +
    +
    + + + +66 + +
    +
    +integer [ 0 .. 100 ] +
    +

    Liveview Exposure Select: y-coordinate (percent)

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    67
    integer [ 0 .. 100 ]

    Liveview Exposure Select: y-coordinate (percent)

    +HERO9 Black

    +
    +
    + + + +67 + +
    +
    +integer [ 0 .. 100 ] +
    +

    Liveview Exposure Select: y-coordinate (percent)

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    68
    integer
    Enum: 0 1

    Does the camera currently have a GPS lock?

    +HERO9 Black

    +
    +
    + + + +68 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Does the camera currently have a GPS lock?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    69
    integer
    Enum: 0 1

    Is AP mode enabled?

    +
    +
    + + + +69 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is AP mode enabled?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    70
    integer [ 0 .. 100 ]

    Internal battery level (percent)

    +
    +
    + + + +70 + +
    +
    +integer [ 0 .. 100 ] +
    +

    Internal battery level (percent)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    74
    integer
    Enum: 0 1 2
    + +74 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Microphone Accessory status

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -23281,7 +29174,8 @@

    Limitations

    - + + @@ -23293,25 +29187,49 @@

    Limitations

    -
    Meaning
    0 Accessory not connected
    2 Accessory connected and a microphone is plugged into the accessory
    -
    75
    integer [ 0 .. 100 ]

    Digital Zoom level (percent)

    + + +
    +
    + + + +75 + +
    +
    +integer [ 0 .. 100 ] +
    +

    Digital Zoom level (percent)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    76
    integer
    Enum: 0 1
    + +76 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Wireless Band

    HERO12 Black HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -23341,7 +29260,8 @@

    Limitations

    - + + @@ -23349,91 +29269,195 @@

    Limitations

    -
    Meaning
    0 2.4 GHz
    1 5 GHz
    -
    77
    integer
    Enum: 0 1

    Is Digital Zoom feature available?

    + + +
    +
    + + + +77 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Digital Zoom feature available?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    78
    integer
    Enum: 0 1

    Are current video settings mobile friendly? (related to video compression and frame rate)

    +
    +
    + + + +78 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Are current video settings mobile friendly? (related to video compression and frame rate)

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    79
    integer
    Enum: 0 1

    Is the camera currently in First Time Use (FTU) UI flow?

    +HERO9 Black

    +
    +
    + + + +79 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the camera currently in First Time Use (FTU) UI flow?

    HERO10 Black - HERO9 Black

    -
    81
    integer
    Enum: 0 1

    Is 5GHz wireless band available?

    +HERO9 Black

    +
    +
    + + + +81 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is 5GHz wireless band available?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    82
    integer
    Enum: 0 1

    Is the system fully booted and ready to accept commands?

    +
    +
    + + + +82 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the system fully booted and ready to accept commands?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    83
    integer
    Enum: 0 1

    Is the internal battery charged sufficiently to start Over The Air (OTA) update?

    +
    +
    + + + +83 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the internal battery charged sufficiently to start Over The Air (OTA) update?

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    85
    integer
    Enum: 0 1

    Is the camera getting too cold to continue recording?

    +HERO9 Black

    +
    +
    + + + +85 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the camera getting too cold to continue recording?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    86
    integer
    Enum: 0 1 2 3
    + +86 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3
    +

    Rotational orientation of the camera

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -23471,7 +29496,8 @@

    Limitations

    - + + @@ -23487,135 +29513,273 @@

    Limitations

    -
    Meaning
    0 0 degrees (upright)
    3 270 degrees (laying on left side)
    -
    88
    integer
    Enum: 0 1

    Is this camera model capable of zooming while encoding?

    + + +
    +
    + + + +88 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is this camera model capable of zooming while encoding?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    89
    integer

    Current Flatmode ID

    +
    +
    + + + +89 + +
    +
    +integer +
    +

    Current Flatmode ID

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    93
    integer

    Current Video Preset (ID)

    +
    +
    + + + +93 + +
    +
    +integer +
    +

    Current Video Preset (ID)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    94
    integer

    Current Photo Preset (ID)

    +
    +
    + + + +94 + +
    +
    +integer +
    +

    Current Photo Preset (ID)

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    95
    integer

    Current Time Lapse Preset (ID)

    +HERO9 Black

    +
    +
    + + + +95 + +
    +
    +integer +
    +

    Current Time Lapse Preset (ID)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    96
    integer

    Current Preset Group (ID) (corresponds to ui_mode_groups in settings.json)

    +
    +
    + + + +96 + +
    +
    +integer +
    +

    Current Preset Group (ID) (corresponds to ui_mode_groups in settings.json)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    97
    integer

    Current Preset (ID)

    +
    +
    + + + +97 + +
    +
    +integer +
    +

    Current Preset (ID)

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    98
    integer

    Preset Modified Status, which contains an event ID and a Preset (Group) ID

    +
    +
    + + + +98 + +
    +
    +integer +
    +

    Preset Modified Status, which contains an event ID and a Preset (Group) ID

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    99
    integer

    The number of Live Bursts can be captured with current settings before sdcard is full

    +
    +
    + + + +99 + +
    +
    +integer +
    +

    The number of Live Bursts can be captured with current settings before sdcard is full

    HERO11 Black HERO10 Black - HERO9 Black

    -
    100
    integer

    Total number of Live Bursts on sdcard

    +HERO9 Black

    +
    +
    + + + +100 + +
    +
    +integer +
    +

    Total number of Live Bursts on sdcard

    HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    101
    integer
    Enum: 0 1

    Is Capture Delay currently active (i.e. counting down)?

    +
    +
    + + + +101 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Capture Delay currently active (i.e. counting down)?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    102
    integer
    Enum: 0 2 3
    + +102 + +
    +
    +integer +
    +
    + Enum: 0 2 3
    +

    Media Mod state

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -23649,7 +29814,8 @@

    Limitations

    - + + @@ -23661,13 +29827,26 @@

    Limitations

    -
    Meaning
    0 Media Mod microphone removed
    3 Media Mod microphone with external microphone
    -
    103
    integer
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12
    + +103 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12
    +

    Time Warp Speed

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    @@ -23741,7 +29921,8 @@

    Limitations

    - + + @@ -23793,19 +29974,45 @@

    Limitations

    -
    Meaning
    0 15x
    12 1/2x (slow-motion)
    -
    104
    integer
    Enum: 0 1

    Is the system's Linux core active?

    + + +
    +
    + + + +104 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the system's Linux core active?

    HERO10 Black - HERO9 Black

    -
    105
    integer
    Enum: 0 1 2

    +
    +
    + + + +105 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Camera lens type (reflects changes to lens settings such as 162, 189, 194, ...)

    HERO12 Black HERO11 Black Mini - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -23839,7 +30047,8 @@

    Limitations

    - + + @@ -23851,42 +30060,92 @@

    Limitations

    -
    Meaning
    0 Default
    2 Max Lens 2.0
    -
    106
    integer
    Enum: 0 1

    Is Video Hindsight Capture Active?

    + + +
    +
    + + + +106 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Video Hindsight Capture Active?

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    107
    integer

    Scheduled Capture Preset ID

    +HERO9 Black

    +
    +
    + + + +107 + +
    +
    +integer +
    +

    Scheduled Capture Preset ID

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    108
    integer
    Enum: 0 1

    Is Scheduled Capture set?

    +HERO9 Black

    +
    +
    + + + +108 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Scheduled Capture set?

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    -
    110
    integer
    Enum: 0 1 2 3 4 5 6 7

    +
    +
    + + + +110 + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7
    +

    Display Mod Status (bitmasked)

    HERO12 Black - HERO11 Black +HERO11 Black HERO10 Black - HERO9 Black

    +HERO9 Black

    @@ -23939,7 +30199,8 @@

    Limitations

    - + + @@ -23971,44 +30232,94 @@

    Limitations

    -
    Meaning
    0 000 = Display Mod: 0, HDMI: 0, Display Mod Connected: False
    7 111 = Display Mod: 1, HDMI: 1, Display Mod Connected: True
    -
    111
    integer
    Enum: 0 1

    Does sdcard meet specified minimum write speed?

    + + +
    +
    + + + +111 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Does sdcard meet specified minimum write speed?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black

    -
    112
    integer

    Number of sdcard write speed errors since device booted

    +HERO10 Black

    +
    +
    + + + +112 + +
    +
    +integer +
    +

    Number of sdcard write speed errors since device booted

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black

    -
    113
    integer
    Enum: 0 1

    Is Turbo Transfer active?

    +HERO10 Black

    +
    +
    + + + +113 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is Turbo Transfer active?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black +HERO10 Black HERO9 Black

    -
    114
    integer
    Enum: 0 1 2
    + +114 + +
    +
    +integer +
    +
    + Enum: 0 1 2
    +

    Camera control status ID

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black

    +HERO10 Black

    @@ -24041,7 +30353,8 @@

    Limitations

    - + + @@ -24053,22 +30366,48 @@

    Limitations

    -
    Meaning
    0 Camera Idle: No one is attempting to change camera settings
    2 Camera External Control: An outside entity (app) has control and is in a menu or modifying settings
    -
    115
    integer
    Enum: 0 1

    Is the camera connected to a PC via USB?

    + + +
    +
    + + + +115 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is the camera connected to a PC via USB?

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black

    -
    116
    integer
    Enum: 0 1

    +
    +
    + + + +116 + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Camera control over USB state

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black - HERO10 Black

    +HERO10 Black

    @@ -24097,7 +30437,8 @@

    Limitations

    - + + @@ -24105,32 +30446,478 @@

    Limitations

    -
    Meaning
    0 Disabled
    1 Enabled
    -
    117
    integer

    Total SD card capacity in Kilobytes

    + + +
    +
    + + + +117 + +
    +
    +integer +
    +

    Total SD card capacity in Kilobytes

    HERO12 Black - HERO11 Black Mini +HERO11 Black Mini HERO11 Black

    -
    118
    integer

    Photo interval capture count

    +
    +
    + + + +118 + +
    +
    +integer +
    +

    Photo interval capture count

    HERO12 Black

    -

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/camera/state

    Response samples

    Content type
    application/json
    {
    • "settings": {
      },
    • "status": {
      }
    }

    Get Date / Time

    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/camera/state
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    + +
    +
    {
      +
    • +"settings": {
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +}, +
    • +
    • +"status": {
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +} +
    • +
    +}
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get Date / Time

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black

    Supported Protocols:

    @@ -24139,51 +30926,380 @@

    Limitations

  • WIFI

  • -

    Responses

    Response Schema: application/json
    date
    required
    string
    Example: "2023_12_31"

    current date in format YYYY_MM_DD

    -
    time
    required
    string
    Example: "11_05_45"

    current time in format HH_MM_SS

    -
    dst
    integer
    Enum: 0 1

    Is daylight savings time active?

    -
    tzone
    integer
    Example: "-480"

    Timezone offset in minutes

    -

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/camera/get_date_time

    Response samples

    Content type
    application/json
    {
    • "date": "2023_12_31",
    • "dst": 0,
    • "time": "11_05_45",
    • "tzone": -480
    }

    Get Hardware Info

    Responses +
    +
    +
    Response Schema: application/json +
    + + + + + + + + + + + + + + + + + +
    +date<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: "2023_12_31" +
    +
    +

    current date in format YYYY_MM_DD

    +
    +
    +
    +time<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +string +
    + Example: "11_05_45" +
    +
    +

    current time in format HH_MM_SS

    +
    +
    +
    +dst + +
    +
    +integer +
    +
    + Enum: 0 1
    +

    Is daylight savings time active?

    +
    +
    +
    +tzone + +
    +
    +integer +
    + Example: "-480" +
    +
    +

    Timezone offset in minutes

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/camera/get_date_time
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    {
      +
    • +"date": "2023_12_31", +
    • +
    • +"dst": 0, +
    • +
    • +"time": "11_05_45", +
    • +
    • +"tzone": -480 +
    • +
    +}
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get Hardware Info

    +
    +

    HERO12 Black

    Supported Protocols:

    • USB
    • WIFI
    -
    -

    Responses

    Response Schema: application/json
    object
    ap_mac_addr
    string
    Example: "065747046ceb"

    Camera's Access Point MAC address

    -
    ap_ssid
    string
    Example: "GP24645504"

    Camera's ACcess Point SSID name

    -
    firmware_version
    string <version>
    Example: "H23.01.01.10.00"

    Camera Firmware version

    -
    model_name
    string
    Example: "Hero12 Black"

    Camera Model Name

    -
    model_number
    string
    Example: "62"

    Camera Model integer (as string)

    -
    serial_number
    string
    Example: "C3501324645504"

    Camera serial number

    -

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/camera/info

    Response samples

    Content type
    application/json
    {
    • "info": {
      }
    }

    Get Last Captured Media

    Responses +
    +
    +
    Response Schema: application/json +
    + + + + + + +
    + + +
    +
    +object +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    +ap_mac_addr +
    +
    +string +
    + Example: "065747046ceb" +
    +
    +

    Camera's Access Point MAC address

    +
    +
    +ap_ssid +
    +
    +string +
    + Example: "GP24645504" +
    +
    +

    Camera's ACcess Point SSID name

    +
    +
    +firmware_version +
    +
    +string <version> +
    + Example: "H23.01.01.10.00" +
    +
    +

    Camera Firmware version

    +
    +
    +model_name +
    +
    +string +
    + Example: "Hero12 Black" +
    +
    +

    Camera Model Name

    +
    +
    +model_number +
    +
    +string +
    + Example: "62" +
    +
    +

    Camera Model integer (as string)

    +
    +
    +serial_number +
    +
    +string +
    + Example: "C3501324645504" +
    +
    +

    Camera serial number

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/camera/info
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    + +
    +
    {
    • +"info": {
        +
      • +
      • +
      • +
      • +
      • +
      • +
      +} +
    +}
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get Last Captured Media

    +
    +

    HERO12 Black

    Supported Protocols:

    • USB
    • @@ -24207,29 +31324,140 @@

      Limitations

    • single photo / video: The single media path
    • any grouped media: The path to the first captured media in the group
    -

    Responses

    Response Schema: application/json
    file
    string
    Example: "GOPR0002.JPG"

    Filename of media

    -
    folder
    string
    Example: "100GOPRO"

    Directory in which the media is contained in

    -

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/media/last_captured

    Response samples

    Content type
    application/json
    {
    • "file": "GOPR0002.JPG",
    • "folder": "100GOPRO"
    }

    Get Open GoPro Version

    Responses +
    +
    +
    Response Schema: application/json +
    + + + + + + + + + +
    +file + +
    +
    +string +
    + Example: "GOPR0002.JPG" +
    +
    +

    Filename of media

    +
    +
    +
    +folder + +
    +
    +string +
    + Example: "100GOPRO" +
    +
    +

    Directory in which the media is contained in

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/media/last_captured
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
      + + +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    {
      +
    • +"file": "GOPR0002.JPG", +
    • +
    • +"folder": "100GOPRO" +
    • +
    +}
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get Open GoPro Version

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black @@ -24240,16 +31468,102 @@

    Limitations

  • WIFI

  • -

    Responses

    Response Schema: application/json
    version
    string <version>
    Example: "2.0"

    Open GoPro version

    -

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/version

    Response samples

    Content type
    application/json
    {
    • "version": "2.0"
    }

    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 bit-masked values.

    -

    Capabilities

    Responses +
    +
    +
    Response Schema: application/json +
    + + + +
    +version + +
    +
    +string <version> +
    + Example: "2.0" +
    +
    +

    Open GoPro version

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/version
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    {
    • +"version": "2.0" +
    +}
    +
    +
    +
    +
    +
    +
    +
    +

    +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 bit-masked values.

    +
    +
    +
    +

    +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.

    These 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.

    +Failure to adhere to dependency ordering may result in the camera's blacklist rules rejecting a set-setting command.

    @@ -24318,7 +31633,8 @@

    Limitations

    - + + @@ -24336,9 +31652,10 @@

    Limitations

    -
    Guaranteed Valid?
    HERO10 Black Res: 1080 Anti-Flicker: 60Hz (NTSC) 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. +

    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 for each camera / firmware version can be found in the following file formats:

    XLSX

    @@ -24351,17 +31668,39 @@

    JSON

    list of objects that contain setting and option IDs necessary to construct set-setting commands and are given in dependency order as outlined above. For more information on the object format, see the JSON schema

    -

    Anti-Flicker (134)

    HERO12 Black +

    +
    +
    +
    +

    +Anti-Flicker (134)

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 2 3
    Example: option=2
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 2 3
    + Example: option=2 +
    +
    + @@ -24388,25 +31728,115 @@

    JSON

    - + + - + - - -
    ID Supported Cameras
    2 60HzHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    3 50HzHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=2&setting=134'

    Response samples

    Content type
    application/json
    { }

    Aspect Ratio (108)

    HERO12 Black

    -
    query Parameters
    + + +
    option
    required
    integer
    Enum: 0 1 3 4
    HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=2&setting=134'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Aspect Ratio (108)

    +
    +

    HERO12 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 3 4
    + @@ -24443,7 +31874,8 @@

    JSON

    - + + @@ -24463,15 +31895,100 @@

    JSON

    -
    ID Supported Cameras
    0 4:3 HERO12 Black 9:16 HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=108'

    Response samples

    Content type
    application/json
    { }

    Aspect Ratio (192)

    HERO12 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1 3
    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=108'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Aspect Ratio (192)

    +
    +

    HERO12 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 3
    + @@ -24503,7 +32021,8 @@

    JSON

    - + + @@ -24518,23 +32037,111 @@

    JSON

    -
    ID Supported Cameras
    0 4:3 HERO12 Black 8:7 HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=192'

    Response samples

    Content type
    application/json
    { }

    Auto Power Down (59)

    HERO12 Black +

    +
    +
    + + +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=192'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Auto Power Down (59)

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1 4 6 7 11 12
    Example: option=11
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 4 6 7 11 12
    + Example: option=11 +
    +
    + @@ -24586,30 +32194,41 @@

    JSON

    - + + - + - + - + - + - + @@ -24621,15 +32240,100 @@

    JSON

    -
    ID Supported Cameras
    0 NeverHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    1 1 MinHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    4 5 MinHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    6 15 MinHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    7 30 MinHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    11 30 Seconds HERO11 Black Mini
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=11&setting=59'

    Response samples

    Content type
    application/json
    { }

    Bit Depth (183)

    HERO12 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 2
    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=11&setting=59'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Bit Depth (183)

    +
    +

    HERO12 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 2
    + @@ -24656,7 +32361,8 @@

    JSON

    - + + @@ -24666,15 +32372,103 @@

    JSON

    -
    ID Supported Cameras
    0 8-Bit HERO12 Black 10-Bit HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=183'

    Response samples

    Content type
    application/json
    { }

    Bit Rate (182)

    HERO12 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1
    Example: option=1
    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=183'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Bit Rate (182)

    +
    +

    HERO12 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    + Example: option=1 +
    +
    + @@ -24701,7 +32496,8 @@

    JSON

    - + + @@ -24711,17 +32507,102 @@

    JSON

    -
    ID Supported Cameras
    0 Standard HERO12 Black High HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=1&setting=182'

    Response samples

    Content type
    application/json
    { }

    Controls (175)

    HERO12 Black +

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=1&setting=182'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Controls (175)

    +
    +

    HERO12 Black HERO11 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    + @@ -24748,25 +32630,115 @@

    JSON

    - + + - + - - -
    ID Supported Cameras
    0 EasyHERO12 BlackHERO11 Black +HERO12 BlackHERO11 Black +
    1 ProHERO12 BlackHERO11 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=175'

    Response samples

    Content type
    application/json
    { }

    Duration (172)

    HERO12 Black

    -
    query Parameters
    + + +
    option
    required
    integer
    Enum: 0 1 2 3 4 5 6 7 8 9
    HERO11 Black +
    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=175'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Duration (172)

    +
    +

    HERO12 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9
    + @@ -24833,7 +32806,8 @@

    JSON

    - + + @@ -24883,17 +32857,102 @@

    JSON

    -
    ID Supported Cameras
    0 Off HERO12 Black 3 Hours HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=172'

    Response samples

    Content type
    application/json
    { }

    Easy Mode Speed (176)

    HERO12 Black +

    +
    +
    + + +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=172'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Easy Mode Speed (176)

    +
    +

    HERO12 Black HERO11 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
    + @@ -25240,7 +33300,8 @@

    JSON

    - + + @@ -25570,15 +33631,100 @@

    JSON

    -
    ID Supported Cameras
    0 8X Ultra Slo-Mo HERO11 Black 1X Speed (4K) (50Hz) (Full Frame) (Low Light) (V2) HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=176'

    Response samples

    Content type
    application/json
    { }

    Enable Night Photo (177)

    HERO11 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1
    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=176'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Enable Night Photo (177)

    +
    +

    HERO11 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    + @@ -25605,7 +33752,8 @@

    JSON

    - + + @@ -25615,23 +33763,108 @@

    JSON

    -
    ID Supported Cameras
    0 Off HERO11 Black On HERO11 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=177'

    Response samples

    Content type
    application/json
    { }

    Frames Per Second (3)

    HERO12 Black +

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=177'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Frames Per Second (3)

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1 2 5 6 8 9 10 13
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2 5 6 8 9 10 13
    + @@ -25693,60 +33927,164 @@

    JSON

    - + + - + - + - + - + - + - + - + - + - - -
    ID Supported Cameras
    0 240HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    1 120HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    2 100HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    5 60HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    6 50HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    8 30HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    9 25HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    10 24HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    13 200HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=3'

    Response samples

    Content type
    application/json
    { }

    Framing (193)

    HERO12 Black

    -
    query Parameters
    + + +
    option
    required
    integer
    Enum: 0 1 2
    HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=3'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Framing (193)

    +
    +

    HERO12 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2
    + @@ -25778,7 +34117,8 @@

    JSON

    - + + @@ -25793,19 +34133,107 @@

    JSON

    -
    ID Supported Cameras
    0 Widescreen HERO12 Black Full Frame HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=193'

    Response samples

    Content type
    application/json
    { }

    GPS (83)

    HERO11 Black + + +

    +
    + + +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=193'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +GPS (83)

    +
    +

    HERO11 Black HERO10 Black HERO9 Black

    -
    query Parameters
    + + +
    option
    required
    integer
    Enum: 0 1
    Example: option=1
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    + Example: option=1 +
    +
    + @@ -25832,31 +34261,124 @@

    JSON

    - + + - + - - -
    ID Supported Cameras
    0 OffHERO11 BlackHERO10 BlackHERO9 Black +HERO11 BlackHERO10 BlackHERO9 Black +
    1 OnHERO11 BlackHERO10 BlackHERO9 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=1&setting=83'

    Response samples

    Content type
    application/json
    { }

    HindSight (167)

    HERO12 Black +

    +HERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    + + +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=1&setting=83'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +HindSight (167)

    +
    +

    HERO12 Black HERO11 Black HERO10 Black HERO9 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 2 3 4
    Example: option=2
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 2 3 4
    + Example: option=2 +
    +
    + @@ -25888,30 +34411,122 @@

    JSON

    - + + - + - + - - -
    ID Supported Cameras
    2 15 SecondsHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    3 30 SecondsHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    4 OffHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=2&setting=167'

    Response samples

    Content type
    application/json
    { }

    Horizon Leveling (150)

    HERO11 Black

    -
    query Parameters
    + + +
    option
    required
    integer
    Enum: 0 2
    HERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=2&setting=167'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Horizon Leveling (150)

    +
    +

    HERO11 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 2
    + @@ -25938,7 +34554,8 @@

    JSON

    - + + @@ -25948,15 +34565,100 @@

    JSON

    -
    ID Supported Cameras
    0 Off HERO11 Black Locked HERO11 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=150'

    Response samples

    Content type
    application/json
    { }

    Horizon Leveling (151)

    HERO11 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 2
    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=150'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Horizon Leveling (151)

    +
    +

    HERO11 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 2
    + @@ -25983,7 +34686,8 @@

    JSON

    - + + @@ -25993,23 +34697,111 @@

    JSON

    -
    ID Supported Cameras
    0 Off HERO11 Black Locked HERO11 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=151'

    Response samples

    Content type
    application/json
    { }

    Hypersmooth (135)

    HERO12 Black +

    +
    +
    + + +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=151'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Hypersmooth (135)

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1 2 3 4 100
    Example: option=4
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 100
    + Example: option=4 +
    +
    + @@ -26056,45 +34849,141 @@

    JSON

    - + + - + - + - + - + - + -
    ID Supported Cameras
    0 OffHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    1 LowHERO12 BlackHERO11 Black MiniHERO11 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO9 Black +
    2 HighHERO10 BlackHERO9 Black +HERO10 BlackHERO9 Black +
    3 BoostHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    4 Auto BoostHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    100 Standard HERO10 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=4&setting=135'

    Response samples

    Content type
    application/json
    { }

    Interval (171)

    HERO12 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 2 3 4 5 6 7 8 9 10
    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=4&setting=135'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Interval (171)

    +
    +

    HERO12 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 2 3 4 5 6 7 8 9 10
    + @@ -26161,7 +35051,8 @@

    JSON

    - + + @@ -26211,15 +35102,100 @@

    JSON

    -
    ID Supported Cameras
    0 Off HERO12 Black 3s HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=171'

    Response samples

    Content type
    application/json
    { }

    Lapse Mode (187)

    HERO12 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1 2 3 4 5 6 7
    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=171'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Lapse Mode (187)

    +
    +

    HERO12 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7
    + @@ -26276,7 +35253,8 @@

    JSON

    - + + @@ -26316,23 +35294,111 @@

    JSON

    -
    ID Supported Cameras
    0 TimeWarp HERO12 Black Max Vehicle Lights HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=187'

    Response samples

    Content type
    application/json
    { }

    Lens (121)

    HERO12 Black +

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=187'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Lens (121)

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 2 3 4 7 8 9 10 11
    Example: option=7
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 2 3 4 7 8 9 10 11
    + Example: option=7 +
    +
    + @@ -26394,66 +35461,171 @@

    JSON

    - + + - + - + - + - + - + - + - + - + -
    ID Supported Cameras
    0 WideHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    2 NarrowHERO10 BlackHERO9 Black +HERO10 BlackHERO9 Black +
    3 SuperviewHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    4 LinearHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    7 Max SuperViewHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    8 Linear + Horizon LevelingHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    9 HyperViewHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    10 Linear + Horizon LockHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    11 Max HyperView HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=7&setting=121'

    Response samples

    Content type
    application/json
    { }

    Lens (122)

    HERO12 Black +

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=7&setting=121'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Lens (122)

    +
    +

    HERO12 Black HERO11 Black HERO10 Black HERO9 Black

    -
    query Parameters
    + + +
    option
    required
    integer
    Enum: 19 100 101 102
    Example: option=100
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 19 100 101 102
    + Example: option=100 +
    +
    + @@ -26490,39 +35663,133 @@

    JSON

    - + + - + - + - + - - -
    ID Supported Cameras
    19 NarrowHERO10 BlackHERO9 Black +HERO10 BlackHERO9 Black +
    100 Max SuperViewHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    101 WideHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    102 LinearHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=100&setting=122'

    Response samples

    Content type
    application/json
    { }

    Max Lens (162)

    HERO11 Black +

    +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    + + +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=100&setting=122'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Max Lens (162)

    +
    +

    HERO11 Black HERO10 Black HERO9 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    + @@ -26549,25 +35817,115 @@

    JSON

    - + + - + - - -
    ID Supported Cameras
    0 OffHERO11 BlackHERO10 BlackHERO9 Black +HERO11 BlackHERO10 BlackHERO9 Black +
    1 OnHERO11 BlackHERO10 BlackHERO9 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=162'

    Response samples

    Content type
    application/json
    { }

    Max Lens Mod (189)

    HERO12 Black

    -
    query Parameters
    + + +
    option
    required
    integer
    Enum: 0 1 2
    HERO10 BlackHERO9 Black +
    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=162'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Max Lens Mod (189)

    +
    +

    HERO12 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2
    + @@ -26599,7 +35958,8 @@

    JSON

    - + + @@ -26614,15 +35974,100 @@

    JSON

    -
    ID Supported Cameras
    0 None HERO12 Black Max Lens 2.0 HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=189'

    Response samples

    Content type
    application/json
    { }

    Max Lens Mod Enable (190)

    HERO12 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1
    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=189'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Max Lens Mod Enable (190)

    +
    +

    HERO12 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    + @@ -26649,7 +36095,8 @@

    JSON

    - + + @@ -26659,21 +36106,109 @@

    JSON

    -
    ID Supported Cameras
    0 Off HERO12 Black On HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=190'

    Response samples

    Content type
    application/json
    { }

    Media Format (128)

    HERO12 Black +

    +
    +
    + + +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=190'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Media Format (128)

    +
    +

    HERO12 Black HERO11 Black HERO10 Black HERO9 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 13 20 21 26
    Example: option=13
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 13 20 21 26
    + Example: option=13 +
    +
    + @@ -26710,35 +36246,129 @@

    JSON

    - + + - + - + - + - - -
    ID Supported Cameras
    13 Time Lapse VideoHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    20 Time Lapse PhotoHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    21 Night Lapse PhotoHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    26 Night Lapse VideoHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=13&setting=128'

    Response samples

    Content type
    application/json
    { }

    Photo Mode (191)

    HERO12 Black

    -
    query Parameters
    + + +
    option
    required
    integer
    Enum: 0 1
    HERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=13&setting=128'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Photo Mode (191)

    +
    +

    HERO12 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    + @@ -26765,7 +36396,8 @@

    JSON

    - + + @@ -26775,15 +36407,100 @@

    JSON

    -
    ID Supported Cameras
    0 Super Photo HERO12 Black Night Photo HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=191'

    Response samples

    Content type
    application/json
    { }

    Profiles (184)

    HERO12 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1 2
    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=191'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Profiles (184)

    +
    +

    HERO12 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2
    + @@ -26815,7 +36533,8 @@

    JSON

    - + + @@ -26830,23 +36549,111 @@

    JSON

    -
    ID Supported Cameras
    0 Standard HERO12 Black Log HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=184'

    Response samples

    Content type
    application/json
    { }

    Resolution (2)

    HERO12 Black +

    +
    +
    + + +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=184'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Resolution (2)

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 1 4 6 7 9 18 24 25 26 27 28 100 107 108 109 110 111
    Example: option=100
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 1 4 6 7 9 18 24 25 26 27 28 100 107 108 109 110 111
    + Example: option=100 +
    +
    + @@ -26948,20 +36756,27 @@

    JSON

    - + + - + - + - + @@ -26971,12 +36786,16 @@

    JSON

    - + - + @@ -26991,22 +36810,30 @@

    JSON

    - + - + - + - + @@ -27033,21 +36860,109 @@

    JSON

    -
    ID Supported Cameras
    1 4KHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    4 2.7KHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    6 2.7K 4:3HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    7
    9 1080HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    18 4K 4:3HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    24
    26 5.3K 8:7HERO11 Black MiniHERO11 Black +HERO11 Black MiniHERO11 Black +
    27 5.3K 4:3HERO11 Black MiniHERO11 Black +HERO11 Black MiniHERO11 Black +
    28 4K 8:7HERO11 Black MiniHERO11 Black +HERO11 Black MiniHERO11 Black +
    100 5.3KHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 Black +
    107 2.7K HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=100&setting=2'

    Response samples

    Content type
    application/json
    { }

    Time Lapse Digital Lenses (123)

    HERO12 Black +

    +
    +
    + + +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=100&setting=2'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Time Lapse Digital Lenses (123)

    +
    +

    HERO12 Black HERO11 Black HERO10 Black HERO9 Black

    -
    query Parameters
    + + +
    option
    required
    integer
    Enum: 19 100 101 102
    Example: option=101
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 19 100 101 102
    + Example: option=101 +
    +
    + @@ -27084,10 +37000,13 @@

    JSON

    - + + - + @@ -27097,26 +37016,118 @@

    JSON

    - + - - -
    ID Supported Cameras
    19 NarrowHERO10 BlackHERO9 Black +HERO10 BlackHERO9 Black +
    100
    101 WideHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    102 LinearHERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=101&setting=123'

    Response samples

    Content type
    application/json
    { }

    Trail Length (179)

    HERO12 Black +

    +HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    + + +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=101&setting=123'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Trail Length (179)

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 1 2 3
    Example: option=3
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 1 2 3
    + Example: option=3 +
    +
    + @@ -27148,30 +37160,122 @@

    JSON

    - + + - + - + - - -
    ID Supported Cameras
    1 ShortHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    2 LongHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    3 MaxHERO12 BlackHERO11 Black MiniHERO11 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=3&setting=179'

    Response samples

    Content type
    application/json
    { }

    Video Mode (180)

    HERO11 Black

    -
    query Parameters
    + + +
    option
    required
    integer
    Enum: 0 101 102
    HERO11 Black MiniHERO11 Black +
    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=3&setting=179'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Video Mode (180)

    +
    +

    HERO11 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 101 102
    + @@ -27203,7 +37308,8 @@

    JSON

    - + + @@ -27218,15 +37324,100 @@

    JSON

    -
    ID Supported Cameras
    0 Highest Quality HERO11 Black Longest Battery (Green Icon) HERO11 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=180'

    Response samples

    Content type
    application/json
    { }

    Video Mode (186)

    HERO12 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1 2
    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=180'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Video Mode (186)

    +
    +

    HERO12 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2
    + @@ -27258,7 +37450,8 @@

    JSON

    - + + @@ -27273,15 +37466,100 @@

    JSON

    -
    ID Supported Cameras
    0 Highest Quality HERO12 Black Basic Quality HERO12 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=186'

    Response samples

    Content type
    application/json
    { }

    Video Performance Mode (173)

    HERO10 Black

    -
    query Parameters
    +
    option
    required
    integer
    Enum: 0 1 2
    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=186'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Video Performance Mode (173)

    +
    +

    HERO10 Black

    +
    +
    +
    query Parameters
    + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1 2
    + @@ -27313,7 +37592,8 @@

    JSON

    - + + @@ -27328,23 +37608,111 @@

    JSON

    -
    ID Supported Cameras
    0 Maximum Video Performance HERO10 Black Tripod / Stationary Video HERO10 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=173'

    Response samples

    Content type
    application/json
    { }

    Webcam Digital Lenses (43)

    HERO12 Black +

    +
    +
    +
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=173'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Webcam Digital Lenses (43)

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

    -
    query Parameters
    + + +
    option
    required
    integer
    Enum: 0 2 3 4
    Example: option=3
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 2 3 4
    + Example: option=3 +
    +
    + @@ -27381,39 +37750,133 @@

    JSON

    - + + - + - + - + - - -
    ID Supported Cameras
    0 WideHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    2 NarrowHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    3 SuperviewHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    4 LinearHERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=3&setting=43'

    Response samples

    Content type
    application/json
    { }

    Wireless Band (178)

    HERO12 Black +

    +HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black +
    +
    +
    + + +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=3&setting=43'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Wireless Band (178)

    +
    +

    HERO12 Black HERO11 Black Mini HERO11 Black

    -
    query Parameters
    + + +
    option
    required
    integer
    Enum: 0 1
    query Parameters + + +
    +option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> +
    +
    +integer +
    +
    + Enum: 0 1
    + @@ -27440,23 +37904,99 @@

    JSON

    - + + - + - - -
    ID Supported Cameras
    0 2.4GHzHERO12 BlackHERO11 Black MiniHERO11 Black +HERO12 BlackHERO11 Black MiniHERO11 Black +
    1 5GHzHERO12 BlackHERO11 Black MiniHERO11 Black
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=178'

    Response samples

    Content type
    application/json
    { }

    Webcam

    HERO11 Black MiniHERO11 Black +
    +
    +
    + + +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=178'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +

    +Webcam

    +
    +

    The webcam feature enables developers who are interested in writing custom drivers to broadcast the camera's video preview with a limited set of resolution, field of view, port, and protocol options.

    While active, the webcam feature sends raw data to the connected client using a supported protocol. To enable multi-cam support, some cameras support running on a user-specified port. Protocol and port details are provided in a @@ -27506,7 +38047,8 @@

    JSON

    Port - + + TS udp://@:{PORT} @@ -27514,7 +38056,8 @@

    JSON

    RTSP rtsp://{CAMERA_IP}:554/live - + +

    For readers interested in using a GoPro camera as a webcam with preexisting tools, please see How to use GoPro as a Webcam.

    Webcam via USB

    @@ -27530,9 +38073,15 @@

    Webcam Stabilization

    Note! The Low Hypersmooth option provides lower/lighter stabilization when used in Webcam mode vs other camera modes.

    -

    Enter Webcam Preview

    +
    +

    +Enter Webcam Preview

    +
    +

    HERO12 Black HERO11 Black HERO10 Black

    Supported Protocols:

    @@ -27562,14 +38112,81 @@

    Webcam Stabilization

  • Hero 10 Black
  • Hero 9 Black
  • -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/webcam/preview

    Response samples

    Content type
    application/json
    { }

    Exit Webcam Mode

    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/webcam/preview
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Exit Webcam Mode

    +
    +

    HERO12 Black HERO11 Black HERO10 Black

    Supported Protocols:

    @@ -27599,21 +38217,89 @@

    Webcam Stabilization

  • Hero 10 Black
  • Hero 9 Black
  • -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/webcam/exit

    Response samples

    Content type
    application/json
    { }

    Get Webcam Status

    Responses +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/webcam/exit
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get Webcam Status

    +
    +

    HERO12 Black HERO11 Black HERO10 Black

    Supported Protocols:

    @@ -27622,9 +38308,28 @@

    Webcam Stabilization

  • WIFI

  • -

    Responses

    Response Schema: application/json
    error
    integer
    Enum: 0 1 2 3 4 5 6 7 8
    Responses +
    +
    +
    Response Schema: application/json +
    + + + + + +
    +error + +
    +
    +integer +
    +
    + Enum: 0 1 2 3 4 5 6 7 8
    Webcam Stabilization <td>Exit</td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg">

    Current webcam error (if status was not successful)

    +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +

    Current webcam error (if status was not successful)

    @@ -27677,7 +38383,8 @@

    Webcam Stabilization

    - + + @@ -27713,8 +38420,23 @@

    Webcam Stabilization

    -
    Status
    0 None
    8 Exit
    -
    status
    integer
    Enum: 0 1 2 3
    +
    +status + +
    +
    +integer +
    +
    + Enum: 0 1 2 3
    Webcam Stabilization <td>Low Power Preview</td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg">

    Current webcam status

    +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +

    Current webcam status

    @@ -27747,7 +38470,8 @@

    Webcam Stabilization

    - + + @@ -27763,20 +38487,89 @@

    Webcam Stabilization

    + +
    Status
    0 Off
    3 Low Power Preview
    +
    +
    +
    -

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/webcam/status

    Response samples

    Content type
    application/json
    {
    • "error": 0,
    • "status": 0
    }

    Get Webcam Version

    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/webcam/status
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    {
      +
    • +"error": 0, +
    • +
    • +"status": 0 +
    • +
    +}
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Get Webcam Version

    +
    +

    HERO12 Black HERO11 Black HERO10 Black

    Supported Protocols:

    @@ -27785,20 +38578,134 @@

    Webcam Stabilization

  • WIFI

  • -

    Responses

    Response Schema: application/json
    max_lens_support
    boolean

    Does the webcam support Max Lens Mod?

    -
    usb_3_1_compatible
    boolean

    Is the webcam USB 3.1 compatible?

    -
    version
    integer

    Current webcam version

    -

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/webcam/version

    Response samples

    Content type
    application/json
    {
    • "max_lens_support": true,
    • "usb_3_1_compatible": true,
    • "version": 0
    }

    Start Webcam

    Responses +
    +
    +
    Response Schema: application/json +
    + + + + + + + + + + + + + +
    +max_lens_support + +
    +
    +boolean +
    +

    Does the webcam support Max Lens Mod?

    +
    +
    +
    +usb_3_1_compatible + +
    +
    +boolean +
    +

    Is the webcam USB 3.1 compatible?

    +
    +
    +
    +version + +
    +
    +integer +
    +

    Current webcam version

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/webcam/version
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    {
      +
    • +"max_lens_support": true, +
    • +
    • +"usb_3_1_compatible": true, +
    • +
    • +"version": 0 +
    • +
    +}
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Start Webcam

    +
    +

    HERO12 Black HERO11 Black HERO10 Black

    Supported Protocols:

    @@ -27828,10 +38736,23 @@

    Webcam Stabilization

  • Hero 10 Black
  • Hero 9 Black
  • -
    query Parameters
    res
    integer
    Example: res=12
    query Parameters + + + + + + + + + + + + + +
    +res + +
    +
    +integer +
    + Example: res=12 +
    +
    Webcam Stabilization <td>Hero 12 Black, Hero 9 Black, Hero 10 Black, Hero 11 Black</td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg">

    Webcam Resolution

    - - - +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +

    Webcam Resolution

    +
    @@ -27866,7 +38786,8 @@

    Webcam Stabilization

    - + + @@ -27881,11 +38802,22 @@

    Webcam Stabilization

    -
    ID Supported Cameras
    4 480p Hero 10 Black, Hero 9 Black 1080p Hero 12 Black, Hero 9 Black, Hero 10 Black, Hero 11 Black
    -
    fov
    integer
    +
    +fov + +
    +
    +integer +
    Webcam Stabilization <td>Hero 12 Black, Hero 9 Black, Hero 10 Black, Hero 11 Black</td> </tr> </tbody></table> -" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg">

    Webcam Field-of-View

    - - - +" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"> +

    Webcam Field-of-View

    +
    @@ -27925,7 +38856,8 @@

    Webcam Stabilization

    - + + @@ -27945,45 +38877,109 @@

    Webcam Stabilization

    + +
    ID Supported Cameras
    0 Wide Hero 12 Black, Hero 9 Black, Hero 10 Black, Hero 11 Black Linear Hero 12 Black, Hero 9 Black, Hero 10 Black, Hero 11 Black
    +
    +
    +
    +port +integer Default: 8554 Example: port=8556Port to use for Webcam Stream. Defaults to 8554 if not set +Not supported on +Hero 11 Black Mini +Hero 10 Black +Hero 9 Black
    +protocol +string Enum: “RTSP” “TS” Example: protocol=RTSPStreaming protocol to use. +Not supported on +Hero 11 Black Mini +Hero 11 Black +Hero 10 Black +Hero 9 Black
    -
    port
    integer
    Default: 8554
    Example: port=8556

    Port to use for Webcam Stream. Defaults to 8554 if not set

    -

    Not supported on:

    -
      -
    • Hero 11 Black Mini
    • -
    • Hero 10 Black
    • -
    • Hero 9 Black
    • -
    -
    protocol
    string
    Enum: "RTSP" "TS"
    Example: protocol=RTSP

    Streaming protocol to use.

    -

    Not supported on:

    -
      -
    • Hero 11 Black Mini
    • -
    • Hero 11 Black
    • -
    • Hero 10 Black
    • -
    • Hero 9 Black
    • +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + +
    -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url 'http://10.5.5.9:8080/gopro/webcam/start?res=12&fov=0&port=8556&protocol=RTSP'

    Response samples

    Content type
    application/json
    { }

    Stop Webcam

    +
    +
    curl --request GET \
    +  --url 'http://10.5.5.9:8080/gopro/webcam/start?res=12&fov=0&port=8556&protocol=RTSP'
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +Stop Webcam

    +
    +

    HERO12 Black HERO11 Black HERO10 Black

    Supported Protocols:

    @@ -28013,19 +39010,86 @@

    Webcam Stabilization

  • Hero 10 Black
  • Hero 9 Black
  • -

    Responses

    Response Schema: application/json
    object

    Request samples

    curl --request GET \
    -  --url http://10.5.5.9:8080/gopro/webcam/stop

    Response samples

    Content type
    application/json
    { }
    +
    +
    +

    Responses

    +
    +
    +
    Response Schema: application/json +
    +
    +
    +object +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Request samples

    +
    +
      + + + + + +
    +
    +
    +
    curl --request GET \
    +  --url http://10.5.5.9:8080/gopro/webcam/stop
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Response samples

    +
    +
    +
    +
    +Content type
    application/json
    +
    +
    +
    +
    { }
    +
    +
    +
    +
    +
    +
    +
    +
    +
    - + - \ No newline at end of file + + + diff --git a/sitemap.xml b/sitemap.xml index 7f33ff93..bebeca3e 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,39 +2,39 @@ https://gopro.github.io/OpenGoPro/tutorials/connect-ble -2024-04-19T12:03:54-07:00 +2024-04-19T13:41:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/send-ble-commands -2024-04-19T12:03:54-07:00 +2024-04-19T13:41:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/parse-ble-responses -2024-04-19T12:03:54-07:00 +2024-04-19T13:41:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/ble-queries -2024-04-19T12:03:54-07:00 +2024-04-19T13:41:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/ble-protobuf -2024-04-19T12:03:54-07:00 +2024-04-19T13:41:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/connect-wifi -2024-04-19T12:03:54-07:00 +2024-04-19T13:41:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/send-wifi-commands -2024-04-19T12:03:54-07:00 +2024-04-19T13:41:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/camera-media-list -2024-04-19T12:03:54-07:00 +2024-04-19T13:41:07-07:00 https://gopro.github.io/OpenGoPro/tutorials/cohn -2024-04-19T12:03:54-07:00 +2024-04-19T13:41:07-07:00 https://gopro.github.io/OpenGoPro/contribution.html @@ -43,17 +43,96 @@ https://gopro.github.io/OpenGoPro/faq +https://gopro.github.io/OpenGoPro/http.html + + https://gopro.github.io/OpenGoPro/ https://gopro.github.io/OpenGoPro/tutorials/ +https://gopro.github.io/OpenGoPro/ble/features/access_points.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/features/cohn.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/features/control.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/features/hilights.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/features/live_streaming.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/features/presets.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/features/query.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/features/settings.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/features/statuses.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/genindex.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/ +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/operation-operation_index.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/protocol.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/protocol/ble_setup.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/protocol/data_protocol.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/protocol/id_tables.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/protocol/protobuf.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/protocol/state_management.html +2024-04-19T13:40:38-07:00 + + +https://gopro.github.io/OpenGoPro/ble/search.html +2024-04-19T13:40:38-07:00 + + https://gopro.github.io/OpenGoPro/ble_2_0.html -2024-04-19T12:03:32-07:00 +2024-04-19T13:37:14-07:00 https://gopro.github.io/OpenGoPro/http_2_0.html -2024-04-19T12:03:32-07:00 +2024-04-19T13:37:14-07:00 diff --git a/tutorials/ble-protobuf.html b/tutorials/ble-protobuf.html index d0e88e7d..5e39b0f8 100644 --- a/tutorials/ble-protobuf.html +++ b/tutorials/ble-protobuf.html @@ -34,7 +34,7 @@ - + @@ -438,7 +438,7 @@

    GoPro

    - +
    @@ -534,7 +534,7 @@

    Requirements

    Just Show me the Demo(s)!!

    -
      +
      • python @@ -545,7 +545,7 @@

        Just Show me the Demo(s)!!

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

          Protobuf Message Example

    -
      +
      • python @@ -699,7 +699,7 @@

        Protobuf Message Example

      -
        +
        • from tutorial_modules import proto
          @@ -733,7 +733,7 @@ 

          Protobuf Message Example

          ResponseGeneric object.

          -
            +
            • python @@ -744,7 +744,7 @@

              Protobuf Message Example

            -
              +
              • response_bytes = proto.ResponseGeneric(result=proto.EnumResultGeneric.RESULT_SUCCESS).SerializeToString()
                @@ -820,7 +820,7 @@ 

                Protobuf Response Parser

                -
                  +
                  • python @@ -831,7 +831,7 @@

                    Protobuf Response Parser

                  -
                    +
                    • @@ -868,7 +868,7 @@

                      Set Turbo Transfer

                      Feature ID, Action ID, and length bytes:

                      -
                        +
                        • python @@ -879,7 +879,7 @@

                          Set Turbo Transfer

                        -
                          +
                          • turbo_mode_request = bytearray(
                            @@ -906,7 +906,7 @@ 

                            Set Turbo Transfer

                            from the Set Turbo Mode Documentation: ResponseGeneric.

                            -
                              +
                              • python @@ -917,7 +917,7 @@

                                Set Turbo Transfer

                              -
                                +
                                • await client.write_gatt_char(request_uuid.value, turbo_mode_request, response=True)
                                  @@ -979,7 +979,7 @@ 

                                  Response Manager

                                  parsing of all response types:

                                  -
                                    +
                                    • python @@ -990,7 +990,7 @@

                                      Response Manager

                                    -
                                      +
                                      • @@ -1073,7 +1073,7 @@

                                        Examples of Each Response Type

                                        Now let’s perform operations that will demonstrate each response type:

                                        -
                                          +
                                          • python @@ -1084,7 +1084,7 @@

                                            Examples of Each Response Type

                                          -
                                            +
                                            • # TLV Command (Setting)
                                              @@ -1167,7 +1167,7 @@ 

                                              Good Job!

                                              -

                                              Updated:

                                              +

                                              Updated:

                                              diff --git a/tutorials/ble-queries.html b/tutorials/ble-queries.html index bdb7d4ce..1ae62885 100644 --- a/tutorials/ble-queries.html +++ b/tutorials/ble-queries.html @@ -34,7 +34,7 @@ - + @@ -438,7 +438,7 @@

                                              GoPro

                                              - +
                                              @@ -531,7 +531,7 @@

                                              Requirements

                                              Just Show me the Demo(s)!!

                                              -
                                                +
                                                • python @@ -542,7 +542,7 @@

                                                  Just Show me the Demo(s)!!

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

                                                    Setup

                                                    connecting BLE tutorial.

                                                    -
                                                      + -
                                                        +
                                                        • We have slightly updated the notification handler from the previous tutorial to handle a QueryResponse instead of @@ -830,7 +830,7 @@

                                                          Parsing a Query Response

                                                          storing each value in a hash map indexed by ID for later access.

                                                          -
                                                            +
                                                            • python @@ -841,7 +841,7 @@

                                                              Parsing a Query Response

                                                            -
                                                              +
                                                              • class QueryResponse(TlvResponse):
                                                                @@ -897,10 +897,10 @@ 

                                                                Parsing a Query Response

                                                                -
                                                                +
                                                                -
                                                                How many packets are query responses?
                                                                -
                                                                +
                                                                How many packets are query responses?
                                                                +

                                                                @@ -913,19 +913,19 @@

                                                                Parsing a Query Response

                                                                - - -
                                                                +
                                                                -
                                                                Which field is not common to all TLV responses?
                                                                -
                                                                +
                                                                Which field is not common to all TLV responses?
                                                                +

                                                                @@ -941,10 +941,10 @@

                                                                Parsing a Query Response

                                                                - - @@ -1000,7 +1000,7 @@

                                                                Individual Query Poll

                                                                First we send the query:

                                                                -
                                                                  +
                                                                  • python @@ -1011,7 +1011,7 @@

                                                                    Individual Query Poll

                                                                  -
                                                                    +
                                                                    • @@ -1039,7 +1039,7 @@

                                                                      Individual Query Poll

                                                                      QueryResponse class and extract the new resolution value.

                                                                      -
                                                                        +
                                                                        • python @@ -1050,7 +1050,7 @@

                                                                          Individual Query Poll

                                                                        -
                                                                          +
                                                                          • # Wait to receive the notification response
                                                                            @@ -1097,7 +1097,7 @@ 

                                                                            Individual Query Poll

                                                                            has changed:

                                                                            -
                                                                              +
                                                                              • python @@ -1108,7 +1108,7 @@

                                                                                Individual Query Poll

                                                                              -
                                                                                +
                                                                                • while resolution is not target_resolution:
                                                                                  @@ -1178,7 +1178,7 @@ 

                                                                                  Multiple Simultaneous Query Polls

                                                                                  FOV.

                                                                                  -
                                                                                    +
                                                                                    • python @@ -1189,7 +1189,7 @@

                                                                                      Multiple Simultaneous Query Polls

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

                                                                                        Multiple Simultaneous Query Polls

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

                                                                                        -
                                                                                          +
                                                                                          • python @@ -1228,7 +1228,7 @@

                                                                                            Multiple Simultaneous Query Polls

                                                                                          -
                                                                                            +
                                                                                            • response.parse()
                                                                                              @@ -1255,7 +1255,7 @@ 

                                                                                              Multiple Simultaneous Query Polls

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

                                                                                              -
                                                                                                +
                                                                                                • python @@ -1266,7 +1266,7 @@

                                                                                                  Multiple Simultaneous Query Polls

                                                                                                -
                                                                                                  +
                                                                                                  • Getting the current resolution, fps, and fov.
                                                                                                    @@ -1326,10 +1326,10 @@ 

                                                                                                    Query All

                                                                                                    Quiz time! 📚 ✏️

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

                                                                                                    @@ -1342,10 +1342,10 @@

                                                                                                    Query All

                                                                                                    - -