Skip to content

Commit 7106993

Browse files
Merge pull request #2699 from iNavFlight/de_compass_fixes
Better compass handling for all targets
2 parents fd40892 + 67b924d commit 7106993

File tree

82 files changed

+214
-87
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+214
-87
lines changed

src/main/sensors/compass.c

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,24 @@ bool compassDetect(magDev_t *dev, magSensor_e magHardwareToUse)
8989

9090
switch (magHardwareToUse) {
9191
case MAG_AUTODETECT:
92+
FALLTHROUGH;
93+
94+
case MAG_QMC5883:
95+
#ifdef USE_MAG_QMC5883
96+
if (qmc5883Detect(dev)) {
97+
#ifdef MAG_QMC5883L_ALIGN
98+
dev->magAlign = MAG_QMC5883L_ALIGN;
99+
#endif
100+
magHardware = MAG_QMC5883;
101+
break;
102+
}
103+
#endif
104+
/* If we are asked for a specific sensor - break out, otherwise - fall through and continue */
105+
if (magHardwareToUse != MAG_AUTODETECT) {
106+
break;
107+
}
108+
FALLTHROUGH;
109+
92110
case MAG_HMC5883:
93111
#ifdef USE_MAG_HMC5883
94112
if (hmc5883lDetect(dev)) {
@@ -185,22 +203,6 @@ bool compassDetect(magDev_t *dev, magSensor_e magHardwareToUse)
185203
}
186204
FALLTHROUGH;
187205

188-
case MAG_QMC5883:
189-
#ifdef USE_MAG_QMC5883
190-
if (qmc5883Detect(dev)) {
191-
#ifdef MAG_QMC5883L_ALIGN
192-
dev->magAlign = MAG_QMC5883L_ALIGN;
193-
#endif
194-
magHardware = MAG_QMC5883;
195-
break;
196-
}
197-
#endif
198-
/* If we are asked for a specific sensor - break out, otherwise - fall through and continue */
199-
if (magHardwareToUse != MAG_AUTODETECT) {
200-
break;
201-
}
202-
FALLTHROUGH;
203-
204206
case MAG_MPU9250:
205207
#ifdef USE_MAG_MPU9250
206208
if (mpu9250CompassDetect(dev)) {

src/main/target/AIRHEROF3/target.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,9 @@
109109
#define USE_MAG
110110
#define MAG_I2C_BUS BUS_I2C1
111111
#define USE_MAG_HMC5883
112-
#define USE_MAG_QMC5883
113112
#define USE_MAG_MAG3110
113+
#define USE_MAG_QMC5883
114+
#define USE_MAG_IST8310
114115

115116
#define MAX_PWM_OUTPUT_PORTS 8
116117
#define TARGET_MOTOR_COUNT 4

src/main/target/AIRHEROF3/target.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ TARGET_SRC = \
88
drivers/compass/compass_hmc5883l.c \
99
drivers/compass/compass_mag3110.c \
1010
drivers/compass/compass_qmc5883l.c \
11+
drivers/compass/compass_ist8310.c \
1112
drivers/rangefinder/rangefinder_hcsr04.c \
1213
drivers/light_ws2811strip.c \
1314
drivers/light_ws2811strip_stdperiph.c \

src/main/target/ALIENFLIGHTF3/target.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@
7171
#define USE_MAG_MPU9250
7272
#define MAG_MPU9250_ALIGN CW180_DEG_FLIP
7373
#define USE_MAG_HMC5883
74+
#define USE_MAG_MAG3110
7475
#define USE_MAG_QMC5883
76+
#define USE_MAG_IST8310
7577

7678
#define USE_VCP
7779
#define USE_UART1 // Not connected - TX (PB6) RX PB7 (AF7)

src/main/target/ALIENFLIGHTF3/target.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ TARGET_SRC = \
1414
drivers/compass/compass_mpu9250.c \
1515
drivers/compass/compass_hmc5883l.c \
1616
drivers/compass/compass_qmc5883l.c \
17+
drivers/compass/compass_ist8310.c \
1718
drivers/compass/compass_mag3110.c
1819

src/main/target/ALIENFLIGHTF4/target.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,11 @@
6060

6161
#define USE_MAG
6262
#define MAG_I2C_BUS BUS_I2C1
63-
#define USE_MAG_HMC5883
6463
#define USE_MAG_MPU9250
64+
#define USE_MAG_HMC5883
65+
#define USE_MAG_MAG3110
6566
#define USE_MAG_QMC5883
67+
#define USE_MAG_IST8310
6668

6769
#define MAG_MPU9250_ALIGN CW180_DEG_FLIP
6870

src/main/target/ALIENFLIGHTF4/target.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ TARGET_SRC = \
88
drivers/barometer/barometer_ms56xx.c \
99
drivers/compass/compass_hmc5883l.c \
1010
drivers/compass/compass_qmc5883l.c \
11+
drivers/compass/compass_ist8310.c \
12+
drivers/compass/compass_mag3110.c \
1113
drivers/compass/compass_mpu9250.c \
1214
drivers/light_ws2811strip.c \
1315
drivers/light_ws2811strip_stdperiph.c

src/main/target/ALIENFLIGHTNGF7/target.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,9 @@
6060
#define USE_MAG_AK8963
6161
#define USE_MAG_MPU9250
6262
#define USE_MAG_HMC5883
63+
#define USE_MAG_MAG3110
6364
#define USE_MAG_QMC5883
65+
#define USE_MAG_IST8310
6466

6567
#define MAG_AK9863_ALIGN CW180_DEG_FLIP
6668
#define MAG_MPU9250_ALIGN CW180_DEG_FLIP

src/main/target/ALIENFLIGHTNGF7/target.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,7 @@ TARGET_SRC = \
1010
drivers/compass/compass_mpu9250.c \
1111
drivers/compass/compass_hmc5883l.c \
1212
drivers/compass/compass_qmc5883l.c \
13+
drivers/compass/compass_mag3110.c \
14+
drivers/compass/compass_ist8310.c \
1315
drivers/light_ws2811strip.c \
1416
drivers/light_ws2811strip_hal.c

src/main/target/ANYFC/target.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,10 @@
4949
#define USE_MAG
5050
#define MAG_I2C_BUS BUS_I2C2
5151
#define USE_MAG_HMC5883
52+
#define USE_MAG_MAG3110
5253
#define USE_MAG_QMC5883
54+
#define USE_MAG_IST8310
5355
#define MAG_HMC5883_ALIGN CW270_DEG_FLIP
54-
//#define MAG_HMC5883_ALIGN CW90_DEG
5556

5657
#define USE_RANGEFINDER
5758
#define USE_RANGEFINDER_VL53L0X

0 commit comments

Comments
 (0)