From 56e2dcffd3c9218cfa210d799c8b5f76a41d20b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Folles=C3=B8?= Date: Tue, 24 Feb 2026 16:17:09 +0100 Subject: [PATCH 1/3] Add 60 fps framerate and digital pan/tilt/zoom for X3 Ultra Add FRAMERATE_FPS_60 enum value for 60 fps support on X3 Ultra at 1080p and 720p. Document that frame rate is reduced if unsupported at the current resolution. Add CameraPanTiltZoom message with pan, tilt, and zoom fields, along with CameraPanTiltZoomCtrl and CameraPanTiltZoomTel messages for digital camera control on X3 Ultra. Co-Authored-By: Claude Opus 4.6 --- protobuf_definitions/control.proto | 7 +++++++ protobuf_definitions/message_formats.proto | 13 +++++++++++++ protobuf_definitions/telemetry.proto | 8 ++++++++ 3 files changed, 28 insertions(+) diff --git a/protobuf_definitions/control.proto b/protobuf_definitions/control.proto index 389ba724..3431dad6 100644 --- a/protobuf_definitions/control.proto +++ b/protobuf_definitions/control.proto @@ -231,3 +231,10 @@ message FormatRemovableStorageDeviceCtrl { message SetTurbidityFilterCtrl { FilterMessage turbidity_filter = 1; // Message with the turbidity filter settings to set. } + +// Issue a command to set the digital pan, tilt, and zoom of the main camera. +// +// Only supported on X3 Ultra. +message CameraPanTiltZoomCtrl { + CameraPanTiltZoom camera_pan_tilt_zoom = 1; // The desired pan, tilt, and zoom state. +} diff --git a/protobuf_definitions/message_formats.proto b/protobuf_definitions/message_formats.proto index c7fe4e3a..2b3d86ab 100644 --- a/protobuf_definitions/message_formats.proto +++ b/protobuf_definitions/message_formats.proto @@ -836,10 +836,14 @@ enum Resolution { } // Available camera frame rates. +// +// If the requested frame rate is higher than what is supported at the current resolution, +// the frame rate will be reduced while the resolution is respected. enum Framerate { FRAMERATE_UNSPECIFIED = 0; // Framerate not specified. FRAMERATE_FPS_30 = 1; // 30 frames per second. FRAMERATE_FPS_25 = 2; // 25 frames per second. (Only supported on Pioneer/Pro/X1/X3) + FRAMERATE_FPS_60 = 3; // 60 frames per second. (Only supported on X3 Ultra at 1080p and 720p) } // Which camera to control. @@ -1320,3 +1324,12 @@ message FilterMessage { bool enabled = 1; // If the filter is enabled. float intensity = 2; // Intensity of the filter (0..1). } + +// Digital pan, tilt, and zoom state for the main camera. +// +// Only supported on X3 Ultra. Controls digital (not mechanical) zoom. +message CameraPanTiltZoom { + float pan = 1; // Horizontal pan (-1.0..1.0), where 0.0 is center. + float tilt = 2; // Vertical tilt (-1.0..1.0), where 0.0 is center. + float zoom = 3; // Zoom level (0.0..1.0), where 0.0 is no zoom and 1.0 is maximum zoom. +} diff --git a/protobuf_definitions/telemetry.proto b/protobuf_definitions/telemetry.proto index 71a74b1f..3617cbf1 100644 --- a/protobuf_definitions/telemetry.proto +++ b/protobuf_definitions/telemetry.proto @@ -320,3 +320,11 @@ message LogEntryTel { message TurbidityFilterTel { FilterMessage turbidity_filter = 1; // Turbidity filter settings. } + +// Digital pan, tilt, and zoom telemetry from the main camera. +// +// Reports the actual pan, tilt, and zoom state of the camera. +// Only supported on X3 Ultra. +message CameraPanTiltZoomTel { + CameraPanTiltZoom camera_pan_tilt_zoom = 1; // Current pan, tilt, and zoom state. +} From 6822d3f62f46c7f721113a8a0081602bf6f9b5b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Folles=C3=B8?= Date: Tue, 24 Feb 2026 16:34:19 +0100 Subject: [PATCH 2/3] Add 2.7K resolution for X3 Ultra Co-Authored-By: Claude Opus 4.6 --- protobuf_definitions/message_formats.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/protobuf_definitions/message_formats.proto b/protobuf_definitions/message_formats.proto index 2b3d86ab..f7448fd4 100644 --- a/protobuf_definitions/message_formats.proto +++ b/protobuf_definitions/message_formats.proto @@ -833,6 +833,7 @@ enum Resolution { RESOLUTION_HD_720P = 2; // 720p HD (1280x720). RESOLUTION_FULLHD_1080P = 1; // 1080p Full HD (1920x1080). RESOLUTION_UHD_4K = 3; // 4K Ultra HD (3840x2160, Only supported on X3 Ultra). + RESOLUTION_QHD_2_7K = 5; // 2.7K QHD (2720x1528, Only supported on X3 Ultra). } // Available camera frame rates. From baf5d52dcfc67a06938800119e2ee5e11120dc19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Folles=C3=B8?= Date: Tue, 24 Feb 2026 21:25:33 +0100 Subject: [PATCH 3/3] Update resolution and frame rates --- protobuf_definitions/message_formats.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/protobuf_definitions/message_formats.proto b/protobuf_definitions/message_formats.proto index f7448fd4..32e54e81 100644 --- a/protobuf_definitions/message_formats.proto +++ b/protobuf_definitions/message_formats.proto @@ -833,7 +833,7 @@ enum Resolution { RESOLUTION_HD_720P = 2; // 720p HD (1280x720). RESOLUTION_FULLHD_1080P = 1; // 1080p Full HD (1920x1080). RESOLUTION_UHD_4K = 3; // 4K Ultra HD (3840x2160, Only supported on X3 Ultra). - RESOLUTION_QHD_2_7K = 5; // 2.7K QHD (2720x1528, Only supported on X3 Ultra). + RESOLUTION_QHD_2K = 5; // 2K QHD (2560x1440, Only supported on X3 Ultra). } // Available camera frame rates. @@ -844,7 +844,7 @@ enum Framerate { FRAMERATE_UNSPECIFIED = 0; // Framerate not specified. FRAMERATE_FPS_30 = 1; // 30 frames per second. FRAMERATE_FPS_25 = 2; // 25 frames per second. (Only supported on Pioneer/Pro/X1/X3) - FRAMERATE_FPS_60 = 3; // 60 frames per second. (Only supported on X3 Ultra at 1080p and 720p) + FRAMERATE_FPS_60 = 3; // 60 frames per second. (Only supported on X3 Ultra at QHD, 1080p and 720p) } // Which camera to control.