I'm using MPU 6050 and there's a thermometer onboard. However, I looked through the chip set data sheets but could not find the instruction for temperature sensing.

Could you tell me how to calibrate the data string from the two address started from 0x41?


The temperature sensor is likely included to keep the gyroscope and accelerometer better calibrated over the specified temperature range. The temperature may not be the ambient temperature should the chip warm up.

The temperature sensor specifications are in section 6.3 on page 14 of the specification sheet indirectly pointed to in the question.

Range -40 to +85°C
Sensitivity Untrimmed 340 LSB/ºC
Temperature Offset 35ºC -521 LSB
Linearity Best fit straight line (-40°C to +85°C) ±1°C

So, when the chip is at 35C the chip temperature register is supposed to read about -521. To convert that into C you need to make a calculation:

chip_temperature = ((value_read + 521) + (35 * 340)) / 340


chip_temperature = (value_read + 12421) / 340

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.