diff --git a/src/modules/Telemetry/Sensor/BME680Sensor.cpp b/src/modules/Telemetry/Sensor/BME680Sensor.cpp index 474c376dd..cab388e75 100644 --- a/src/modules/Telemetry/Sensor/BME680Sensor.cpp +++ b/src/modules/Telemetry/Sensor/BME680Sensor.cpp @@ -14,25 +14,28 @@ int32_t BME680Sensor::runOnce() { if (!hasSensor()) { return DEFAULT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS; } - status = bme680.begin(nodeTelemetrySensorsMap[sensorType]); + status = bme680.begin(nodeTelemetrySensorsMap[sensorType], false); + + // Set up oversampling and filter initialization + bme680.setTemperatureOversampling(BME68X_OS_1X); + bme680.setHumidityOversampling(BME68X_OS_1X); + bme680.setPressureOversampling(BME68X_OS_1X); + bme680.setIIRFilterSize(BME68X_FILTER_OFF); + bme680.setODR(BME68X_ODR_1000_MS); + // BME68X_FORCED_MODE is done in Lib Init already + bme680.setGasHeater(320, 150); // 320*C for 150 ms + return initI2CSensor(); } -void BME680Sensor::setup() -{ - // Set up oversampling and filter initialization - bme680.setTemperatureOversampling(BME680_OS_8X); - bme680.setHumidityOversampling(BME680_OS_2X); - bme680.setPressureOversampling(BME680_OS_4X); - bme680.setIIRFilterSize(BME680_FILTER_SIZE_3); - bme680.setGasHeater(320, 150); // 320*C for 150 ms -} +void BME680Sensor::setup() { } bool BME680Sensor::getMetrics(Telemetry *measurement) { - measurement->variant.environment_metrics.temperature = bme680.readTemperature(); - measurement->variant.environment_metrics.relative_humidity = bme680.readHumidity(); - measurement->variant.environment_metrics.barometric_pressure = bme680.readPressure() / 100.0F; - measurement->variant.environment_metrics.gas_resistance = bme680.readGas() / 1000.0; + bme680.performReading(); + measurement->variant.environment_metrics.temperature = bme680.temperature; + measurement->variant.environment_metrics.relative_humidity = bme680.humidity; + measurement->variant.environment_metrics.barometric_pressure = bme680.pressure / 100.0F; + measurement->variant.environment_metrics.gas_resistance = bme680.gas_resistance / 1000.0; return true; } \ No newline at end of file