Hi,
Yes you are correct to question the temperature in my room Leo. I was using a new temperature measurement unit and it is not working properly (it uses the SCL1000 in a TI watch! What they used to sell at Sparkfun). I have checked the BBC and other sites and the temperature outside in my part of the UK is 7 to 8C, pressure 1005mb.
It reports in my car 8C and I have 2 identical Chinese, I assume, units and they are giving me a temp of 17 and 18C respectively in my room.
Thank you Leo for checking my results, I should have done that but I have become fixed with the temperature values. So my setup is working as you write, many thanks again.
As with Kalle123 it seems that my Drotek sensor does not give accurate temperature readings compared with the BMP and the German import MS5611.
The MS5803 gives a 25C reading which I do not understand as the calculation are the same for that and the MS5611. The temperature corrections on p8 of the datasheets cannot make much difference.
A quote from the company
http://www.sensor-test.de/press/search/fairnews/67/enThe miniature precision pressure sensor module MS5611 consists of a high linear measurement element (pressure die) and a ΣΔ- A/D-Interface-IC. The module converts the measured pressure and temperature-dependant voltage into two 24bit data words, which are available as output signal. Additionally six individual coefficients are placed in the internal PROM, which enable extremely precise software correction for pressure and temperature measurement using an external microprocessor.
The resolution for pressure measurement is specified with 0.012mbar dependent from the Oversampling Ratio (OSR). The resolution of the temperature signal is typ < 0.01°C.
Two obvious things strike me from the manufacturer claim: The resolution of the temp signal is <0.01C which I assume tells us about the signal and not the final reading. But (how) can so much noise (standard signal to noise ratio s/n, I assume) be introduced into the system to give such different readings? My nearest two temp readings below are 21.5 and 21.99, a difference of nearly 0.5C or some 2.5% at best and 1.5C at worst. The calibration coefficients I assume give the lower and the maximum values for the temperature and pressure, 2 ranges with 20C as a reference. Given the range gap (like 0 to 100) and a reading it is simple to derive the final value. I can see that pressure is measured by an adaptation of a Wheatstone bridge where a change in pressure is converted into a change in resistance which is then digitized to a 0.012mbar resolution – with OSR it must be admitted. BUT even without OSR we should get consistently the same inaccurate values or does the lack of OSR more random error / results? But having said that from my results the most accurate readings are for the pressure. 992.67 (Germany) 992.04 (France) 990.91 (BMP) 999.7 (MS5803). So the 2 nearest pressure readings are Germany and France which have the greatest temperature difference.
How can you get accurate pressure readings when the temperature is inaccurate???!!!
Especially as pressure is compensated for by temperature in the equations for SENS a function of dT and in OFF also a function of dT.
Oh I just saw that you changed my dT to int64_t from int32_t. For what reason Leo? int64_t is good for a value up to 18x10^18?, do we need that long long? I also managed to print out dT before, now not.
Thanks guys as always
Best
Results
MS1 Germany
Actual TEMP= 21.99 Actual PRESSURE= 992.67
RAW Temp D2= 8036006 RAW Pressure D1= 8046020
C1 = 53520
C2 = 53270
C3 = 34137
C4 = 31191
C5 = 31166
C6 = 29055
MS2 Drotek France
Actual TEMP= 20.46 Actual PRESSURE= 992.04
RAW Temp D2= 8392488 RAW Pressure D1= 8240970
C1 = 54277
C2 = 57096
C3 = 33888
C4 = 33309
C5 = 32729
C6 = 28420
BMP085 Bosch
Temperature = 21.50 *C
Pressure = 99091 Pa
Altitude = 188.53 meters
Real altitude = 101.10 meters
MS5803 Another sensor type
Actual TEMP= 25.26 Actual PRESSURE= 99.97
RAW Temp D2= 8583292 RAW Pressure D1= 3934668
C1 = 45851
C2 = 38039
C3 = 28971
C4 = 25814
C5 = 32925
C6 = 28593
This began by trying to get the MS5611 working using the code from Fabio at
http://www.varesano.net/blog/fabio/ms5611-01ba-arduino-library-first-developments-resultsI was unable to get it working so used simple code we have been looking at.
I have just run 2 of Fabio’s programmes again just after obtaining the results above and this is what I get:
Fabio's Altitude programme using the Drotek sensor
temp: 20.74 degC pres: 324.67 mbar altitude: 10928.87 m
Fabio's Simple programme using the Drotek sensor
temp: 20.51 degC pres: 324.73 mbar
temp: 0.00 degC pres: 0.00 mbar
temp: 0.00 degC pres: 0.00 mbar
temp: 0.00 degC pres: 0.00 mbar
temp: 0.00 degC pres: 0.00 mbar
temp: -261.63 degC pres: 0.00 mbar
temp: 0.00 degC pres: 0.00 mbar
temp: 0.00 degC pres: 0.00 mbar
Absolutely senseless. He uses and calls cpp and h files using OSR 3 or 4096 precision although a see a -261.63C temp and wonder if absolute -273C Kelvin is being used and needs to be used. I will check.