We are developing a sensor using the BME280.
We are on the second prototype, to try to get the correct temperature and humidity without any success.
In this last prototype, we've etched the board around the sensor and removed most of the cooper connections, but still, we are measuring around 3ºC more than we should and 10% lower humidity.
We've assembled two prototypes, one using the hotgun to solder the BME, heating the board, not the sensor, and a second one using a reflow oven with the proper profile, both are presenting the same deviations.
When we plug the PCB, the first values are quite correct, but then the temperature starts to rise and the humidity falls to the deviations I explained.
Are these deviations linear? Can we compensate for the ~3ºC and ~10% just by adding it or subtracting it from the final values?
Is there anything more we can do on the PCB design to solve this?
Thanks in advance,
Wishes for a great weekend,
Thanks for your inquiry.
Your PCB design looks fine by mounting BME280 on a tiny PCB that is separated from the main PCB. This way the temperature change on the main PCB will not affect BME280 temperature and humidity measurements.
According to BME280 datasheet the typical temperature accuracy is +/-1C and humidity accuracy of +/-3%RH. I am not sure why 2 minutes later after BME280 is powered on the temperature measurement goes up while the humidity measurement goes down. It should be stable from the beginning. Maybe you can try to place a piece of Kapton tape to cover BME280 vent hole before hotgun soldering and oven reflow. You can remove the tape after soldering. This way can prevent BME280 from contamination.
In addition, you can use your reference meter to do two temperature points temperature and humidity calibration. After you determine the calibration parameters, you can save them in your MCU's flash memory and apply them to future BME280 measurements to get the compensated final values. Then you can compare the BME280 measurements to the reference meter to check the accuracy.