05-16-2019 04:22 PM
Hello,
I'm using the BME680 and I'm facing a problem with GAS Resistance measurements.
Here is my setup:
I first thought everything worked fine as I'm getting Temp,Pressure and RH values nicely correlating with measured environment, but even after a few days (weeks) of running measurements, I could still not make any sense of IAQ values.
It turns out that the GAS_RAW value is stuck to a high value corresponding to an adc reading of zero (gas_r=0 and gas_range =0).
I checked requested heater temperature and time (given by BSEC) and it looks correct (320 C/ 197ms in 3 seconds "LP" setup).
When fetching results I always get gas_valid and heat_stab bits set, thus the measurement seems to be correctly performed.
I traced the first seconds of measurements of a brand new BM680 and I saw that adc reading are actually moving:
18:46:07:642 [DRV 3] calc_gas_resistance: adc:392 range:11 -> 4291.02
18:46:10:634 [DRV 3] calc_gas_resistance: adc:960 range:9 -> 11720.93
18:46:13:633 [DRV 3] calc_gas_resistance: adc:379 range:8 -> 34713.96
18:46:16:635 [DRV 3] calc_gas_resistance: adc:413 range:7 -> 68053.58
18:46:19:638 [DRV 3] calc_gas_resistance: adc:616 range:6 -> 116028.30
18:46:22:641 [DRV 3] calc_gas_resistance: adc:619 range:5 -> 229796.34
18:46:25:643 [DRV 3] calc_gas_resistance: adc:839 range:4 -> 401811.03
18:46:28:646 [DRV 3] calc_gas_resistance: adc:309 range:4 -> 588290.75
18:46:31:648 [DRV 3] calc_gas_resistance: adc:879 range:3 -> 785630.88
18:46:34:651 [DRV 3] calc_gas_resistance: adc:533 range:3 -> 984626.62
18:46:37:653 [DRV 3] calc_gas_resistance: adc:310 range:3 -> 1176727.88
18:46:40:659 [DRV 3] calc_gas_resistance: adc:187 range:3 -> 1318627.50
18:46:43:658 [DRV 3] calc_gas_resistance: adc:80 range:3 -> 1473165.38
18:46:46:661 [DRV 3] calc_gas_resistance: adc:860 range:2 -> 1588895.38
18:46:49:664 [DRV 3] calc_gas_resistance: adc:687 range:2 -> 1769736.62
....
18:48:22:741 [DRV 3] calc_gas_resistance: adc:825 range:0 -> 6489747.00
....
18:49:34:803 [DRV 3] calc_gas_resistance: adc:366 range:0 -> 8974145.00
....
18:50:13:837 [DRV 3] calc_gas_resistance: adc:221 range:0 -> 10208728.00
....
18:56:32:915 [DRV 3] calc_gas_resistance: adc:0 range:0 -> 12946861.00
but after a few minutes the values reaches 0 and stays stuck. I understand ther is a "burn-in" phase for MOX sensors, but I guess it should not "burn" down to zero...
After unplugging/unpowering the BM680 for a while and restarting, I get back some "life" on adc measurements (starting lower than the very first time though), but following the same steep curve to zero. I tried 4 different boards with same result.
Does it ring a bell to anyone ? What could be my problem here ? I can give more detailed info about registers setup (even though I'm just following BSEC requests).
Regards,
Laurent
06-21-2019 04:20 AM
I'm not sure if it is even a help but you might consider the tape used to mask off things like gold fingers. If your volume is enough I'm sure the tape mfg or a value added supplier can precut "dots".
I was also wondering if putting tape over the hole in the sensor and heating the assembly might risk over pressuring the pressure portion of the sensor.
06-21-2019 04:24 AM
If you haven't already, I would go back to DigiKey. If for no other reason than so others don't have to suffer a similar issue.
John
06-21-2019 04:53 PM
Hello,
I actually had a phonecall with my PCBA and it turns-out that he used vapor-phase oven to "cook" this proto batch.
As it's stated in the HSMI document not to employ vapor-phase oven, I guess I have my culprit... Note that one (out of 20) of my BME680 apparently survived the process and is working normally.
So I'll make a new batch with proper reflow and see how it goes.
06-28-2019 12:00 PM
Hello,
Just a last update on this thread: I got a new batch of my BME680 daughtercard (no vapor-phase this time), and it looks good.
Thanks again for your support.
Laurent
11-15-2019 04:16 PM
Hello,
Im having this same problem with my board with BME680.
I have included the BSEC libraries, the physical sensors outputs are all good except gas resistance, this value is always 12917166, same for different boards.
I have check in different boards (two different batches), some of this boards gas output were changing values at the beggining but after a couple of hours all of them returned a static output like the others...
Could it be a timing problem? I would like to be sure if this behaviour is a physical problem or a configuration problem.
Thanks