Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BME680 questionable accuracy and comparability over devices

    BME680 questionable accuracy and comparability over devices

    Isarvation
    Member

    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.

    1. 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?
    2. 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?

    Furthermore some minor topics:

    • 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.
    • Can you supply us information about the different meaning of “static IAQ” and “IAQ”, please?
    • Can you elaborate the exact difference between the 4d and 28d configuration and when to use which?

    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 1Report-BME-ELK- 001-Overview.png

    graph 2 Report-BME-ELK- 002-LargeStdDev.png

    graph 3Report-BME-ELK- 003-LargeStdDev.png

    graph 4 Report-BME-ELK- 004-EmptyPeriod.png

    graph 5Report-BME-ELK- 005-RiseAfterReturn.png

    graph 6Report-BME-ELK- 006-RiseAfterReturnZoom.png

    graph 7Report-BME-ELK- 007-InsaneButUsualDinnerPeak.png

     

    5 REPLIES 5

    handytech
    Community Moderator
    Community Moderator

    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:
    1. 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 1Report-BME-ELK- 001-Overview.png

    graph 2 Report-BME-ELK- 002-LargeStdDev.png

    graph 3Report-BME-ELK- 003-LargeStdDev.png


    Thanks to the logs provided and some processing (in particular to re-align timestamp for analysis), I could already comment on a few points:

    • We specify a sensor-to-sensor for the standard IAQ to IAQ±15%. Note that is can only be expected for stabilized sensors sharing the same history. In lab environment, we estimated that reliable detection of air quality changes are reached already after a day, while lowest sensor-to-sensor deviation is reach in the worst-case scenario after ~2 weeks.
    • 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. Operating the devices in different operating modes and/or different location prior to the plot could also have an impact on the overall accuracy shown here.
    • From your data, we can see that BSEC was reset just over a day prior to marker a, thus we can see that the sensors react to the same events, but lowest sensor-to-sensor may not have been achieved.
    • More-over at marker b, we can see that sensor-182e32 was reset during the afternoon of Jan. 5th, therefore at least the purple peak in graph 1 can be expected.
    • As indication, it seems that sensor-182e4d and sensor-30451c are typ. the two other outliers, and at least for sensor-182e4d we can see in the raw gas data that the device reacted slightly differently than the other, which could be due to several conditions (e.g. from prior history as mentioned above to slightly different local conditions, ...).

    For reference, we tried to overlay the mean and ±15% to the IAQ outputs in the graph below which seems quite as expected:

    s2s_dev.png


    @Isarvation wrote:
    1. 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 5Report-BME-ELK- 005-RiseAfterReturn.png

    graph 6Report-BME-ELK- 006-RiseAfterReturnZoom.png


    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 7Report-BME-ELK- 007-InsaneButUsualDinnerPeak.png


    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.

    Thank you for you thorow response to our report. Many riddles are solved now.
     
    But some questions arose by your message.
     
    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?
     
    2. How can you see that BSEC ran prior?
     
    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.
     
    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?
     
     

    handytech
    Community Moderator
    Community Moderator

    @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).

    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:

     IAQstatic IAQ
    4dmobile 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...)

     

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist