From 687314b046e75b9225053fb36942045c1fb33184 Mon Sep 17 00:00:00 2001 From: Wayne <118108543+wchnflr@users.noreply.github.com> Date: Mon, 15 Dec 2025 12:17:31 -0500 Subject: [PATCH 1/5] Update CMakeLists.txt Add new target with support for ICM42605/ICM42688 gyro --- src/main/target/OMNIBUSF4/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/target/OMNIBUSF4/CMakeLists.txt b/src/main/target/OMNIBUSF4/CMakeLists.txt index a6ccb483bf5..5a56e8abc93 100644 --- a/src/main/target/OMNIBUSF4/CMakeLists.txt +++ b/src/main/target/OMNIBUSF4/CMakeLists.txt @@ -9,3 +9,4 @@ target_stm32f405xg(OMNIBUSF4V3_S6_SS) # OMNIBUSF4V3 is a (almost identical) variant of OMNIBUSF4PRO target, # except for an inverter on UART6. target_stm32f405xg(OMNIBUSF4V3) +target_stm32f405xg(OMNIBUSF4V3_ICM) From 296277f6d89097c1fb73fa9b951809c01a281449 Mon Sep 17 00:00:00 2001 From: Wayne <118108543+wchnflr@users.noreply.github.com> Date: Mon, 15 Dec 2025 12:26:59 -0500 Subject: [PATCH 2/5] Update CMakeLists.txt Mark as SKIP_RELEASES. --- src/main/target/OMNIBUSF4/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/target/OMNIBUSF4/CMakeLists.txt b/src/main/target/OMNIBUSF4/CMakeLists.txt index 5a56e8abc93..0e2bf2002c0 100644 --- a/src/main/target/OMNIBUSF4/CMakeLists.txt +++ b/src/main/target/OMNIBUSF4/CMakeLists.txt @@ -9,4 +9,4 @@ target_stm32f405xg(OMNIBUSF4V3_S6_SS) # OMNIBUSF4V3 is a (almost identical) variant of OMNIBUSF4PRO target, # except for an inverter on UART6. target_stm32f405xg(OMNIBUSF4V3) -target_stm32f405xg(OMNIBUSF4V3_ICM) +target_stm32f405xg(OMNIBUSF4V3_ICM SKIP_RELEASES) From 938a63cbb9a9f5b05aa4762bbec258d97d636053 Mon Sep 17 00:00:00 2001 From: Wayne <118108543+wchnflr@users.noreply.github.com> Date: Mon, 15 Dec 2025 12:40:22 -0500 Subject: [PATCH 3/5] Update target.h Add new target OMNIBUSF4V3_ICM with board ID OB4I to support ICM42605/ICM42688 gyro. --- src/main/target/OMNIBUSF4/target.h | 31 +++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/src/main/target/OMNIBUSF4/target.h b/src/main/target/OMNIBUSF4/target.h index 2c5a27afbb6..eb6cafe4dfa 100644 --- a/src/main/target/OMNIBUSF4/target.h +++ b/src/main/target/OMNIBUSF4/target.h @@ -30,6 +30,8 @@ #define TARGET_BOARD_IDENTIFIER "OBSD" #elif defined(OMNIBUSF4V3) #define TARGET_BOARD_IDENTIFIER "OB43" +#elif defined(OMNIBUSF4V3_ICM) +#define TARGET_BOARD_IDENTIFIER "OB4I" #elif defined(DYSF4PRO) #define TARGET_BOARD_IDENTIFIER "DYS4" #elif defined(DYSF4PROV2) @@ -67,7 +69,14 @@ #define MPU6000_CS_PIN PA4 #define MPU6000_SPI_BUS BUS_SPI1 -#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) +#if defined(OMNIBUSF4V3_ICM) + #define USE_IMU_ICM42605 + #define IMU_ICM42605_ALIGN CW180_DEG + #define ICM42605_CS_PIN PA4 + #define ICM42605_SPI_BUS BUS_SPI1 +#endif + +#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM) #define USE_IMU_MPU6000 #define IMU_MPU6000_ALIGN CW270_DEG #else @@ -75,8 +84,8 @@ #define IMU_MPU6000_ALIGN CW180_DEG #endif -// Support for OMNIBUS F4 PRO CORNER - it has ICM20608 instead of MPU6000 -#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) +// Support for OMNIBUS F4 PRO CORNER - it has MPU6500 instead of MPU6000 +#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM) #define MPU6500_CS_PIN MPU6000_CS_PIN #define MPU6500_SPI_BUS MPU6000_SPI_BUS #define USE_IMU_MPU6500 @@ -97,7 +106,7 @@ #define USE_BARO -#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) +#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM) #define USE_BARO_BMP280 #define BMP280_SPI_BUS BUS_SPI3 #define BMP280_CS_PIN PB3 // v1 @@ -121,7 +130,7 @@ #define VBUS_SENSING_PIN PC5 #define VBUS_SENSING_ENABLED -#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) +#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM) #define USE_UART_INVERTER #endif @@ -140,12 +149,12 @@ #define USE_UART6 #define UART6_RX_PIN PC7 #define UART6_TX_PIN PC6 -#if defined(OMNIBUSF4V3) +#if defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM) #define INVERTER_PIN_UART6_RX PC8 #define INVERTER_PIN_UART6_TX PC9 #endif -#if defined(OMNIBUSF4V3) && !(defined(OMNIBUSF4V3_S6_SS) || defined(OMNIBUSF4V3_S5S6_SS) || defined(OMNIBUSF4V3_S5_S6_2SS)) +#if (defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM)) && !(defined(OMNIBUSF4V3_S6_SS) || defined(OMNIBUSF4V3_S5S6_SS) || defined(OMNIBUSF4V3_S5_S6_2SS)) #define USE_SOFTSERIAL1 #define SOFTSERIAL_1_RX_PIN PC6 // shared with UART6 TX #define SOFTSERIAL_1_TX_PIN PC6 // shared with UART6 TX @@ -193,7 +202,7 @@ #define USE_SPI_DEVICE_1 -#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) +#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM) #define USE_SPI_DEVICE_2 #define SPI2_NSS_PIN PB12 #define SPI2_SCK_PIN PB13 @@ -202,7 +211,7 @@ #endif #define USE_SPI_DEVICE_3 -#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) +#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM) #define SPI3_NSS_PIN PA15 #else #define SPI3_NSS_PIN PB3 @@ -215,7 +224,7 @@ #define MAX7456_SPI_BUS BUS_SPI3 #define MAX7456_CS_PIN PA15 -#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) +#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM) #define ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT #define USE_SDCARD #define USE_SDCARD_SPI @@ -250,7 +259,7 @@ #define SENSORS_SET (SENSOR_ACC|SENSOR_MAG|SENSOR_BARO) #define USE_LED_STRIP -#if (defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3)) && !defined(OMNIBUSF4PRO_LEDSTRIPM5) +#if (defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM)) || defined(OMNIBUSF4V3_ICM) && !defined(OMNIBUSF4PRO_LEDSTRIPM5) #define WS2811_PIN PB6 #else #define WS2811_PIN PA1 From 66efa02bb8c497a10dc3014fdade244a90b619c2 Mon Sep 17 00:00:00 2001 From: Wayne <118108543+wchnflr@users.noreply.github.com> Date: Mon, 15 Dec 2025 12:54:21 -0500 Subject: [PATCH 4/5] Edit text on line 87. --- src/main/target/OMNIBUSF4/target.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/target/OMNIBUSF4/target.h b/src/main/target/OMNIBUSF4/target.h index eb6cafe4dfa..51d70f2309b 100644 --- a/src/main/target/OMNIBUSF4/target.h +++ b/src/main/target/OMNIBUSF4/target.h @@ -84,7 +84,7 @@ #define IMU_MPU6000_ALIGN CW180_DEG #endif -// Support for OMNIBUS F4 PRO CORNER - it has MPU6500 instead of MPU6000 +// Support for OMNIBUS F4 PRO CORNER - it has MPU6500/ICM20608 instead of MPU6000 #if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM) #define MPU6500_CS_PIN MPU6000_CS_PIN #define MPU6500_SPI_BUS MPU6000_SPI_BUS From c54d150f4e4bae1f49a657c5d0e58d52ff6c71ea Mon Sep 17 00:00:00 2001 From: Wayne <118108543+wchnflr@users.noreply.github.com> Date: Mon, 15 Dec 2025 12:59:00 -0500 Subject: [PATCH 5/5] Fix typo on Line 262 --- src/main/target/OMNIBUSF4/target.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/target/OMNIBUSF4/target.h b/src/main/target/OMNIBUSF4/target.h index 51d70f2309b..fcd89fb0e46 100644 --- a/src/main/target/OMNIBUSF4/target.h +++ b/src/main/target/OMNIBUSF4/target.h @@ -259,7 +259,7 @@ #define SENSORS_SET (SENSOR_ACC|SENSOR_MAG|SENSOR_BARO) #define USE_LED_STRIP -#if (defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM)) || defined(OMNIBUSF4V3_ICM) && !defined(OMNIBUSF4PRO_LEDSTRIPM5) +#if (defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM)) && !defined(OMNIBUSF4PRO_LEDSTRIPM5) #define WS2811_PIN PB6 #else #define WS2811_PIN PA1