-
Notifications
You must be signed in to change notification settings - Fork 93
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Temperature readings to high #11
Comments
That's normal. The sensor is not factory calibrate for temperature. You need to add a temperature offset.
from the Integration Guide - Bosch Software Environmental Cluster (BSEC) |
Humidity uses BOSCH's own open-source BME680_driver does not demonstrate the method needed to alter or compensate this value during temperature compensation of other measurements. While their BSEC software might, as far as I'm aware it's distributed only as binary blobs and is closed-source, so we can't extract the logic used from it. If anyone can demonstrate a method of compensating temperature such that the degrees C and humidity results are accurate, then I would gladly integrate it into this library. Looking at how t_fine is converted to degrees C: Suggests that a compensation amount given in degrees C (since we can't expect the end user to know what units t_fine is expressed in) could be converted to an offset against t_fine using the following formula:
Which gives you a t_fine offset of To see if this corrects your results, you can subtract this value from the stored https://github.com/pimoroni/bme680/blob/master/library/bme680/__init__.py#L296 Let me know how it goes! |
Yes, it looks like only the BSEC does. I wish they had a more open platform.
|
Thanks a lot guys! To convert the offset_in_c to offset_in_t_fine you have to multiply it also by 100. Source The function is:
I will commit a merge request later. |
The bme280 suffers from the same problem. Looking at the code for each, I see they are quite different in how they calculate things. I can see the bme280 is doing some sort of compensation, but it does not allow me to plug in a corrected temperature value (or offset). @Gadgetoid , can we get a similar offset function in the bme280? |
Hi,
I am experiencing the issue that the temperatures from the bme680 are too high. Compared to another temperature sensor they are about 3-4 °C higher.
Changing the oversampling methods won't fix the issue. The sensors are not influenced by the heat from the raspberrypi zero w. I could just substract 4°C from the temperature, but the relative humidity is also influenced by the wrong temperature.
Does anyone know how to fix the issue?
I looked briefly into the
_calc_temperature
funtion in init.py but I could figure out where I should start on a fix.I attached the output of the read-all.py.
I turned the gas sensor of the green raspizero1 of at 14:37 with
sensor.set_gas_status(bme680.DISABLE_GAS_MEAS)
. But it didn't affect the temperature readings.Can someone point me in a useful direction to fix the temperature issue?
The text was updated successfully, but these errors were encountered: