Skip to content
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

Sporadic problems when reading Humidity and Pressure #14

Closed
SV-Zanshin opened this issue May 24, 2020 · 3 comments
Closed

Sporadic problems when reading Humidity and Pressure #14

SV-Zanshin opened this issue May 24, 2020 · 3 comments
Assignees
Labels
bug Something isn't working

Comments

@SV-Zanshin
Copy link
Collaborator

Expected Behavior

Values for temperature, humidity and pressure should be plausible

Actual Behavior

Occasionally, the BME680 using the example SPIDemo program, will show correct temperature values but the humidity will read 100% and the pressure will be below 700hPa although it should be close to 1000hPa.

Steps to Reproduce the Problem

Power down the device and restart. Sometimes the error will be reproducible. It seems to be a non-deterministic occurrence.

Specifications

  • Version: Library version 1.0.4
  • Platform: Arduino
  • Subsystem: Arduino Micro

Zanshin Logo

@SV-Zanshin SV-Zanshin added the bug Something isn't working label May 24, 2020
@SV-Zanshin SV-Zanshin self-assigned this May 24, 2020
@SV-Zanshin
Copy link
Collaborator Author

This is an odd problem that has been bothering me for some time, as it was quite non-deterministic in nature. Looking around the various forums on the internet for the BME680 it would seem that others have had this problem as well, and it was not always clear what the problem was.

I found that I could write values to the "Ctrl_Hum" register bits 0:2, which control the oversampling rate of the humidity sensor and regardless of what I wrote to that address, the values would remain "0" (humidity sensor turned off). Sometimes cycling the power would fix that, sometimes calling "reset()" would work, but not always.

@SV-Zanshin
Copy link
Collaborator Author

It seems as if writes to the registers, or at least this register, don't take effect if there is an active conversion in progress. Changing the SetOversampling(), setIIRFilter() and setGas() functions so that they wait for any active conversion to finish solves the issue.

@SV-Zanshin
Copy link
Collaborator Author

Fix implemented for v1.0.6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant