02-09-2020 11:45 PM - edited 02-10-2020 05:38 PM
Hello Bosch,
we are evaluating the BME680 sensors within a series of IoT device prototypes. Attached you find some images, screenshots and more information on the used setup. Unfortunately, we see two major issues with the results of the sensor and hope you can help us to overcome those.
Furthermore some minor topics:
In the following you see some highlights to elaborate our findings.
All but graph 3 show the IAQ value of 15 sensors over time. Graph 3 shows the average IAQ value as well as the standard deviation. Graph 1 shows the overall measuring period of arround 9 days. There where 3 days where the apartment was empty, as easily can be seen.
Tags a and b show moments where the standard deviation is very high.
Tag c shows the moment, when the apartment was left for 3 days. Tag d shows a small peak in an empty apartment. No explanation here.
Tag e and f show a drastic increase after 2 people enter the apartment. The was no cooking or similar and no human can within 5m of the sensor. But the IAQ value indicates a environment that is “unhealthy for sensitive groups”. This means the sensor tells us that apparently this apartment becomes an unhealthy place only when 2 people are somewhat in the same air. This renders every room unhealthy as soon as a human is close by.
Tag g shows another extrem peak. All sensors saturate arround 250 after there was a soup cooked in the kitchen arround 10m distance. The IAQ value indicates "very unhealthy" air according to the official scale. This obviously is way to drastic.
You find code, the gathered sensor data and setup information attached. We would highly appreciate assistance on these issues, as the results are currently without value for our use case and far away from the performance one can read in the brochure.
graph 1
graph 2
graph 3
graph 4
graph 5
graph 6
graph 7
02-13-2020 03:25 PM - edited 02-13-2020 04:03 PM
First thank-you for the thorough data provided, that is always very helpful for our analysis! I will try to provide feedback for all the different questions, although some of them may be linked.
@Isarvation wrote:
- The devices IAQ value has a very high deviation, hence low accuracy. The standard deviation of the 15 tested sensors is around 50 on multiple occasions. See e.g. tags a and b in the screenshot. The devices where located very close to each other. See image in the attached zip. How can this be? Or in other words: Who can a better accuracy over devices be reached?
graph 1
graph 2
graph 3
Thanks to the logs provided and some processing (in particular to re-align timestamp for analysis), I could already comment on a few points:
For reference, we tried to overlay the mean and ±15% to the IAQ outputs in the graph below which seems quite as expected:
@Isarvation wrote:
- The IAQ values repeatedly peak to “unhealthy” up to “very unhealthy” levels when someone is cooking e.g. only a soup around 10m away from the desk the devices are located on. This seems way to extreme and would render all results useless. Can you help finding a solution on this?
From the wording used in your post, it seems that you may referring to some terms from the 'AQI' definition rather than BSEC's 'IAQ' definition. BSEC provides an indication of the trend of total-VOC concentration in the air. It is not an absolute sensor (e.g. in ppm), but will run a self-calibration process in the background, so that the standard IAQ output will display an IAQ value of 25 in typ. good air, and an IAQ value of 250 in typ. bad air (both index based on the VOC concentration observed during BSEC's history window).
@Isarvation wrote:
- The IAQ value keeps in the range of 25 to 250, but the official scale is bigger. Can you supply information on this? Why are there no smaller values possible? We only see some rare drops below 25.
Smaller value than 25 are possible to obtain, and would be observed if a significantly low tVOC concentration is detected by BSEC. I believe the fact that the data is mostly with 25 to 250 is due to the self-calibration process described above, but we can see for instance that the sensors detected a significant tVOC peak on Jan. 5th, were almost all sensors broke above 250IAQ.
@Isarvation wrote:
- Can you supply us information about the different meaning of “static IAQ” and “IAQ”, please?
Please refer to this post and this Q&A, and let us know if you have any further question.
@Isarvation wrote:
- Can you elaborate the exact difference between the 4d and 28d configuration and when to use which?
This means BSEC will use a time-constant of repectively 4days or 28days for its background calibration.
@Isarvation wrote:
Tag e and f show a drastic increase after 2 people enter the apartment. The was no cooking or similar and no human can within 5m of the sensor. But the IAQ value indicates a environment that is “unhealthy for sensitive groups”. This means the sensor tells us that apparently this apartment becomes an unhealthy place only when 2 people are somewhat in the same air. This renders every room unhealthy as soon as a human is close by.
graph 5
graph 6
I believe this was already somewhat answered above, but it seems that both were actual events detected by the BME680s and indicated as lightly polluted by BSEC.
@Isarvation wrote:
Tag g shows another extrem peak. All sensors saturate arround 250 after there was a soup cooked in the kitchen arround 10m distance. The IAQ value indicates "very unhealthy" air according to the official scale. This obviously is way to drastic.
graph 7
Similarly to the above, I believe BSEC is successfully reporting a peak in VOC concentration it has detected, worse than events at markers e and f, but quite similar to the peak observed the day before. If the smell of the cooking soup could be detected by humans, I believe the recommendation to refresh the air is coherent, and it would most likely be appreciated if such a smell/VOC concentration was not maintained for extended durations.
03-10-2020 10:05 PM
03-11-2020 10:09 AM
@Isarvation wrote:
1. You wrote: "It seems that almost all the devices were reset at the same time at the very beginning of graph 1, while BSEC was already running previously for some." What does this mean? The sensors and the BSEC where resetted before (this is what we are aware of). But how do you mean "BSEC was already running ... for for some"`? What impact does this have and how can we mitigate this?
There are two things here, mainly that each BME680 will stabilize to its surrounding environment (hardware effect of the BME680's sensing technology) and that BSEC will self-calibrate based on the air quality history it has observed (software effect of the BSEC library). There are no specific mitigation procedure expected, but due to these effects it is expected that the sensor-to-sensor deviation (in the standard IAQ output) will improve over time.
@Isarvation wrote:
2. How can you see that BSEC ran prior?
This came simply from the fact that the some of the logs show longer history than others (with timestamps prior to the time window in your snippets). It is possible to guess when a specific sensor (technically BSEC, not the BME680) was reset from its IAQ accuracy.
@Isarvation wrote:
3. How can we reset a BME680 device connected via I²C to complete new state without cutting power from the I²C bus and the ESP8266 device? NOt sure if we forget something here.
Not sure what is meant here. If it has to do with question #1, then no such procedure is expected. If you mean a reset of the sensor's configuration including register map, then it is possible to issue a "soft-reset" command, by writing the value 0xB6 to register address 0xE0 (in I²C mode).
@Isarvation wrote:
4. Regarding the time constant 4d and 28d: Can you give a guidline to choose which one would be be best for a use case and what the main difference in the resulting measurement will look like?
In short, the longer the time constant, the longer events detected by BSEC will influence its outputs and self-calibration. This means a typ. rule of thumb would be that shorter time constants (4d) are nicely suited for highly dynamic environments (e.g. carry-on device/portable air quality tracker), while longer time constants (28d) are nicely suited for stationary applications (e.g. device in a fixed location inside a home).
03-12-2020 10:02 PM - edited 03-12-2020 10:04 PM
Regarding the last section of your answer
In short, the longer the time constant, the longer events detected by BSEC will influence its outputs and self-calibration. This means a typ. rule of thumb would be that shorter time constants (4d) are nicely suited for highly dynamic environments (e.g. carry-on device/portable air quality tracker), while longer time constants (28d) are nicely suited for stationary applications (e.g. device in a fixed location inside a home).
This sounds very similar to the design behind IAQ and static IAQ. So is it either 4d and IAQ versus 28d and static IAQ or is there more to it?
Or in a table:
IAQ | static IAQ | |
4d | mobile environment | ??? |
28d | ??? | static environment |
(FYI: We have some new funny issue with the static IAQ here: https://community.bosch-sensortec.com/t5/MEMS-sensors-forum/BME-680-static-IAQ-very-high-bigger-1000...)