From a25f10a91439a7bba8178da6d3789518201f4688 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 21 Jan 2024 15:36:29 +1100 Subject: [PATCH] AP_BoardConfig: added detection of Holybro6X-45686 --- libraries/AP_BoardConfig/AP_BoardConfig.h | 1 + libraries/AP_BoardConfig/board_drivers.cpp | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/libraries/AP_BoardConfig/AP_BoardConfig.h b/libraries/AP_BoardConfig/AP_BoardConfig.h index 18e6a007e9..47bf754da4 100644 --- a/libraries/AP_BoardConfig/AP_BoardConfig.h +++ b/libraries/AP_BoardConfig/AP_BoardConfig.h @@ -68,6 +68,7 @@ public: FMUV6_BOARD_HOLYBRO_6X = 40, FMUV6_BOARD_CUAV_6X = 41, FMUV6_BOARD_HOLYBRO_6X_REV6 = 42, + FMUV6_BOARD_HOLYBRO_6X_45686 = 43, PX4_BOARD_OLDDRIVERS = 100, }; diff --git a/libraries/AP_BoardConfig/board_drivers.cpp b/libraries/AP_BoardConfig/board_drivers.cpp index c54f872bb9..51f32bf8d7 100644 --- a/libraries/AP_BoardConfig/board_drivers.cpp +++ b/libraries/AP_BoardConfig/board_drivers.cpp @@ -107,6 +107,7 @@ void AP_BoardConfig::board_setup_drivers(void) case PX4_BOARD_MINDPXV2: case FMUV6_BOARD_HOLYBRO_6X: case FMUV6_BOARD_HOLYBRO_6X_REV6: + case FMUV6_BOARD_HOLYBRO_6X_45686: case FMUV6_BOARD_CUAV_6X: break; default: @@ -499,6 +500,11 @@ void AP_BoardConfig::detect_fmuv6_variant() state.board_type.set_and_notify(FMUV6_BOARD_CUAV_6X); DEV_PRINTF("Detected CUAV 6X\n"); AP_Param::load_defaults_file("@ROMFS/param/CUAV_V6X_defaults.parm", false); + } else if (spi_check_register("icm45686-1", INV3REG_456_WHOAMI, INV3_WHOAMI_ICM45686) && + spi_check_register("icm45686-2", INV3REG_456_WHOAMI, INV3_WHOAMI_ICM45686) && + spi_check_register("icm45686-3", INV3REG_456_WHOAMI, INV3_WHOAMI_ICM45686)) { + state.board_type.set_and_notify(FMUV6_BOARD_HOLYBRO_6X_45686); + DEV_PRINTF("Detected Holybro 6X_45686\n"); } else if (spi_check_register("iim42652", INV3REG_WHOAMI, INV3_WHOAMI_IIM42652) && spi_check_register("icm45686", INV3REG_456_WHOAMI, INV3_WHOAMI_ICM45686)) { state.board_type.set_and_notify(FMUV6_BOARD_HOLYBRO_6X_REV6);