diff --git a/src/modules/mavlink/mavlink_main.cpp b/src/modules/mavlink/mavlink_main.cpp index 0d76e299c3c78b92c7c0aa8715f00d5e7fe560b7..4cc1e1d3f42a3e34fe00e747b531a63a1ee27e15 100644 --- a/src/modules/mavlink/mavlink_main.cpp +++ b/src/modules/mavlink/mavlink_main.cpp @@ -1227,8 +1227,12 @@ Mavlink::send_autopilot_capabilites() msg.middleware_sw_version = px4_firmware_version(); msg.os_sw_version = px4_os_version(); msg.board_version = px4_board_version(); - uint64_t fw_git_version_binary = px4_firmware_version_binary(); + /* use only first 5 bytes of git hash for firmware version */ + const uint64_t fw_git_version_binary = px4_firmware_version_binary() & 0xFFFFFFFFFF000000; + const uint64_t fw_vendor_version = px4_firmware_vendor_version() >> 8; + constexpr size_t fw_vendor_version_length = 3; memcpy(&msg.flight_custom_version, &fw_git_version_binary, sizeof(msg.flight_custom_version)); + memcpy(&msg.flight_custom_version, &fw_vendor_version, fw_vendor_version_length); memcpy(&msg.middleware_custom_version, &fw_git_version_binary, sizeof(msg.middleware_custom_version)); uint64_t os_git_version_binary = px4_os_version_binary(); memcpy(&msg.os_custom_version, &os_git_version_binary, sizeof(msg.os_custom_version));