diff --git a/Makefile b/Makefile index 0c0eb8ea9..658476c11 100755 --- a/Makefile +++ b/Makefile @@ -297,6 +297,7 @@ NAZE_SRC = startup_stm32f10x_md_gcc.S \ drivers/adc.c \ drivers/adc_stm32f10x.c \ drivers/barometer_bmp085.c \ + drivers/barometer_bmp280.c \ drivers/barometer_ms5611.c \ drivers/bus_spi.c \ drivers/bus_i2c_stm32f10x.c \ @@ -338,6 +339,7 @@ EUSTM32F103RC_SRC = startup_stm32f10x_hd_gcc.S \ drivers/adc.c \ drivers/adc_stm32f10x.c \ drivers/barometer_bmp085.c \ + drivers/barometer_bmp280.c \ drivers/barometer_ms5611.c \ drivers/bus_i2c_stm32f10x.c \ drivers/bus_spi.c \ @@ -372,6 +374,7 @@ OLIMEXINO_SRC = startup_stm32f10x_md_gcc.S \ drivers/adc.c \ drivers/adc_stm32f10x.c \ drivers/barometer_bmp085.c \ + drivers/barometer_bmp280.c \ drivers/bus_i2c_stm32f10x.c \ drivers/bus_spi.c \ drivers/compass_hmc5883l.c \ @@ -432,6 +435,7 @@ CC3D_SRC = \ drivers/adc.c \ drivers/adc_stm32f10x.c \ drivers/barometer_bmp085.c \ + drivers/barometer_bmp280.c \ drivers/barometer_ms5611.c \ drivers/bus_spi.c \ drivers/bus_i2c_stm32f10x.c \ @@ -502,6 +506,7 @@ STM32F3DISCOVERY_SRC = \ drivers/accgyro_mpu6050.c \ drivers/accgyro_l3g4200d.c \ drivers/barometer_ms5611.c \ + drivers/barometer_bmp280.c \ drivers/compass_ak8975.c \ $(HIGHEND_SRC) \ $(COMMON_SRC) @@ -528,6 +533,7 @@ SPARKY_SRC = \ drivers/display_ug2864hsweg01.c \ drivers/accgyro_mpu6050.c \ drivers/barometer_ms5611.c \ + drivers/barometer_bmp280.c \ drivers/compass_ak8975.c \ drivers/serial_usb_vcp.c \ $(HIGHEND_SRC) \ @@ -541,6 +547,7 @@ SPRACINGF3_SRC = \ drivers/accgyro_mpu6050.c \ drivers/barometer_ms5611.c \ drivers/compass_ak8975.c \ + drivers/barometer_bmp280.c \ drivers/compass_hmc5883l.c \ drivers/display_ug2864hsweg01.h \ drivers/flash_m25p16.c \ diff --git a/src/main/sensors/barometer.h b/src/main/sensors/barometer.h index 685f6b843..9e107283d 100644 --- a/src/main/sensors/barometer.h +++ b/src/main/sensors/barometer.h @@ -21,7 +21,8 @@ typedef enum { BARO_NONE = 0, BARO_DEFAULT = 1, BARO_BMP085 = 2, - BARO_MS5611 = 3 + BARO_MS5611 = 3, + BARO_BMP280 = 4 } baroSensor_e; #define BARO_SAMPLE_COUNT_MAX 48 diff --git a/src/main/sensors/initialisation.c b/src/main/sensors/initialisation.c index e028bc0dd..c40602de9 100755 --- a/src/main/sensors/initialisation.c +++ b/src/main/sensors/initialisation.c @@ -42,6 +42,7 @@ #include "drivers/barometer.h" #include "drivers/barometer_bmp085.h" +#include "drivers/barometer_bmp280.h" #include "drivers/barometer_ms5611.h" #include "drivers/compass.h" @@ -456,6 +457,14 @@ static void detectBaro() baroHardware = BARO_BMP085; break; } +#endif + ; // fallthough + case BARO_BMP280: +#ifdef USE_BARO_BMP280 + if (bmp280Detect(&baro)) { + baroHardware = BARO_BMP280; + break; + } #endif case BARO_NONE: baroHardware = BARO_NONE; diff --git a/src/main/target/CC3D/target.h b/src/main/target/CC3D/target.h index 0e873ef81..702fc4086 100644 --- a/src/main/target/CC3D/target.h +++ b/src/main/target/CC3D/target.h @@ -58,6 +58,7 @@ #define BARO #define USE_BARO_MS5611 #define USE_BARO_BMP085 +#define USE_BARO_BMP280 // External I2C MAG #define MAG diff --git a/src/main/target/CHEBUZZF3/target.h b/src/main/target/CHEBUZZF3/target.h index 8bca64d8d..19480d65e 100644 --- a/src/main/target/CHEBUZZF3/target.h +++ b/src/main/target/CHEBUZZF3/target.h @@ -58,6 +58,7 @@ #define BARO #define USE_BARO_MS5611 +#define USE_BARO_BMP280 #define MAG #define USE_MAG_AK8975 diff --git a/src/main/target/EUSTM32F103RC/target.h b/src/main/target/EUSTM32F103RC/target.h index 4ff778d96..64cf545b4 100644 --- a/src/main/target/EUSTM32F103RC/target.h +++ b/src/main/target/EUSTM32F103RC/target.h @@ -65,6 +65,7 @@ #define BARO #define USE_BARO_MS5611 #define USE_BARO_BMP085 +#define USE_BARO_BMP280 #define MAG #define USE_MAG_HMC5883 diff --git a/src/main/target/NAZE/target.h b/src/main/target/NAZE/target.h index cb3df6d12..380cc7dbe 100644 --- a/src/main/target/NAZE/target.h +++ b/src/main/target/NAZE/target.h @@ -107,6 +107,7 @@ #define BARO #define USE_BARO_MS5611 #define USE_BARO_BMP085 +#define USE_BARO_BMP280 #define MAG #define USE_MAG_HMC5883 diff --git a/src/main/target/OLIMEXINO/target.h b/src/main/target/OLIMEXINO/target.h index 3a2adb0c7..65581cd76 100644 --- a/src/main/target/OLIMEXINO/target.h +++ b/src/main/target/OLIMEXINO/target.h @@ -59,6 +59,7 @@ #define BARO //#define USE_BARO_MS5611 #define USE_BARO_BMP085 +#define USE_BARO_BMP280 #define MAG #define USE_MAG_HMC5883 diff --git a/src/main/target/PORT103R/target.h b/src/main/target/PORT103R/target.h index e1af6a738..3ca29d6ed 100644 --- a/src/main/target/PORT103R/target.h +++ b/src/main/target/PORT103R/target.h @@ -88,6 +88,7 @@ #define BARO #define USE_BARO_MS5611 #define USE_BARO_BMP085 +#define USE_BARO_BMP280 #define MAG #define USE_MAG_HMC5883 diff --git a/src/main/target/SPARKY/target.h b/src/main/target/SPARKY/target.h index 1c835d2b0..d054055a8 100644 --- a/src/main/target/SPARKY/target.h +++ b/src/main/target/SPARKY/target.h @@ -41,6 +41,7 @@ #define BARO #define USE_BARO_MS5611 +#define USE_BARO_BMP280 #define MAG #define USE_MAG_AK8975 diff --git a/src/main/target/SPRACINGF3/target.h b/src/main/target/SPRACINGF3/target.h index f39779a0b..50a1d72c9 100644 --- a/src/main/target/SPRACINGF3/target.h +++ b/src/main/target/SPRACINGF3/target.h @@ -49,6 +49,7 @@ #define BARO #define USE_BARO_MS5611 +#define USE_BARO_BMP280 #define MAG #define USE_MAG_AK8975