State Management

Camera Readiness

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 Encoding Active status flags. For example:

  • System Busy flag is set while loading presets, changing settings, formatting sdcard, …

  • Encoding Active flag is set while capturing photo/video media

If the system is not ready, it should reject an incoming command; however, best practice is to always wait for the System Busy and Encode Active flags to be unset before sending messages other than get status/setting queries.

Keep Alive

Unless changed by the user, GoPro cameras will automatically power off after some time (e.g. 5min, 15min, 30min). Therefore, it is necessary to periodically send a Keep Alive signal to maintain the connection.

Camera Control

In order to prevent undefined behavior between the camera and a connected app, simultaneous use of the camera and a connected app is discouraged. A third party client should use Set Camera Control to tell the camera that the client wishes to claim control of the camera.