feat(boards/zeroone): Add IIM42652 and BMP581 support for ZeroOneX6 Series V2 (#27475)

* Add TDK IIM42652 IMU and Bosch BMP581 Baro support for ZeroOneX6 Series V2 board
This commit is contained in:
ZeroOne-Aero
2026-05-28 18:03:43 -04:00
committed by GitHub
parent 3445a60c38
commit 02b41f81d9
3 changed files with 23 additions and 6 deletions
+3
View File
@@ -10,6 +10,8 @@ CONFIG_BOARD_SERIAL_EXT2="/dev/ttyS3"
CONFIG_DRIVERS_ADC_ADS1115=y
CONFIG_DRIVERS_ADC_BOARD_ADC=y
CONFIG_DRIVERS_BAROMETER_INVENSENSE_ICP201XX=y
CONFIG_DRIVERS_BAROMETER_BMP581=y
CONFIG_DRIVERS_BAROMETER_GOERTEK_SPA06=y
CONFIG_DRIVERS_CAMERA_CAPTURE=y
CONFIG_DRIVERS_CAMERA_TRIGGER=y
CONFIG_DRIVERS_CDCACM_AUTOSTART=y
@@ -21,6 +23,7 @@ CONFIG_DRIVERS_HEATER=y
CONFIG_DRIVERS_IMU_BOSCH_BMI088=y
CONFIG_DRIVERS_IMU_INVENSENSE_ICM45686=y
CONFIG_DRIVERS_IMU_INVENSENSE_IIM42653=y
CONFIG_DRIVERS_IMU_INVENSENSE_IIM42652=y
CONFIG_DRIVERS_IMU_MURATA_SCH16T=y
CONFIG_DRIVERS_GNSS_SEPTENTRIO=y
CONFIG_COMMON_LIGHT=y
+18 -6
View File
@@ -66,7 +66,10 @@ then
bmi088 -G -R 4 -s start # X6
# Internal SPI bus icm45686 with SPIX
icm45686 -b 1 -s -R 8 start # X6 & X6 air
if ! icm45686 -b 1 -s -R 8 start # X6 & X6 air
then
iim42652 -b 1 -s -R 8 start # X6 air V2
fi
fi
@@ -79,27 +82,36 @@ then
bmi088 -G -R 4 -s start
# Internal SPI bus IIM42653 with SPIX
iim42653 -b 1 -s -R 8 start
if ! iim42653 -b 1 -s -R 8 start
then
iim42652 -b 1 -s -R 8 start # X6 Pro V2
fi
fi
# External compass on GPS1/I2C1 bus
ist8310 -X -b 1 -R 10 start
# Internal compass
if ! rm3100 -I -b 4 start # X6 & X6 PRO & X6 Ultra
if ! rm3100 -I -b 4 start # X6 Series
then
if ! ist8310 -I -a 0x0E -R 12 start # X6 air
then
bmm350 -I -b 4 -a 0x15 -R 14 start # X6 air II
bmm350 -I -b 4 -a 0x15 -R 14 start # X6 air V2
fi
fi
# Possible internal Baro
if param compare SENS_INT_BARO_EN 1
then
icp201xx -I -a 0x64 start
if ! icp201xx -I -a 0x64 start
then
bmp581 -I -a 0X47 start
fi
fi
icp201xx -X start
#external baro
if ! icp201xx -X start
then
spa06 -X -a 0x77 start
fi
unset INA_CONFIGURED
unset HAVE_PM2
+2
View File
@@ -39,6 +39,7 @@ constexpr px4_spi_bus_all_hw_t px4_spi_buses_all_hw[BOARD_NUM_SPI_CFG_HW_VERSION
initSPIFmumID(ZeroOneX6_0, {
initSPIBus(SPI::Bus::SPI1, {
initSPIDevice(DRV_IMU_DEVTYPE_ICM45686, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
initSPIDevice(DRV_IMU_DEVTYPE_IIM42652, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
}, {GPIO::PortI, GPIO::Pin11}),
initSPIBus(SPI::Bus::SPI2, {
initSPIDevice(DRV_IMU_DEVTYPE_ICM45686, SPI::CS{GPIO::PortH, GPIO::Pin5}, SPI::DRDY{GPIO::PortA, GPIO::Pin10}),
@@ -59,6 +60,7 @@ constexpr px4_spi_bus_all_hw_t px4_spi_buses_all_hw[BOARD_NUM_SPI_CFG_HW_VERSION
initSPIFmumID(ZeroOneX6_1, { // X6 Pro
initSPIBus(SPI::Bus::SPI1, {
initSPIDevice(DRV_IMU_DEVTYPE_IIM42653, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
initSPIDevice(DRV_IMU_DEVTYPE_IIM42652, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
}, {GPIO::PortI, GPIO::Pin11}),
initSPIBus(SPI::Bus::SPI2, {
initSPIDevice(DRV_IMU_DEVTYPE_IIM42653, SPI::CS{GPIO::PortH, GPIO::Pin5}, SPI::DRDY{GPIO::PortA, GPIO::Pin10}),