From d22e75ec4fe622ca797fdbe5b737c844846cd829 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 21 Jan 2024 15:36:29 +1100 Subject: [PATCH 1/2] 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 18e6a007e94e1..47bf754da4653 100644 --- a/libraries/AP_BoardConfig/AP_BoardConfig.h +++ b/libraries/AP_BoardConfig/AP_BoardConfig.h @@ -68,6 +68,7 @@ class AP_BoardConfig { 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 c54f872bb94a8..51f32bf8d7d63 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); From 6708f89c504fab18bf70c36c23fdb741fd2cb782 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 21 Jan 2024 15:36:46 +1100 Subject: [PATCH 2/2] hwdef: added support for Holybro6X-45686 --- libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat index 8074aa2a07cd8..1cf5be3a9f743 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat @@ -331,6 +331,11 @@ SPIDEV adis16470 SPI3 DEVID1 SP3_CS1 MODE3 1*MHZ 2*MHZ SPIDEV iim42652 SPI2 DEVID1 SP2_CS1 MODE3 2*MHZ 8*MHZ SPIDEV icm45686 SPI1 DEVID1 SP1_CS1 MODE3 2*MHZ 8*MHZ +# IMU devices for Holybro6X-45686 version +SPIDEV icm45686-3 SPI3 DEVID1 SP3_CS1 MODE3 2*MHZ 8*MHZ +SPIDEV icm45686-2 SPI2 DEVID1 SP2_CS1 MODE3 2*MHZ 8*MHZ +SPIDEV icm45686-1 SPI1 DEVID1 SP1_CS1 MODE3 2*MHZ 8*MHZ + # Holybro6X 3 IMUs IMU Invensensev3 SPI:icm42688 ROTATION_PITCH_180_YAW_90 BOARD_MATCH(FMUV6_BOARD_HOLYBRO_6X) IMU BMI088 SPI:bmi088_a SPI:bmi088_g ROTATION_PITCH_180 BOARD_MATCH(FMUV6_BOARD_HOLYBRO_6X) @@ -347,6 +352,11 @@ IMU ADIS1647x SPI:adis16470 ROTATION_ROLL_180 SP3_DRDY2 BOARD_MATCH(FMUV6_BOA IMU Invensensev3 SPI:iim42652 ROTATION_ROLL_180_YAW_270 BOARD_MATCH(FMUV6_BOARD_HOLYBRO_6X_REV6) IMU Invensensev3 SPI:icm45686 ROTATION_YAW_90 BOARD_MATCH(FMUV6_BOARD_HOLYBRO_6X_REV6) +# Holybro6X-45686 3 IMUs, the ones on SPI-2 and SPI-3 are isolated +IMU Invensensev3 SPI:icm45686-2 ROTATION_ROLL_180 BOARD_MATCH(FMUV6_BOARD_HOLYBRO_6X_45686) +IMU Invensensev3 SPI:icm45686-3 ROTATION_ROLL_180 BOARD_MATCH(FMUV6_BOARD_HOLYBRO_6X_45686) +IMU Invensensev3 SPI:icm45686-1 ROTATION_YAW_90 BOARD_MATCH(FMUV6_BOARD_HOLYBRO_6X_45686) + define HAL_DEFAULT_INS_FAST_SAMPLE 7 # enable RAMTROM parameter storage