Add target OMNIBUSF4V3_ICM to OMNIBUSF4 and mark as SKIP_RELEASES#11192
Add target OMNIBUSF4V3_ICM to OMNIBUSF4 and mark as SKIP_RELEASES#11192sensei-hacker merged 5 commits intoiNavFlight:maintenance-9.xfrom
Conversation
Add new target with support for ICM42605/ICM42688 gyro
Mark as SKIP_RELEASES.
Add new target OMNIBUSF4V3_ICM with board ID OB4I to support ICM42605/ICM42688 gyro.
Branch Targeting SuggestionYou've targeted the
If This is an automated suggestion to help route contributions to the appropriate branch. |
PR Compliance Guide 🔍All compliance sections have been disabled in the configurations. |
|
I have confirmed these changes don't interfere with the other targets that are intertwined. However, having nine different targets tangled together makes maintenance difficult. |
|
You are nearing your monthly Qodo Merge usage quota. For more information, please visit here. PR Compliance Guide 🔍All compliance sections have been disabled in the configurations. |
| #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 | ||
| #define USE_IMU_MPU6000 | ||
| #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/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 | ||
| #define USE_IMU_MPU6500 |
There was a problem hiding this comment.
Suggestion: To resolve a hardware conflict, remove the OMNIBUSF4V3_ICM target from the preprocessor conditions for the MPU6000, MPU6500, and BMI270 IMUs, as it should only use the ICM42605 IMU. [possible issue, importance: 9]
New proposed code:
#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)
+#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3)
#define USE_IMU_MPU6000
#define IMU_MPU6000_ALIGN CW270_DEG
#else
...
#endif
// Support for OMNIBUS F4 PRO CORNER - it has MPU6500/ICM20608 instead of MPU6000
-#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3) || defined(OMNIBUSF4V3_ICM)
+#if defined(OMNIBUSF4PRO) || defined(OMNIBUSF4V3)
#define MPU6500_CS_PIN MPU6000_CS_PIN
#define MPU6500_SPI_BUS MPU6000_SPI_BUS
#define USE_IMU_MPU6500
#define IMU_MPU6500_ALIGN IMU_MPU6000_ALIGN
//BMI270
#define USE_IMU_BMI270
#define IMU_BMI270_ALIGN IMU_MPU6000_ALIGN
#define BMI270_SPI_BUS MPU6000_SPI_BUS
#define BMI270_CS_PIN MPU6000_CS_PIN
#endif
User description
There is an ongoing need for a new OMNIBUSF4V3 target with ICM42605/ICM42688 gyro per:
https://www.reddit.com/r/fpv/comments/1fx8zvp/comment/ntxlvic/
This latest FC version is attractively priced for fixed wing applications.
This PR adds OMNIBUSF4V3_ICM as a variant of the OMNIBUSF4V3 target by only adding ICM42605 support and nothing else. A custom build as uploaded to Issue #11181 was successfully verified on target hardware. User reported improved performance compared to original OMNIBUSF4V3 target:
After changing gyro alignment from CW0_DEG to CW180_DEG:
User also shared video capture from Inav Configurator.
Since the INAV devs do not appear to have official hardware to test, this target is being marked as SKIP_RELEASES.
OMNIBUSF4V3_ICM_INAV8_480p.mp4
PR Type
New Target
Description
Add OMNIBUSF4V3_ICM target variant with ICM42605/ICM42688 gyro support
Configure ICM42605 with CW180_DEG alignment and SPI1 bus
Mark new target as SKIP_RELEASES due to lack of official hardware
Update conditional compilation directives to include new target variant
Diagram Walkthrough
File Walkthrough
target.h
Configure ICM42605 gyro and target conditionalssrc/main/target/OMNIBUSF4/target.h
OMNIBUSF4V3_ICM variant
CMakeLists.txt
Add OMNIBUSF4V3_ICM target build configurationsrc/main/target/OMNIBUSF4/CMakeLists.txt