MS5611 readout under Python and C++ differs


using the Navio+ code examples I read data from an MS5611 barometer using the I2C interface. Interestingly the pressure readings differed when reading through the Python code as compared to the C++ code by about 6 mbar (e.g. 1000 in Python and 1006 in C++). By comparing to another barometer, it seems that the C++ readings are correct,
Both measures were stable over time. Another curiosity was that when repeatedly reading thorugh Python the temperature increased steadily to about 30°C, whereas when reading through C++ code the temperature was stable or decreasing a bit. I checked that the postprocessing of the raw values is not different between the Python and the C++ code. So my guess is that it has something to do with reading the I2C bus. Any ideas?

Hi @qlearn,

MS5611 has a fairly complicated calibration and compensation mechanism and datasheet has some errors, so good drivers are not that easy to implement. Soon we are going to deprecate all these relatively poor drivers in favor of Navio SDK.

This error is most likely due to some mistake in calibration in python code, not in I2C operation.