Hello! I am writing to request assistance with the BME280. I designed a circuit using a BME280 device and a PIC18F26K22 microcontroller. The PIC microcontroller acts as the "middle man" between the BME280 device and a LabVIEW program I wrote on a Windows based PC. The LabVIEW program communicates with the PIC microcontroller over an RS-232 bus. The PIC in turn communicates with the BME280 over an i2c bus. Using my LabVIEW program, I am able to read any register in the BME280 that I wish. However I don't know how to use the Calibration data (residing in registers 0x88 to 0xA1 and 0xE1 to 0xF0) to convert the raw data from the pressure, temperature, and humidity registers into engineering units. I have seen some C++ examples which apparently perform this calculation, but I am not fluent in C++. Is there an easy-to-use formula which will allow me to perform the pressure, temperature, and humidity calculations from inside of my LabVIEW program? The formula I am looking for is similiar to the formula I am using for the MAX44009 amibient light sensor. That formula is: LUX = (2^exponent) x (mantissa) x 0.72 To explain a little further, the MAX44009 amibient light sensor utilizes two registers for recording the light intensity. They are the "LUX.MSB" & "LUX.LSB" registers. The formula provided by the manufacturer to calculate the LUX value, as stated earlier, is: LUX = (2^exponent) x (mantissa) x 0.72 The manfacturer also specifies that the exponent & mantissa values are represented by different bits in the two registers, as shown below. ----------------------------------------------------------------------------------- Bit D7 D6 D5 D4 D3 D2 D1 D0 ----------------------------------------------------------------------------------- LUX.MSB Register E3 E2 E1 E0 M7 M6 M5 M4 LUX.LSB Register - - - - M3 M2 M1 M0 ----------------------------------------------------------------------------------- Definitions E: exponent (4 bits) M: mantissa (8 bits) ----------------------------------------------------------------------------------- During communications with the MAX44009, I use my LabVIEW program to read the LUX.MSB & LUX.LSB registers in the MAX44009 device. I then use the formula provided by the manufacturer to examine the bits in each register and perform the LUX value calculation from inside of my LabVIEW program. I am hoping that a similiar formula exists for performing BME280 calculations. In conclusion, any assistance you can provide would be greatly appreciated. If you require additional information from me before generating an answer, please contact me. Thank you very much! Steven Gemberling Livermore, CA 94551 sgemberling1@att.net (925) 800-9922 (cell) NOTE: While downloading some BME280 documents from your website, I noticed a Bosch Sensortec software package titled "DD2.1 UI". I assume this software package performs the calculations I am inquiring about. If that information is not sensitive, would it be possible to send it to me? Thank you!
... View more