Presets

The camera organizes many modes of operation into Presets.

Depending on the camera’s state, different collections of presets will be available for immediate loading and use. Below is a table of settings that affect the current preset collection and thereby which presets can be loaded

ID Setting
162 Max Lens
173 Video Performance Mode
175 Controls
177 Enable Night Photo
180 Video Mode
186 Video Mode
187 Lapse Mode
189 Max Lens Mod
190 Max Lens Mod Enable
191 Photo Mode

Preset Groups

Presets are organized into Preset Groups.

To find the currently available Presets / Preset Groups, use Get Available Presets

Preset Modified Status

Status 98 returns the camera’s Preset Modified Status value.

The value of this status is set to zero when the client sends a Get Preset Status message to the camera.

The value of this status is set to a non-zero value when:

  • Preset settings submenu is exited in the camera UI (whether any settings were changed or not)

  • A new preset is created

  • A preset is deleted

  • Preset ordering is changed within a preset group

  • A preset is reset to factory defaults

Operations

Get Available Presets
Type:

Protobuf

Request

Get the set of currently available presets and optionally register to be notified when it changes.

Response: NotifyPresetStatus sent immediately

Notification: NotifyPresetStatus sent periodically as preset status changes, if registered.

The preset status changes when:

  • A client changes one of a preset’s captioned settings via the API

  • The user exits from a preset’s settings UI on the camera (e.g. long-press the preset pill and then press the back arrow)

  • The user creates/deletes/reorders a preset within a group

UUID:

Query

Feature ID:
0xF5
Action ID:
0x72
Message:

RequestGetPresetStatus (docs) (source)

Response

Current Preset status

Sent either:

UUID:

Query Response

Feature ID:
0xF5
Action ID:
0xF2
Message:

NotifyPresetStatus (docs) (source)

Notification

Current Preset status

Sent either:

UUID:

Query Response

Feature ID:
0xF5
Action ID:
0xF3
Message:

NotifyPresetStatus (docs) (source)

Load Preset
https://img.shields.io/badge/HERO12 Black-f58231 https://img.shields.io/badge/HERO11 Black Mini-911eb4 https://img.shields.io/badge/HERO11 Black-f032e6 https://img.shields.io/badge/HERO10 Black-bcf60c https://img.shields.io/badge/HERO9 Black-fabebe
Type:

TLV command

ID:
0x40

Load preset by ID. The ID must be found from Get Available Presets

Request
UUID:

Command

Parameters:
  • preset (uint32) - preset ID
Response
UUID:

Command Response

Load Preset Group
Type:

TLV command

ID:
0x3E

The available group ID values can be found in EnumPresetGroup

Request
UUID:

Command

Parameters:
  • preset (uint32) - preset group ID
Response
UUID:

Command Response

Update Custom Preset
https://img.shields.io/badge/HERO12 Black-f58231
Type:

Protobuf

Request

Request to Update the Title and / or Icon of the Active Custom Preset

This only operates on the currently active Preset and will fail if the current Preset is not custom.

The use cases are:

  1. Update the Custom Preset Icon

    • icon_id is always optional and can always be passed

and / or

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

Returns a ResponseGeneric with the status of the preset update request.

UUID:

Command

Feature ID:
0xF1
Action ID:
0x64
Message:

RequestCustomPresetUpdate (docs) (source)

Response

Generic Response used across many response / notification messages

UUID:

Command Response

Feature ID:
0xF1
Action ID:
0xE4
Message:

ResponseGeneric (docs) (source)