From 80c6ab7106d120c3a815a511614409622803e9fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bulut=20G=C3=B6z=C3=BCb=C3=BCy=C3=BCk?= Date: Thu, 3 Mar 2022 23:12:58 +0300 Subject: [PATCH] Add support for Omnibus F4 boards with ICM20608G IMUs One can use following command to compile: make omnibus_f4sd_icm20608g Co-Authored-By: berkercanatar <19846944+berkercanatar@users.noreply.github.com> --- boards/omnibus/f4sd/icm20608g.px4board | 3 +++ boards/omnibus/f4sd/init/rc.board_sensors | 6 +++++- boards/omnibus/f4sd/src/spi.cpp | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 boards/omnibus/f4sd/icm20608g.px4board diff --git a/boards/omnibus/f4sd/icm20608g.px4board b/boards/omnibus/f4sd/icm20608g.px4board new file mode 100644 index 0000000000..b7b57eeb5e --- /dev/null +++ b/boards/omnibus/f4sd/icm20608g.px4board @@ -0,0 +1,3 @@ +CONFIG_DRIVERS_IMU_INVENSENSE_ICM20602=n +CONFIG_DRIVERS_IMU_INVENSENSE_MPU6000=n +CONFIG_DRIVERS_IMU_INVENSENSE_ICM20608G=y diff --git a/boards/omnibus/f4sd/init/rc.board_sensors b/boards/omnibus/f4sd/init/rc.board_sensors index 2fa62a88ff..18ea496e69 100644 --- a/boards/omnibus/f4sd/init/rc.board_sensors +++ b/boards/omnibus/f4sd/init/rc.board_sensors @@ -8,7 +8,11 @@ board_adc start if ! mpu6000 -R 6 -s start then # some boards such as the Hobbywing XRotor F4 G2 use the ICM-20602 - icm20602 -s -R 6 start + if ! icm20602 -s -R 6 start + then + # some clones of Omnibus F4 use the ICM-20608G (such as F4 PDB for Martian II FPV Drone) + icm20608g -s -R 6 start + fi fi bmp280 -s start diff --git a/boards/omnibus/f4sd/src/spi.cpp b/boards/omnibus/f4sd/src/spi.cpp index 86794466f6..b3415ba8d3 100644 --- a/boards/omnibus/f4sd/src/spi.cpp +++ b/boards/omnibus/f4sd/src/spi.cpp @@ -39,6 +39,7 @@ constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_MPU6000, SPI::CS{GPIO::PortA, GPIO::Pin4}), initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortA, GPIO::Pin4}), + initSPIDevice(DRV_IMU_DEVTYPE_ICM20608G, SPI::CS{GPIO::PortA, GPIO::Pin4}), }), initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_MMCSD(0), SPI::CS{GPIO::PortB, GPIO::Pin12})