From 29124e2e97a137539f5d4f1bf2895cada7df84da Mon Sep 17 00:00:00 2001 From: Jacob Dahl Date: Thu, 9 Jan 2025 11:48:31 -0600 Subject: [PATCH] Tools: ARK_FPV board support --- Tools/AP_Bootloader/board_types.txt | 2 ++ Tools/autotest/validate_board_list.py | 1 + Tools/bootloaders/ARK_FPV_bl.bin | Bin 0 -> 20724 bytes 3 files changed, 3 insertions(+) create mode 100755 Tools/bootloaders/ARK_FPV_bl.bin diff --git a/Tools/AP_Bootloader/board_types.txt b/Tools/AP_Bootloader/board_types.txt index 9f988ab311a96..eca08d5a6eb7d 100644 --- a/Tools/AP_Bootloader/board_types.txt +++ b/Tools/AP_Bootloader/board_types.txt @@ -12,6 +12,7 @@ TARGET_HW_PX4_FMU_V5X 51 TARGET_HW_PX4_FMU_V6 52 TARGET_HW_PX4_FMU_V6X 53 TARGET_HW_ARK_FMU_V6X 57 +TARGET_HW_ARK_FPV 59 TARGET_HW_MINDPX_V2 88 TARGET_HW_PX4_FLOW_V1 6 TARGET_HW_PX4_DISCOVERY_V1 99 @@ -57,6 +58,7 @@ Reserved "PX4 [BL] FMU v6X.x" 53 Reserved "PX4 [BL] FMU v6C.x" 56 Reserved "ARK [BL] FMU v6X.x" 57 +Reserved "ARK [BL] FPV" 59 Reserved "GUMSTIX [BL] FMU v6" 54 Reserved "ARK CAN FLOW" 80 diff --git a/Tools/autotest/validate_board_list.py b/Tools/autotest/validate_board_list.py index 0645facd176ea..3169e7682710e 100755 --- a/Tools/autotest/validate_board_list.py +++ b/Tools/autotest/validate_board_list.py @@ -61,6 +61,7 @@ def validate_filepath_content(self, tuples): 52, # TARGET_HW_PX4_FMU_V6 and Reserved "PX4 [BL] FMU v6.x" 53, # TARGET_HW_PX4_FMU_V6X and Reserved "PX4 [BL] FMU v6X.x" 57, # TARGET_HW_ARK_FMU_V6X and Reserved "ARK [BL] FMU v6X.x" + 59, # TARGET_HW_ARK_FPV and Reserved "ARK [BL] FPV" 80, # TARGET_HW_ARK_CAN_FLOW and Reserved "ARK CAN FLOW" 20, # TARGET_HW_UVIFY_CORE and AP_HW_F4BY ]) diff --git a/Tools/bootloaders/ARK_FPV_bl.bin b/Tools/bootloaders/ARK_FPV_bl.bin new file mode 100755 index 0000000000000000000000000000000000000000..4368a45f81573fd80d4e32660873949154de01ac GIT binary patch literal 20724 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