From 796653630cc5d1e9cb86544c582883655712042c Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 19 Jul 2022 08:32:53 +1000 Subject: [PATCH] hwdef: support CUAV-6X and Holybro-6X with same firmware --- .../hwdef/Pixhawk6X/hwdef-bl.dat | 5 -- .../AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat | 47 ++++++++++++++----- 2 files changed, 34 insertions(+), 18 deletions(-) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef-bl.dat index 00d0e57b01..f24632a34c 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef-bl.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef-bl.dat @@ -7,11 +7,6 @@ MCU STM32H7xx STM32H743xx # crystal frequency OSCILLATOR_HZ 16000000 -# USB setup -USB_VENDOR 0x3162 # ONLY FOR USE BY Holybro -USB_PRODUCT 0x0053 -USB_STRING_MANUFACTURER "Holybro" - # board ID for firmware load APJ_BOARD_ID 53 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat index e5ec8cd4c3..6662d6cc99 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat @@ -10,14 +10,13 @@ OSCILLATOR_HZ 16000000 # ChibiOS system timer STM32_ST_USE_TIMER 2 -# USB setup -USB_VENDOR 0x3162 # ONLY FOR USE BY Holybro -USB_PRODUCT 0x0053 -USB_STRING_MANUFACTURER "Holybro" - # board ID for firmware load APJ_BOARD_ID 53 +# enable board sub-type detection for FMUV6 +define HAL_CHIBIOS_ARCH_FMUV6 1 +define AP_FEATURE_BOARD_DETECT 1 + FLASH_RESERVE_START_KB 128 # to be compatible with the px4 bootloader we need @@ -268,7 +267,8 @@ define HAL_GPIO_LED_ON 0 # ID pins PG0 HW_VER_REV_DRIVE OUTPUT LOW -# PH3 HW_VER_SENS ADC1 SCALE(1) +# PH3 HW_VER_SENS ADC3 SCALE(1) +# PH4 HW_REV_SENS ADC3 SCALE(1) # PWM output for buzzer PF9 TIM14_CH1 TIM14 GPIO(77) ALARM @@ -276,28 +276,49 @@ PF9 TIM14_CH1 TIM14 GPIO(77) ALARM # RC input PI5 TIM8_CH1 TIM8 RCININT PULLDOWN LOW -# barometers +# barometers (Holybro 6X) BARO BMP388 I2C:2:0x76 BARO BMP388 I2C:0:0x77 +# barometers (CUAV 6X) +BARO ICP201XX I2C:0:0x64 +BARO ICP201XX I2C:2:0x63 + # compass define HAL_PROBE_EXTERNAL_I2C_COMPASSES + +# builtin compass on Holybro 6X COMPASS BMM150 I2C:0:0x10 false ROTATION_NONE -# SPI devices +# builtin compass on CUAV 6X +COMPASS RM3100 I2C:0:0x20 false ROTATION_PITCH_180 + +# IMU devices for Holybro6X SPIDEV bmi088_g SPI3 DEVID1 BMI088_G_CS MODE3 10*MHZ 10*MHZ SPIDEV bmi088_a SPI3 DEVID2 BMI088_A_CS MODE3 10*MHZ 10*MHZ # alternative to bmi088 SPIDEV icm20649 SPI3 DEVID1 BMI088_A_CS MODE3 10*MHZ 10*MHZ SPIDEV icm42688 SPI2 DEVID1 ICM42688_CS MODE3 2*MHZ 8*MHZ SPIDEV imu_spi1 SPI1 DEVID1 IMU1_CS MODE3 2*MHZ 8*MHZ + +# IMU devices for CUAV-6X. The CUAV board has a BMI088, ICM20649 and +# ICM42688 the ICM42688 and BMI088 are on the same SPI buses and CS +# pins as the Holybro board, but the orientation of the BMI088 is +# different. The ICM20649 is on a different bus +SPIDEV icm20649_2 SPI1 DEVID1 IMU1_CS MODE3 2*MHZ 8*MHZ + SPIDEV ramtron SPI5 DEVID1 FRAM_CS MODE3 8*MHZ 8*MHZ -# 3 IMUs -IMU BMI088 SPI:bmi088_a SPI:bmi088_g ROTATION_NONE -IMU Invensensev2 SPI:icm20649 ROTATION_YAW_180 # alternative to BMI088 -IMU Invensensev3 SPI:icm42688 ROTATION_PITCH_180_YAW_90 -IMU Invensensev3 SPI:imu_spi1 ROTATION_PITCH_180_YAW_90 +# 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_NONE BOARD_MATCH(FMUV6_BOARD_HOLYBRO_6X) +IMU Invensensev2 SPI:icm20649 ROTATION_YAW_180 BOARD_MATCH(FMUV6_BOARD_HOLYBRO_6X) # alternative to BMI088 +IMU Invensensev3 SPI:imu_spi1 ROTATION_PITCH_180_YAW_90 BOARD_MATCH(FMUV6_BOARD_HOLYBRO_6X) + +# CUAV-6X 3 IMUs +IMU Invensensev3 SPI:icm42688 ROTATION_ROLL_180_YAW_270 BOARD_MATCH(FMUV6_BOARD_CUAV_6X) +IMU BMI088 SPI:bmi088_a SPI:bmi088_g ROTATION_PITCH_180 BOARD_MATCH(FMUV6_BOARD_CUAV_6X) +IMU Invensensev2 SPI:icm20649_2 ROTATION_ROLL_180 BOARD_MATCH(FMUV6_BOARD_CUAV_6X) define HAL_DEFAULT_INS_FAST_SAMPLE 7