From 97f9eec20e0d28876530742630fb308a8b35ce30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Folles=C3=B8?= Date: Wed, 24 Jun 2026 12:45:08 +0200 Subject: [PATCH 1/4] Add GP4-GP6 guest ports and per-port 24V sensing for X7 Extend the guest port definitions from 3 to 6 ports to support the X7 platform, and add per-port 24V current sensing. - GuestPortNumber enum: add PORT_4..PORT_6 - GuestPortInfo: add gp4..gp6 - GuestPortCurrent: add gp4_bat..gp6_bat (fields 5-7) and per-port gp1_24v..gp6_24v (fields 8-13); keep gp_24v for backwards compatibility (field 4), now documented as the common/input supply - ErrorFlags: add per-port flags (read, not_flashed, unknown_device, device_connection, device, bat_current) for GP4-GP6, and per-port 24V current flags (gp1_24v_current..gp6_24v_current) for all six ports, using new field numbers 48-71, grouped so gp1..gp6 of each error type are listed together; existing field numbers are unchanged - Rename the guest port 20V fields to 24V (gp_20v -> gp_24v, gpN_20v -> gpN_24v, gp_20v_current -> gp_24v_current). Field numbers and types are unchanged, so the wire format stays compatible - Align the gp*_bat_current comments to the "guest port N" full-name form used by the other per-port flags - Bump package version to 6.0.0 Co-Authored-By: Claude Opus 4.8 (1M context) --- Blueye.Protocol.Protobuf.csproj | 2 +- protobuf_definitions/message_formats.proto | 49 +++++++++++++++++++--- 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/Blueye.Protocol.Protobuf.csproj b/Blueye.Protocol.Protobuf.csproj index e11504e2..f9454b9a 100644 --- a/Blueye.Protocol.Protobuf.csproj +++ b/Blueye.Protocol.Protobuf.csproj @@ -5,7 +5,7 @@ true 13.0 Blueye.Protocol.Protobuf - 5.9.0 + 6.0.0 Blueye Robotics AS True Library with dotnet representation of the ProtocolDefinition protobuf files. diff --git a/protobuf_definitions/message_formats.proto b/protobuf_definitions/message_formats.proto index 12076cd3..5aff7d7b 100644 --- a/protobuf_definitions/message_formats.proto +++ b/protobuf_definitions/message_formats.proto @@ -832,18 +832,33 @@ message ErrorFlags { bool gp1_read = 9; // Guest port 1 read error. bool gp2_read = 10; // Guest port 2 read error. bool gp3_read = 11; // Guest port 3 read error. + bool gp4_read = 48; // Guest port 4 read error. + bool gp5_read = 49; // Guest port 5 read error. + bool gp6_read = 50; // Guest port 6 read error. bool gp1_not_flashed = 12; // Guest port 1 not flashed. bool gp2_not_flashed = 13; // Guest port 2 not flashed. bool gp3_not_flashed = 14; // Guest port 3 not flashed. + bool gp4_not_flashed = 51; // Guest port 4 not flashed. + bool gp5_not_flashed = 52; // Guest port 5 not flashed. + bool gp6_not_flashed = 53; // Guest port 6 not flashed. bool gp1_unknown_device = 15; // Unknown device on guest port 1. bool gp2_unknown_device = 16; // Unknown device on guest port 2. bool gp3_unknown_device = 17; // Unknown device on guest port 3. + bool gp4_unknown_device = 54; // Unknown device on guest port 4. + bool gp5_unknown_device = 55; // Unknown device on guest port 5. + bool gp6_unknown_device = 56; // Unknown device on guest port 6. bool gp1_device_connection = 18; // Guest port 1 connection error. bool gp2_device_connection = 19; // Guest port 2 connection error. bool gp3_device_connection = 20; // Guest port 3 connection error. + bool gp4_device_connection = 57; // Guest port 4 connection error. + bool gp5_device_connection = 58; // Guest port 5 connection error. + bool gp6_device_connection = 59; // Guest port 6 connection error. bool gp1_device = 21; // Guest port 1 device error. bool gp2_device = 22; // Guest port 2 device error. bool gp3_device = 23; // Guest port 3 device error. + bool gp4_device = 60; // Guest port 4 device error. + bool gp5_device = 61; // Guest port 5 device error. + bool gp6_device = 62; // Guest port 6 device error. bool drone_serial_not_set = 24; // Drone serial number not set. bool drone_serial = 25; // Drone serial number error. bool mb_eeprom_read = 26; // MB eeprom read error. @@ -859,10 +874,19 @@ message ErrorFlags { bool ds_serial = 36; // DS serial number error. bool gp_current_read = 37; // Error reading GP current. bool gp_current = 38; // Max GP current exceeded. - bool gp1_bat_current = 39; // Max battery current exceeded on GP1. - bool gp2_bat_current = 40; // Max battery current exceeded on GP2. - bool gp3_bat_current = 41; // Max battery current exceeded on GP3. - bool gp_20v_current = 42; // Max 20V current exceeded on GP. + bool gp1_bat_current = 39; // Max battery current exceeded on guest port 1. + bool gp2_bat_current = 40; // Max battery current exceeded on guest port 2. + bool gp3_bat_current = 41; // Max battery current exceeded on guest port 3. + bool gp4_bat_current = 63; // Max battery current exceeded on guest port 4. + bool gp5_bat_current = 64; // Max battery current exceeded on guest port 5. + bool gp6_bat_current = 65; // Max battery current exceeded on guest port 6. + bool gp_24v_current = 42; // Max 24V current exceeded on GP. + bool gp1_24v_current = 66; // Max 24V current exceeded on guest port 1. + bool gp2_24v_current = 67; // Max 24V current exceeded on guest port 2. + bool gp3_24v_current = 68; // Max 24V current exceeded on guest port 3. + bool gp4_24v_current = 69; // Max 24V current exceeded on guest port 4. + bool gp5_24v_current = 70; // Max 24V current exceeded on guest port 5. + bool gp6_24v_current = 71; // Max 24V current exceeded on guest port 6. bool dvl_thermal_protection_mode = 43; // DVL is in thermal protection mode. bool dvl_no_power = 44; // GP protection has been triggered at boot or faulty DVL. bool usb_disconnect = 45; // USB disconnect. @@ -1082,6 +1106,9 @@ enum GuestPortNumber { GUEST_PORT_NUMBER_PORT_1 = 1; // Guest port 1. GUEST_PORT_NUMBER_PORT_2 = 2; // Guest port 2. GUEST_PORT_NUMBER_PORT_3 = 3; // Guest port 3. + GUEST_PORT_NUMBER_PORT_4 = 4; // Guest port 4. + GUEST_PORT_NUMBER_PORT_5 = 5; // Guest port 5. + GUEST_PORT_NUMBER_PORT_6 = 6; // Guest port 6. } // List of navigation sensors that can be used by the position observer. @@ -1156,6 +1183,9 @@ message GuestPortInfo { GuestPortConnectorInfo gp1 = 1; // Information about guest port 1. GuestPortConnectorInfo gp2 = 2; // Information about guest port 2. GuestPortConnectorInfo gp3 = 3; // Information about guest port 3. + GuestPortConnectorInfo gp4 = 4; // Information about guest port 4. + GuestPortConnectorInfo gp5 = 5; // Information about guest port 5. + GuestPortConnectorInfo gp6 = 6; // Information about guest port 6. } // GuestPort restart information. @@ -1193,7 +1223,16 @@ message GuestPortCurrent { double gp1_bat = 1; // Current on GP1 battery voltage (A). double gp2_bat = 2; // Current on GP2 battery voltage (A). double gp3_bat = 3; // Current on GP3 battery voltage (A). - double gp_20v = 4; // Current on common 20V supply (A). + double gp_24v = 4; // Current on common/input 24V supply (A). + double gp4_bat = 5; // Current on GP4 battery voltage (A). + double gp5_bat = 6; // Current on GP5 battery voltage (A). + double gp6_bat = 7; // Current on GP6 battery voltage (A). + double gp1_24v = 8; // Current on GP1 24V supply (A). + double gp2_24v = 9; // Current on GP2 24V supply (A). + double gp3_24v = 10; // Current on GP3 24V supply (A). + double gp4_24v = 11; // Current on GP4 24V supply (A). + double gp5_24v = 12; // Current on GP5 24V supply (A). + double gp6_24v = 13; // Current on GP6 24V supply (A). } // Vector with 3 elements. From fb0581df8aa6a245a0b6ec51e5319011b3f18047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Folles=C3=B8?= Date: Wed, 24 Jun 2026 13:43:22 +0200 Subject: [PATCH 2/4] Add per-port 5V current sensing for guest ports X7 adds 5V current sensing per guest port. - GuestPortCurrent: add gp1_5v..gp6_5v (fields 14-19) - ErrorFlags: add gp1_5v_current..gp6_5v_current (fields 72-77), grouped after the per-port 24V current flags Co-Authored-By: Claude Opus 4.8 (1M context) --- protobuf_definitions/message_formats.proto | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/protobuf_definitions/message_formats.proto b/protobuf_definitions/message_formats.proto index 5aff7d7b..c3b99e8f 100644 --- a/protobuf_definitions/message_formats.proto +++ b/protobuf_definitions/message_formats.proto @@ -887,6 +887,12 @@ message ErrorFlags { bool gp4_24v_current = 69; // Max 24V current exceeded on guest port 4. bool gp5_24v_current = 70; // Max 24V current exceeded on guest port 5. bool gp6_24v_current = 71; // Max 24V current exceeded on guest port 6. + bool gp1_5v_current = 72; // Max 5V current exceeded on guest port 1. + bool gp2_5v_current = 73; // Max 5V current exceeded on guest port 2. + bool gp3_5v_current = 74; // Max 5V current exceeded on guest port 3. + bool gp4_5v_current = 75; // Max 5V current exceeded on guest port 4. + bool gp5_5v_current = 76; // Max 5V current exceeded on guest port 5. + bool gp6_5v_current = 77; // Max 5V current exceeded on guest port 6. bool dvl_thermal_protection_mode = 43; // DVL is in thermal protection mode. bool dvl_no_power = 44; // GP protection has been triggered at boot or faulty DVL. bool usb_disconnect = 45; // USB disconnect. @@ -1233,6 +1239,12 @@ message GuestPortCurrent { double gp4_24v = 11; // Current on GP4 24V supply (A). double gp5_24v = 12; // Current on GP5 24V supply (A). double gp6_24v = 13; // Current on GP6 24V supply (A). + double gp1_5v = 14; // Current on GP1 5V supply (A). + double gp2_5v = 15; // Current on GP2 5V supply (A). + double gp3_5v = 16; // Current on GP3 5V supply (A). + double gp4_5v = 17; // Current on GP4 5V supply (A). + double gp5_5v = 18; // Current on GP5 5V supply (A). + double gp6_5v = 19; // Current on GP6 5V supply (A). } // Vector with 3 elements. From 6f9acb3867239e316b8e3ccab96af63aeb7cef11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Folles=C3=B8?= Date: Wed, 24 Jun 2026 13:46:57 +0200 Subject: [PATCH 3/4] Document gp_24v common sensing as X1/X3 only The common/input 24V current reading (gp_24v) only exists on X1/X3; X3 Ultra and X7 have no global 24V current sensing (per review). Clarify this in the field comment. The field is kept (released field 4) for wire compatibility. Co-Authored-By: Claude Opus 4.8 (1M context) --- protobuf_definitions/message_formats.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/protobuf_definitions/message_formats.proto b/protobuf_definitions/message_formats.proto index c3b99e8f..df06cb7f 100644 --- a/protobuf_definitions/message_formats.proto +++ b/protobuf_definitions/message_formats.proto @@ -1229,7 +1229,7 @@ message GuestPortCurrent { double gp1_bat = 1; // Current on GP1 battery voltage (A). double gp2_bat = 2; // Current on GP2 battery voltage (A). double gp3_bat = 3; // Current on GP3 battery voltage (A). - double gp_24v = 4; // Current on common/input 24V supply (A). + double gp_24v = 4; // Current on common/input 24V supply (A). Only present on X1/X3 (not X3 Ultra or X7). double gp4_bat = 5; // Current on GP4 battery voltage (A). double gp5_bat = 6; // Current on GP5 battery voltage (A). double gp6_bat = 7; // Current on GP6 battery voltage (A). From aafe610747220a88e17dc06d9e35e1f690b88f51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Folles=C3=B8?= Date: Wed, 24 Jun 2026 13:50:33 +0200 Subject: [PATCH 4/4] Document gp_24v_current global flag as X1/X3 only The global 24V over-current flag (gp_24v_current) mirrors the gp_24v reading: there is no global 24V current sensing on X3 Ultra or X7, so clarify in the comment that it only applies to X1/X3. Co-Authored-By: Claude Opus 4.8 (1M context) --- protobuf_definitions/message_formats.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/protobuf_definitions/message_formats.proto b/protobuf_definitions/message_formats.proto index df06cb7f..6b224a61 100644 --- a/protobuf_definitions/message_formats.proto +++ b/protobuf_definitions/message_formats.proto @@ -880,7 +880,7 @@ message ErrorFlags { bool gp4_bat_current = 63; // Max battery current exceeded on guest port 4. bool gp5_bat_current = 64; // Max battery current exceeded on guest port 5. bool gp6_bat_current = 65; // Max battery current exceeded on guest port 6. - bool gp_24v_current = 42; // Max 24V current exceeded on GP. + bool gp_24v_current = 42; // Max 24V current exceeded on GP. Only present on X1/X3 (not X3 Ultra or X7). bool gp1_24v_current = 66; // Max 24V current exceeded on guest port 1. bool gp2_24v_current = 67; // Max 24V current exceeded on guest port 2. bool gp3_24v_current = 68; // Max 24V current exceeded on guest port 3.