Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hwdef: added support for Holybro6X-45686 #26040

Merged
merged 2 commits into from Jan 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions libraries/AP_BoardConfig/AP_BoardConfig.h
Expand Up @@ -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,
};

Expand Down
6 changes: 6 additions & 0 deletions libraries/AP_BoardConfig/board_drivers.cpp
Expand Up @@ -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:
Expand Down Expand Up @@ -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);
Expand Down
10 changes: 10 additions & 0 deletions libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat
Expand Up @@ -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)
Expand All @@ -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
Expand Down