Hello mjanke,
I tested github code forced_mode.c with several time read data, haven't see too much difference for humidity value. Have you changed the reference code?https://github.com/BoschSensortec/BME68x-Sensor-API/blob/master/examples/forced_mode/forced_mode.c
After reviewing your screen cap, there are a couple of points that I would make.
1. Your RH % does change radically. The first read is 36.95 % RH, your second is 5.88 % RH which is really really low. It implies that you are located in a very dry place. This page (https://www.currentresults.com/Weather-Extremes/US/low-humidity-cities.php) shows average RH in places like Las Vegas and Pheonix (both in a desert). RH is around 20 % in late afternoon. Given this low reading and the drop from the first reading of 36.95 % RH (which is typical), I suspect that your readings after the first reading are inaccurate. Your temp and pressure values seem stable through all readings (matching my experiencce - see prev posts in this thread).
2. In your case, the RH dropped dramatically after the first reading. In my case it went up to 100 % RH. I suspect that if you also did a re-config before your 2nd, 3rd, etc readings - you would see them closer to 37 % RH.
So - the real questsion remains. Why does acquiring stable RH require a re-config before each reach read?
Regards,
Mark J
Nothing from Bosch ....
Maybe a bug in their Sensor API? Won't know unless someone at Bosch reviewes this thread and tries to resolve.
Workaroung is simply to re-config before each read.
I don't like leaving these threads unresolved, so I added this last post and will mark it accordingly.
Mark J
Hello mjanke,
I'm sure the code on GitHub is verified. You can see that I've run it well.
Correct your comment “The first read is 36.95 % RH, your second is 5.88 % RH which is really really low.”, you could see my previous test result, first humidity is 53.35%, second is 53.14%.
My appologies, I misread your capture. My comment mistakenly referenced the column after RH.
The referenced code (forced_mode.c) performs successive reads without delay between calls (each iteration of the while loop). In my code, I wait 5 seconds between forced reads. That appears to be the only difference.
I am left wondering why the behaviour is different. At any rate, the I will work around my issue by issuing a config before each read.
Regards,
Mark J