diff --git a/docs/Gps.md b/docs/Gps.md index 01f170e3ae..6626ee8738 100644 --- a/docs/Gps.md +++ b/docs/Gps.md @@ -153,6 +153,7 @@ Module | Comments -------|-------- U-blox Neo-M8N w/Compass | Pinout can be found in Pixfalcon manual. SDA and SCL can be attached to I2C bus for compass, TX and RX can be attached to UART for GPS. Power must be applied for either to function. Reyax RY825AI | NEO-M8N, 18Hz UART USB interface GPS Glonass BeiDou QZSS antenna module flash. [eBay](http://www.ebay.com/itm/RY825AI-18Hz-UART-USB-interface-GPS-Glonass-BeiDou-QZSS-antenna-module-flash/181566850426) +mRo uGPS w/ LIS3MDL | Ultra compact and weights just 7.7 grams. Multiple constellation capabilities (GPS and GLONASS). Includes JST-GH pigtail. Available from [mRobotics](https://store.mrobotics.io/product-p/mro-ugps-samm8q-01.htm). #### NEO-7 Module | Comments diff --git a/make/source.mk b/make/source.mk index 5267ee77aa..38fbc76dcd 100644 --- a/make/source.mk +++ b/make/source.mk @@ -255,6 +255,7 @@ SIZE_OPTIMISED_SRC := $(SIZE_OPTIMISED_SRC) \ drivers/compass/compass_fake.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/display_ug2864hsweg01.c \ drivers/inverter.c \ drivers/light_ws2811strip.c \ diff --git a/src/main/drivers/compass/compass_lis3mdl.c b/src/main/drivers/compass/compass_lis3mdl.c new file mode 100644 index 0000000000..b1e00ea0cf --- /dev/null +++ b/src/main/drivers/compass/compass_lis3mdl.c @@ -0,0 +1,159 @@ +/* + * This file is part of Cleanflight and Betaflight. + * + * Cleanflight and Betaflight are free software. You can redistribute + * this software and/or modify this software under the terms of the + * GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) + * any later version. + * + * Cleanflight and Betaflight are distributed in the hope that they + * will be useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software. + * + * If not, see . + */ + +#include +#include + +#include + +#include "platform.h" + +#if defined(USE_MAG_LIS3MDL) + +#include "compass.h" +#include "drivers/time.h" +#include "common/axis.h" + +#define LIS3MDL_MAG_I2C_ADDRESS 0x1E +#define LIS3MDL_DEVICE_ID 0x3D + +#define LIS3MDL_REG_WHO_AM_I 0x0F + +#define LIS3MDL_REG_CTRL_REG1 0x20 +#define LIS3MDL_REG_CTRL_REG2 0x21 +#define LIS3MDL_REG_CTRL_REG3 0x22 +#define LIS3MDL_REG_CTRL_REG4 0x23 +#define LIS3MDL_REG_CTRL_REG5 0x24 + +#define LIS3MDL_REG_STATUS_REG 0x27 + +#define LIS3MDL_REG_OUT_X_L 0x28 +#define LIS3MDL_REG_OUT_X_H 0x29 +#define LIS3MDL_REG_OUT_Y_L 0x2A +#define LIS3MDL_REG_OUT_Y_H 0x2B +#define LIS3MDL_REG_OUT_Z_L 0x2C +#define LIS3MDL_REG_OUT_Z_H 0x2D + +#define LIS3MDL_TEMP_OUT_L 0x2E +#define LIS3MDL_TEMP_OUT_H 0x2F + +#define LIS3MDL_INT_CFG 0x30 +#define LIS3MDL_INT_SRC 0x31 +#define LIS3MDL_THS_L 0x32 +#define LIS3MDL_THS_H 0x33 + +// CTRL_REG1 +#define LIS3MDL_TEMP_EN 0x80 // Default 0 +#define LIS3MDL_OM_LOW_POWER 0x00 // Default +#define LIS3MDL_OM_MED_PROF 0x20 +#define LIS3MDL_OM_HI_PROF 0x40 +#define LIS3MDL_OM_ULTRA_HI_PROF 0x60 +#define LIS3MDL_DO_0_625 0x00 +#define LIS3MDL_DO_1_25 0x04 +#define LIS3MDL_DO_2_5 0x08 +#define LIS3MDL_DO_5 0x0C +#define LIS3MDL_DO_10 0x10 // Default +#define LIS3MDL_DO_20 0x14 +#define LIS3MDL_DO_40 0x18 +#define LIS3MDL_DO_80 0x1C +#define LIS3MDL_FAST_ODR 0x02 + +// CTRL_REG2 +#define LIS3MDL_FS_4GAUSS 0x00 // Default +#define LIS3MDL_FS_8GAUSS 0x20 +#define LIS3MDL_FS_12GAUSS 0x40 +#define LIS3MDL_FS_16GAUSS 0x60 +#define LIS3MDL_REBOOT 0x08 +#define LIS3MDL_SOFT_RST 0x04 + +// CTRL_REG3 +#define LIS3MDL_LP 0x20 // Default 0 +#define LIS3MDL_SIM 0x04 // Default 0 +#define LIS3MDL_MD_CONTINUOUS 0x00 // Default +#define LIS3MDL_MD_SINGLE 0x01 +#define LIS3MDL_MD_POWERDOWN 0x03 + +// CTRL_REG4 +#define LIS3MDL_ZOM_LP 0x00 // Default +#define LIS3MDL_ZOM_MP 0x04 +#define LIS3MDL_ZOM_HP 0x08 +#define LIS3MDL_ZOM_UHP 0x0C +#define LIS3MDL_BLE 0x02 // Default 0 + +// CTRL_REG5 +#define LIS3MDL_FAST_READ 0x80 // Default 0 +#define LIS3MDL_BDU 0x40 // Default 0 + +static bool lis3mdlRead(magDev_t * mag, int16_t *magData) +{ + uint8_t buf[6]; + + busDevice_t *busdev = &mag->busdev; + + bool ack = busReadRegisterBuffer(busdev, LIS3MDL_REG_OUT_X_L, buf, 6); + + if (!ack) { + return false; + } + + magData[X] = (int16_t)(buf[1] << 8 | buf[0]) / 4; + magData[Y] = (int16_t)(buf[3] << 8 | buf[2]) / 4; + magData[Z] = (int16_t)(buf[5] << 8 | buf[4]) / 4; + + return true; +} + +static bool lis3mdlInit(magDev_t *mag) +{ + busDevice_t *busdev = &mag->busdev; + + busWriteRegister(busdev, LIS3MDL_REG_CTRL_REG2, LIS3MDL_FS_4GAUSS); + busWriteRegister(busdev, LIS3MDL_REG_CTRL_REG1, LIS3MDL_TEMP_EN | LIS3MDL_OM_ULTRA_HI_PROF | LIS3MDL_DO_80); + busWriteRegister(busdev, LIS3MDL_REG_CTRL_REG5, LIS3MDL_BDU); + busWriteRegister(busdev, LIS3MDL_REG_CTRL_REG4, LIS3MDL_ZOM_UHP); + busWriteRegister(busdev, LIS3MDL_REG_CTRL_REG3, 0x00); + + delay(100); + + return true; +} + +bool lis3mdlDetect(magDev_t * mag) +{ + busDevice_t *busdev = &mag->busdev; + + uint8_t sig = 0; + + if (busdev->bustype == BUSTYPE_I2C && busdev->busdev_u.i2c.address == 0) { + busdev->busdev_u.i2c.address = LIS3MDL_MAG_I2C_ADDRESS; + } + + bool ack = busReadRegisterBuffer(&mag->busdev, LIS3MDL_REG_WHO_AM_I, &sig, 1); + + if (!ack || sig != LIS3MDL_DEVICE_ID) { + return false; + } + + mag->init = lis3mdlInit; + mag->read = lis3mdlRead; + + return true; +} +#endif diff --git a/src/main/drivers/compass/compass_lis3mdl.h b/src/main/drivers/compass/compass_lis3mdl.h new file mode 100644 index 0000000000..52a0928bd9 --- /dev/null +++ b/src/main/drivers/compass/compass_lis3mdl.h @@ -0,0 +1,25 @@ +/* + * This file is part of Cleanflight and Betaflight. + * + * Cleanflight and Betaflight are free software. You can redistribute + * this software and/or modify this software under the terms of the + * GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) + * any later version. + * + * Cleanflight and Betaflight are distributed in the hope that they + * will be useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software. + * + * If not, see . + */ + +#pragma once + +#include "drivers/io_types.h" + +bool lis3mdlDetect(magDev_t* mag); diff --git a/src/main/interface/settings.c b/src/main/interface/settings.c index 433b6c01ac..f50b831724 100644 --- a/src/main/interface/settings.c +++ b/src/main/interface/settings.c @@ -126,7 +126,7 @@ const char * const lookupTableBaroHardware[] = { #if defined(USE_SENSOR_NAMES) || defined(USE_MAG) // sync with magSensor_e const char * const lookupTableMagHardware[] = { - "AUTO", "NONE", "HMC5883", "AK8975", "AK8963", "QMC5883" + "AUTO", "NONE", "HMC5883", "AK8975", "AK8963", "QMC5883", "LIS3MDL" }; #endif #if defined(USE_SENSOR_NAMES) || defined(USE_RANGEFINDER) diff --git a/src/main/sensors/compass.c b/src/main/sensors/compass.c index 2aaa4ff8af..e52ae497fe 100644 --- a/src/main/sensors/compass.c +++ b/src/main/sensors/compass.c @@ -38,6 +38,7 @@ #include "drivers/compass/compass_fake.h" #include "drivers/compass/compass_hmc5883l.h" #include "drivers/compass/compass_qmc5883l.h" +#include "drivers/compass/compass_lis3mdl.h" #include "drivers/io.h" #include "drivers/light_led.h" @@ -183,6 +184,22 @@ bool compassDetect(magDev_t *dev) #endif FALLTHROUGH; + case MAG_LIS3MDL: +#if defined(USE_MAG_LIS3MDL) + if (busdev->bustype == BUSTYPE_I2C) { + busdev->busdev_u.i2c.address = compassConfig()->mag_i2c_address; + } + + if (lis3mdlDetect(dev)) { +#ifdef MAG_LIS3MDL_ALIGN + dev->magAlign = MAG_LIS3MDL_ALIGN; +#endif + magHardware = MAG_LIS3MDL; + break; + } +#endif + FALLTHROUGH; + case MAG_QMC5883: #ifdef USE_MAG_QMC5883 if (busdev->bustype == BUSTYPE_I2C) { diff --git a/src/main/sensors/compass.h b/src/main/sensors/compass.h index 27946211d4..cd8480dc1b 100644 --- a/src/main/sensors/compass.h +++ b/src/main/sensors/compass.h @@ -34,7 +34,8 @@ typedef enum { MAG_HMC5883 = 2, MAG_AK8975 = 3, MAG_AK8963 = 4, - MAG_QMC5883 = 5 + MAG_QMC5883 = 5, + MAG_LIS3MDL = 6 } magSensor_e; typedef struct mag_s { diff --git a/src/main/target/AG3X/target.h b/src/main/target/AG3X/target.h index cf0c06e1a2..91b219d7de 100644 --- a/src/main/target/AG3X/target.h +++ b/src/main/target/AG3X/target.h @@ -67,6 +67,7 @@ #define USE_MAG #define USE_MAG_HMC5883 +#define USE_MAG_LIS3MDL #define USE_BARO #define USE_BARO_SPI_BMP280 diff --git a/src/main/target/AG3X/target.mk b/src/main/target/AG3X/target.mk index 7fd871549e..21aa1e7db4 100644 --- a/src/main/target/AG3X/target.mk +++ b/src/main/target/AG3X/target.mk @@ -17,4 +17,5 @@ TARGET_SRC = \ drivers/barometer/barometer_bmp280.c \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c diff --git a/src/main/target/ALIENFLIGHTF4/target.h b/src/main/target/ALIENFLIGHTF4/target.h index 00c9d937de..4418fd3a4e 100644 --- a/src/main/target/ALIENFLIGHTF4/target.h +++ b/src/main/target/ALIENFLIGHTF4/target.h @@ -59,6 +59,7 @@ #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 #define USE_MAG_AK8963 +#define USE_MAG_LIS3MDL #define MAG_AK8963_ALIGN CW180_DEG_FLIP diff --git a/src/main/target/ALIENFLIGHTF4/target.mk b/src/main/target/ALIENFLIGHTF4/target.mk index e733398ee9..e7acd65ab9 100644 --- a/src/main/target/ALIENFLIGHTF4/target.mk +++ b/src/main/target/ALIENFLIGHTF4/target.mk @@ -8,5 +8,6 @@ TARGET_SRC = \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_ak8963.c \ drivers/compass/compass_hmc5883l.c \ - drivers/compass/compass_qmc5883l.c + drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c diff --git a/src/main/target/ALIENFLIGHTNGF7/target.h b/src/main/target/ALIENFLIGHTNGF7/target.h index 82b7349dbf..736ddd42a8 100644 --- a/src/main/target/ALIENFLIGHTNGF7/target.h +++ b/src/main/target/ALIENFLIGHTNGF7/target.h @@ -59,6 +59,7 @@ #define USE_MAG_QMC5883 #define USE_MAG_AK8963 #define USE_MAG_SPI_AK8963 +#define USE_MAG_LIS3MDL #define HMC5883_CS_PIN PC15 #define HMC5883_SPI_INSTANCE SPI3 diff --git a/src/main/target/ALIENFLIGHTNGF7/target.mk b/src/main/target/ALIENFLIGHTNGF7/target.mk index 2d9d8709bd..2b63a22591 100644 --- a/src/main/target/ALIENFLIGHTNGF7/target.mk +++ b/src/main/target/ALIENFLIGHTNGF7/target.mk @@ -9,4 +9,5 @@ TARGET_SRC = \ drivers/compass/compass_ak8963.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c diff --git a/src/main/target/ALIENWHOOP/target.h b/src/main/target/ALIENWHOOP/target.h index e30b085592..6087eb4f4f 100644 --- a/src/main/target/ALIENWHOOP/target.h +++ b/src/main/target/ALIENWHOOP/target.h @@ -131,6 +131,7 @@ // MAG #define USE_MAG #define USE_MAG_AK8963 +#define USE_MAG_LIS3MDL #define MAG_AK8963_ALIGN CW0_DEG #define USE_MAG_DATA_READY_SIGNAL #define ENSURE_MAG_DATA_READY_IS_HIGH diff --git a/src/main/target/ALIENWHOOP/target.mk b/src/main/target/ALIENWHOOP/target.mk index 4d72357939..f23a6d92bf 100644 --- a/src/main/target/ALIENWHOOP/target.mk +++ b/src/main/target/ALIENWHOOP/target.mk @@ -22,6 +22,7 @@ TARGET_SRC = \ drivers/accgyro/accgyro_spi_mpu6500.c \ drivers/barometer/barometer_bmp280.c \ drivers/compass/compass_ak8963.c \ + drivers/compass/compass_lis3mdl.c \ drivers/flash_m25p16.c \ drivers/max7456.c \ io/osd.c diff --git a/src/main/target/BETAFLIGHTF4/target.h b/src/main/target/BETAFLIGHTF4/target.h index 0d2be3064a..89e4acec8d 100644 --- a/src/main/target/BETAFLIGHTF4/target.h +++ b/src/main/target/BETAFLIGHTF4/target.h @@ -58,6 +58,7 @@ #define USE_MAG #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL #define USE_MAX7456 #define MAX7456_SPI_INSTANCE SPI2 diff --git a/src/main/target/BETAFLIGHTF4/target.mk b/src/main/target/BETAFLIGHTF4/target.mk index ca33021603..c44fb08acb 100644 --- a/src/main/target/BETAFLIGHTF4/target.mk +++ b/src/main/target/BETAFLIGHTF4/target.mk @@ -9,4 +9,5 @@ TARGET_SRC = \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c diff --git a/src/main/target/BLUEJAYF4/target.h b/src/main/target/BLUEJAYF4/target.h index 68302a82d3..dc84eacce7 100644 --- a/src/main/target/BLUEJAYF4/target.h +++ b/src/main/target/BLUEJAYF4/target.h @@ -67,6 +67,7 @@ #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 //#define USE_MAG_AK8963 +#define USE_MAG_LIS3MDL #define HMC5883_I2C_INSTANCE I2CDEV_1 #define USE_BARO diff --git a/src/main/target/BLUEJAYF4/target.mk b/src/main/target/BLUEJAYF4/target.mk index 6b7d592ae2..9607e3fcf9 100644 --- a/src/main/target/BLUEJAYF4/target.mk +++ b/src/main/target/BLUEJAYF4/target.mk @@ -6,5 +6,5 @@ TARGET_SRC = \ drivers/accgyro/accgyro_mpu6500.c \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ - drivers/compass/compass_qmc5883l.c - + drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c diff --git a/src/main/target/DALRCF405/target.h b/src/main/target/DALRCF405/target.h index 7d9eda6d6b..32ab990a4b 100644 --- a/src/main/target/DALRCF405/target.h +++ b/src/main/target/DALRCF405/target.h @@ -76,6 +76,7 @@ #define USE_MAG_AK8975 #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL //ON BOARD FLASH ----------------------------------- #define USE_SPI_DEVICE_2 diff --git a/src/main/target/DALRCF405/target.mk b/src/main/target/DALRCF405/target.mk index 0018c55e87..34b772ffc3 100644 --- a/src/main/target/DALRCF405/target.mk +++ b/src/main/target/DALRCF405/target.mk @@ -9,4 +9,5 @@ TARGET_SRC = \ drivers/compass/compass_ak8975.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c diff --git a/src/main/target/DALRCF722DUAL/target.h b/src/main/target/DALRCF722DUAL/target.h index da74cc38fc..9586a206a6 100644 --- a/src/main/target/DALRCF722DUAL/target.h +++ b/src/main/target/DALRCF722DUAL/target.h @@ -70,6 +70,7 @@ #define USE_MAG #define USE_MAG_HMC5883 +#define USE_MAG_LIS3MDL #define USE_VCP #define USE_UART1 diff --git a/src/main/target/DALRCF722DUAL/target.mk b/src/main/target/DALRCF722DUAL/target.mk index 8ce766dc8d..6603b9ea3e 100644 --- a/src/main/target/DALRCF722DUAL/target.mk +++ b/src/main/target/DALRCF722DUAL/target.mk @@ -8,6 +8,7 @@ TARGET_SRC = \ drivers/barometer/barometer_bmp280.c \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c diff --git a/src/main/target/F4BY/target.h b/src/main/target/F4BY/target.h index dac1fee446..1ea9f2567b 100644 --- a/src/main/target/F4BY/target.h +++ b/src/main/target/F4BY/target.h @@ -54,6 +54,7 @@ #define USE_MAG #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL #define MAG_HMC5883_ALIGN CW90_DEG #define USE_BARO diff --git a/src/main/target/F4BY/target.mk b/src/main/target/F4BY/target.mk index e5c4a67fa4..5fa6a06704 100644 --- a/src/main/target/F4BY/target.mk +++ b/src/main/target/F4BY/target.mk @@ -5,4 +5,5 @@ TARGET_SRC = \ drivers/accgyro/accgyro_spi_mpu6000.c \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ - drivers/compass/compass_qmc5883l.c + drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c diff --git a/src/main/target/KAKUTEF4/target.h b/src/main/target/KAKUTEF4/target.h index 5ba410f525..3bdc3c9b21 100644 --- a/src/main/target/KAKUTEF4/target.h +++ b/src/main/target/KAKUTEF4/target.h @@ -101,6 +101,7 @@ #define USE_MAG #define USE_MAG_HMC5883 //External, connect to I2C1 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL #define MAG_HMC5883_ALIGN CW180_DEG #define USE_BARO diff --git a/src/main/target/KAKUTEF4/target.mk b/src/main/target/KAKUTEF4/target.mk index 017defb8d2..407f901ab7 100644 --- a/src/main/target/KAKUTEF4/target.mk +++ b/src/main/target/KAKUTEF4/target.mk @@ -8,6 +8,7 @@ TARGET_SRC = \ drivers/compass/compass_ak8963.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c ifeq ($(TARGET), FLYWOOF405) diff --git a/src/main/target/KAKUTEF7/target.h b/src/main/target/KAKUTEF7/target.h index b6f240ed18..92afef84f8 100644 --- a/src/main/target/KAKUTEF7/target.h +++ b/src/main/target/KAKUTEF7/target.h @@ -149,6 +149,7 @@ #define USE_MAG #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL #define MAG_I2C_INSTANCE I2C_DEVICE #define SENSORS_SET (SENSOR_ACC | SENSOR_BARO) diff --git a/src/main/target/KAKUTEF7/target.mk b/src/main/target/KAKUTEF7/target.mk index 6c63c14536..1bf2b5a0e6 100644 --- a/src/main/target/KAKUTEF7/target.mk +++ b/src/main/target/KAKUTEF7/target.mk @@ -12,6 +12,7 @@ TARGET_SRC = \ drivers/barometer/barometer_bmp280.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/light_ws2811strip.c \ drivers/light_ws2811strip_hal.c \ drivers/max7456.c diff --git a/src/main/target/MATEKF405/target.h b/src/main/target/MATEKF405/target.h index 8e8a539d84..7473da108f 100644 --- a/src/main/target/MATEKF405/target.h +++ b/src/main/target/MATEKF405/target.h @@ -66,6 +66,7 @@ #define USE_MAG #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL // *************** Baro ************************** #define USE_I2C diff --git a/src/main/target/MATEKF405/target.mk b/src/main/target/MATEKF405/target.mk index aeedf2ad3e..2504bf72d5 100644 --- a/src/main/target/MATEKF405/target.mk +++ b/src/main/target/MATEKF405/target.mk @@ -10,4 +10,5 @@ TARGET_SRC = \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c diff --git a/src/main/target/MATEKF722/target.h b/src/main/target/MATEKF722/target.h index fd7fb112c5..bb3379a554 100644 --- a/src/main/target/MATEKF722/target.h +++ b/src/main/target/MATEKF722/target.h @@ -82,6 +82,7 @@ #define USE_MAG #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL // *************** SD Card ************************** #define USE_SDCARD diff --git a/src/main/target/MATEKF722/target.mk b/src/main/target/MATEKF722/target.mk index 7934b618a3..32f47a0c40 100644 --- a/src/main/target/MATEKF722/target.mk +++ b/src/main/target/MATEKF722/target.mk @@ -10,4 +10,5 @@ TARGET_SRC = \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c diff --git a/src/main/target/MULTIFLITEPICO/target.mk b/src/main/target/MULTIFLITEPICO/target.mk index f642917f9e..fdc4db6500 100644 --- a/src/main/target/MULTIFLITEPICO/target.mk +++ b/src/main/target/MULTIFLITEPICO/target.mk @@ -9,4 +9,4 @@ TARGET_SRC = \ drivers/barometer/barometer_bmp280.c \ drivers/compass/compass_ak8975.c \ drivers/compass/compass_hmc5883l.c \ - drivers/compass/compass_qmc5883l.c + drivers/compass/compass_qmc5883l.c \ diff --git a/src/main/target/NUCLEOF7/target.h b/src/main/target/NUCLEOF7/target.h index 80ec6ed148..14797f58bc 100644 --- a/src/main/target/NUCLEOF7/target.h +++ b/src/main/target/NUCLEOF7/target.h @@ -56,6 +56,7 @@ #define USE_FAKE_MAG #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL #define MAG_HMC5883_ALIGN CW270_DEG_FLIP #define USE_BARO diff --git a/src/main/target/NUCLEOF7/target.mk b/src/main/target/NUCLEOF7/target.mk index 3408bae1b0..f0ab8b3cb2 100644 --- a/src/main/target/NUCLEOF7/target.mk +++ b/src/main/target/NUCLEOF7/target.mk @@ -8,4 +8,5 @@ TARGET_SRC = \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_fake.c \ drivers/compass/compass_hmc5883l.c \ - drivers/compass/compass_qmc5883l.c + drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c diff --git a/src/main/target/NUCLEOF722/target.h b/src/main/target/NUCLEOF722/target.h index b930c66dfe..7692c58d54 100644 --- a/src/main/target/NUCLEOF722/target.h +++ b/src/main/target/NUCLEOF722/target.h @@ -56,6 +56,7 @@ #define USE_FAKE_MAG #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL #define MAG_HMC5883_ALIGN CW270_DEG_FLIP #define USE_BARO diff --git a/src/main/target/NUCLEOF722/target.mk b/src/main/target/NUCLEOF722/target.mk index 164a5199f3..6b9563c661 100644 --- a/src/main/target/NUCLEOF722/target.mk +++ b/src/main/target/NUCLEOF722/target.mk @@ -9,5 +9,6 @@ TARGET_SRC = \ drivers/compass/compass_fake.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/light_ws2811strip.c \ drivers/light_ws2811strip_hal.c diff --git a/src/main/target/OMNIBUSF4/target.h b/src/main/target/OMNIBUSF4/target.h index 0990eab45c..ae0b91b786 100644 --- a/src/main/target/OMNIBUSF4/target.h +++ b/src/main/target/OMNIBUSF4/target.h @@ -118,6 +118,7 @@ #define USE_MAG #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL #define MAG_HMC5883_ALIGN CW90_DEG #define USE_BARO diff --git a/src/main/target/OMNIBUSF4/target.mk b/src/main/target/OMNIBUSF4/target.mk index 89f1781ca3..b14e5964f5 100644 --- a/src/main/target/OMNIBUSF4/target.mk +++ b/src/main/target/OMNIBUSF4/target.mk @@ -9,5 +9,6 @@ TARGET_SRC = \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c diff --git a/src/main/target/OMNIBUSF4FW/target.h b/src/main/target/OMNIBUSF4FW/target.h index fa00676480..fefc5639f1 100644 --- a/src/main/target/OMNIBUSF4FW/target.h +++ b/src/main/target/OMNIBUSF4FW/target.h @@ -75,6 +75,7 @@ #define USE_MAG #define USE_MAG_HMC5883 +#define USE_MAG_LIS3MDL #define MAG_HMC5883_ALIGN CW90_DEG #define USE_BARO diff --git a/src/main/target/OMNIBUSF4FW/target.mk b/src/main/target/OMNIBUSF4FW/target.mk index 21caf6eb1d..111fbddee2 100644 --- a/src/main/target/OMNIBUSF4FW/target.mk +++ b/src/main/target/OMNIBUSF4FW/target.mk @@ -9,4 +9,5 @@ TARGET_SRC = \ drivers/barometer/barometer_bmp280.c \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c diff --git a/src/main/target/OMNIBUSF7/target.h b/src/main/target/OMNIBUSF7/target.h index 18a0471658..2930729243 100644 --- a/src/main/target/OMNIBUSF7/target.h +++ b/src/main/target/OMNIBUSF7/target.h @@ -216,6 +216,7 @@ #define USE_MAG #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL #define SENSORS_SET (SENSOR_ACC | SENSOR_BARO) //ADC--------------------------------------- diff --git a/src/main/target/OMNIBUSF7/target.mk b/src/main/target/OMNIBUSF7/target.mk index dc42481aa1..0fdbdcdfe1 100644 --- a/src/main/target/OMNIBUSF7/target.mk +++ b/src/main/target/OMNIBUSF7/target.mk @@ -14,6 +14,7 @@ TARGET_SRC = \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/light_ws2811strip.c \ drivers/light_ws2811strip_hal.c \ drivers/max7456.c diff --git a/src/main/target/OMNINXT/target.h b/src/main/target/OMNINXT/target.h index eda6e7cda3..55d3f016b4 100644 --- a/src/main/target/OMNINXT/target.h +++ b/src/main/target/OMNINXT/target.h @@ -78,6 +78,7 @@ #define USE_MAG #define MAG_I2C_INSTANCE (I2CDEV_1) #define USE_MAG_HMC5883 +#define USE_MAG_LIS3MDL #define USE_BARO #define USE_BARO_SPI_LPS diff --git a/src/main/target/OMNINXT/target.mk b/src/main/target/OMNINXT/target.mk index 4ef4d4e9e3..eb0448f4a5 100644 --- a/src/main/target/OMNINXT/target.mk +++ b/src/main/target/OMNINXT/target.mk @@ -23,4 +23,5 @@ TARGET_SRC = \ drivers/barometer/barometer_bmp280.c \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c diff --git a/src/main/target/SKYZONEF405/target.h b/src/main/target/SKYZONEF405/target.h index 7524daae97..f543cecbb6 100644 --- a/src/main/target/SKYZONEF405/target.h +++ b/src/main/target/SKYZONEF405/target.h @@ -71,6 +71,7 @@ #define USE_MAG #define MAG_I2C_INSTANCE (I2CDEV_1) #define USE_MAG_HMC5883 +#define USE_MAG_LIS3MDL #define USE_SPI_DEVICE_2 #define SPI2_SCK_PIN PB13 diff --git a/src/main/target/SKYZONEF405/target.mk b/src/main/target/SKYZONEF405/target.mk index d64e7df8b6..9f1c1b1e70 100644 --- a/src/main/target/SKYZONEF405/target.mk +++ b/src/main/target/SKYZONEF405/target.mk @@ -8,4 +8,5 @@ TARGET_SRC = \ drivers/barometer/barometer_bmp280.c \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c diff --git a/src/main/target/SPEEDYBEEF4/target.h b/src/main/target/SPEEDYBEEF4/target.h index abf0ff9e95..258f01dce9 100644 --- a/src/main/target/SPEEDYBEEF4/target.h +++ b/src/main/target/SPEEDYBEEF4/target.h @@ -57,6 +57,7 @@ #define USE_MAG #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL // *************** Baro ************************** #define USE_I2C diff --git a/src/main/target/SPEEDYBEEF4/target.mk b/src/main/target/SPEEDYBEEF4/target.mk index 90a40d0592..03531ccc6c 100644 --- a/src/main/target/SPEEDYBEEF4/target.mk +++ b/src/main/target/SPEEDYBEEF4/target.mk @@ -8,4 +8,5 @@ TARGET_SRC = \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c diff --git a/src/main/target/SPRACINGF4EVO/target.h b/src/main/target/SPRACINGF4EVO/target.h index 3ec54721e0..1d70a1d9f2 100644 --- a/src/main/target/SPRACINGF4EVO/target.h +++ b/src/main/target/SPRACINGF4EVO/target.h @@ -80,6 +80,7 @@ #define USE_MAG_AK8975 #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL #define USE_VCP #define USE_UART1 diff --git a/src/main/target/SPRACINGF4EVO/target.mk b/src/main/target/SPRACINGF4EVO/target.mk index 86d4303c7b..a41a03e1af 100644 --- a/src/main/target/SPRACINGF4EVO/target.mk +++ b/src/main/target/SPRACINGF4EVO/target.mk @@ -9,6 +9,7 @@ TARGET_SRC = \ drivers/compass/compass_ak8975.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c \ drivers/vtx_rtc6705.c diff --git a/src/main/target/SPRACINGF7DUAL/target.h b/src/main/target/SPRACINGF7DUAL/target.h index e7c18fcee7..021bed3b5e 100644 --- a/src/main/target/SPRACINGF7DUAL/target.h +++ b/src/main/target/SPRACINGF7DUAL/target.h @@ -86,6 +86,7 @@ #define USE_MAG #define USE_MAG_HMC5883 +#define USE_MAG_LIS3MDL #define USE_VCP #define USE_UART1 diff --git a/src/main/target/SPRACINGF7DUAL/target.mk b/src/main/target/SPRACINGF7DUAL/target.mk index 27cd2b15a6..581846b461 100644 --- a/src/main/target/SPRACINGF7DUAL/target.mk +++ b/src/main/target/SPRACINGF7DUAL/target.mk @@ -10,6 +10,7 @@ TARGET_SRC = \ drivers/barometer/barometer_bmp280.c \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c \ drivers/vtx_rtc6705_soft_spi.c diff --git a/src/main/target/STM32F7X2/target.h b/src/main/target/STM32F7X2/target.h index 8ce87c3480..00c683a446 100644 --- a/src/main/target/STM32F7X2/target.h +++ b/src/main/target/STM32F7X2/target.h @@ -60,6 +60,7 @@ #define USE_MAG #define USE_MAG_HMC5883 #define USE_MAG_QMC5883 +#define USE_MAG_LIS3MDL #define MAG_HMC5883_ALIGN CW270_DEG_FLIP #define USE_BARO diff --git a/src/main/target/YUPIF7/target.h b/src/main/target/YUPIF7/target.h index b3bfb4fe76..edd9540387 100644 --- a/src/main/target/YUPIF7/target.h +++ b/src/main/target/YUPIF7/target.h @@ -116,6 +116,7 @@ #define MAG_HMC5883_ALIGN CW270_DEG_FLIP #define USE_MAG_QMC5883 #define MAG_QMC5883_ALIGN CW270_DEG_FLIP +#define USE_MAG_LIS3MDL // *************** OSD ***************************** #define USE_MAX7456 diff --git a/src/main/target/YUPIF7/target.mk b/src/main/target/YUPIF7/target.mk index 8ae0bb21f6..61808eabc2 100644 --- a/src/main/target/YUPIF7/target.mk +++ b/src/main/target/YUPIF7/target.mk @@ -6,4 +6,5 @@ TARGET_SRC = \ drivers/barometer/barometer_ms5611.c \ drivers/compass/compass_hmc5883l.c \ drivers/compass/compass_qmc5883l.c \ + drivers/compass/compass_lis3mdl.c \ drivers/max7456.c