From 88caa9bc936f84ca05cdfe8e68cb5e3ccec01704 Mon Sep 17 00:00:00 2001 From: ksschwabe Date: Tue, 1 Dec 2015 12:47:11 +0100 Subject: [PATCH] MPU6000: Correct temperature scaling for use with ICM20608 --- src/drivers/mpu6000/mpu6000.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/drivers/mpu6000/mpu6000.cpp b/src/drivers/mpu6000/mpu6000.cpp index 235814c341..3d3bf24ada 100644 --- a/src/drivers/mpu6000/mpu6000.cpp +++ b/src/drivers/mpu6000/mpu6000.cpp @@ -1913,7 +1913,14 @@ MPU6000::measure() arb.scaling = _accel_range_scale; arb.range_m_s2 = _accel_range_m_s2; - _last_temperature = (report.temp) / 361.0f + 35.0f; + if(is_icm_device()) // if it is an ICM20608 + { + _last_temperature = (report.temp) / 326.8f + 25.0f; + } + else // If it is an MPU6000 + { + _last_temperature = (report.temp) / 361.0f + 35.0f; + } arb.temperature_raw = report.temp; arb.temperature = _last_temperature;