-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Add target OMNIBUSF4V3_ICM to OMNIBUSF4 and mark as SKIP_RELEASES #11192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add target OMNIBUSF4V3_ICM to OMNIBUSF4 and mark as SKIP_RELEASES #11192
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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