12-26-2022 09:49 AM - edited 12-26-2022 09:49 AM
Hi there,
I am in the process of creating a software version of the BME280 and one thing I cannot find is how to
program the calibration data such that I can simply use raw values that would be equal to the compensated values
For example if I have a raw temperature (16.4 format) with the value 0x3FFF0 then have a value that reads something like 84.99 celsius
Alternatively, is there a way to invert the formulas such that if I start with a temperature I can compute the raw value?
12-27-2022 02:55 AM
Hi bonnyr,
Please refer "chapter 4.2 Output Compensation" in BME280 data sheet.
12-27-2022 10:39 PM
Hi BSTRobin,
I think I did not make myself clear on what I am trying to do - I am trying to produce values that a typical sensor would in software.
In other words, I am simulating the sensor.
So I need to find out how to compose the raw values, so that when some code (running on arduino) reads temperature for example, and they
use the Bosch libraries you're citing, they will get reasonable values from the raw values the simulation generates.
I tried to understand what each of the coefficients does so that I can compute the raw values (t,p,h) from measurements, (for example what
raw value I should have for a temperature of 25 deg c) but failed 🙂
So, I am asking for a way for me to simply, map the range of temperatures to an ADC values (for temp, use 20bits for the ~125 deg possible) and
have a default coefficient map that would be like an identity operation map ( multiply or divide by 1, add or subtract 0, etc)
I hope this is possible
12-29-2022 06:11 AM
12-29-2022 08:13 AM
Hi bonnyr,
The calibration parameters of the BME280 are hardware related and not used to simulate sensor data. If you want to simulate a sensor, this method does not apply to you.
The software simulates the sensor, which needs your own calculation.