Hi!
I am running the "basic_config_state.ino" from github.com/BSEC-Arduino-library on a NodeMcu esp8266.
The measurement starts then I get a bunch of BME680 warning code: 2 in a row (1200+ lines) and then the measurement resume. This continues for a while until I get BME680 error code : -2
This is my code: https://pastebin.com/mKyxjQtW
I have the latest Arduino 1.8.10, the latest esp8566 library (2.6.1), BSEC library version 1.4.7.4 (downloaded yesterday from github)
The modification explained in github/readme are applied to eagle.app.v6.common.ld and platform.txt
Thanks a lot for your help!
Explanation of the error code and solution found in the forum
○ BME680 error code : -2 = "BME680_E_COM_FAIL" was solved here by replacing Wire.begin() by Wire.begin(I2C_PIN_SDA, I2C_PIN_SCL) but in that case, the code never run. In my case, the code run for a while and then I get this bug si this isn't a fix
○ BME680 warning code : 2 = BME680_W_NO_NEW_DATA
My log
Timestamp [ms], raw temperature [°C], pressure [hPa], raw relative humidity [%], gas [Ohm], IAQ, IAQ accuracy, temperature [°C], relative humidity [%]
7455, 16.96, 98149.37, 67.71, 11152.22, 25.00, 0, 16.85, 67.85
.... measurements continue without bug
124456, 18.81, 98151.98, 64.74, 19586.68, 25.00, 0, 18.71, 62.69
1268 lines of : BME680 warning code : 2
130457, 17.67, 98147.52, 64.48, 18958.91, 25.00, 0, 17.61, 66.40
.... measurements continue without bug
298457, 18.98, 98157.34, 64.36, 20297.18, 25.00, 0, 18.88, 62.17
2500+ lines of BME680 warning code : 2
307458, 17.82, 98152.27, 64.05, 19081.22, 25.00, 0, 17.79, 65.79
.... measurements continue without bug
385457, 18.84, 98157.93, 64.24, 20217.90, 25.00, 0, 18.73, 62.45
1280+ lines of BME680 warning code : 2
391458, 17.82, 98154.58, 64.00, 19512.84, 25.00, 0, 17.76, 65.70
.... measurements continue without bug
475457, 19.16, 98150.90, 64.08, 20975.81, 25.00, 0, 19.05, 61.78
1260+ lines of BME680 warning code : 2
481460, 17.82, 98156.16, 63.77, 19476.13, 25.00, 0, 17.77, 66.06
.... measurements continue without bug
520460, 17.85, 98156.33, 63.82, 18634.68, 25.00, 0, 17.74, 65.90
1300+ lines of BME680 warning code : 2
526462, 17.86, 98155.77, 63.83, 19348.71, 25.00, 0, 17.81, 65.29
.... measurements continue without bug
736462, 18.79, 98162.40, 64.18, 20703.13, 25.00, 0, 18.68, 62.33
1300+ lines of BME680 warning code : 2
742462, 17.74, 98157.47, 63.96, 19736.06, 25.00, 0, 17.69, 65.70
.... measurements continue without bug
823461, 18.85, 98165.16, 64.05, 20933.39, 25.00, 0, 18.74, 62.14
BME680 error code : -2
I also tried with the basic.ino and I get a similar log (but the bug comes sooner):
Timestamp [ms], raw temperature [°C], pressure [hPa], raw relative humidity [%], gas [Ohm], IAQ, IAQ accuracy, temperature [°C], relative humidity [%], Static IAQ, CO2 equivalent, breath VOC equivalent
6092, 17.53, 98178.95, 66.61, 12085.89, 25.00, 0, 17.47, 66.01, 25.00, 500.00, 0.50
.... measurements continue without bug
15093, 18.50, 98189.98, 66.46, 14548.93, 25.00, 0, 18.43, 63.65, 25.00, 500.00, 0.50
1265 lines of : BME680 warning code : 2
21094, 17.37, 98181.46, 65.98, 14268.18, 25.00, 0, 17.34, 67.33, 25.00, 500.00, 0.50
.... measurements continue without bug
102094, 18.74, 98188.98, 64.72, 17909.28, 25.00, 0, 18.67, 62.62, 25.00, 500.00, 0.50
BME680 error code : -2
Something I tried that didn't work
I tried to solve the BME680 warning code : 2 (meaning no new date) by adding a delay just before updateState() in the loop() like this:
delay(60000);
yield();
updateState();
But I still get the BME680 warning code : 2 and BME680 error code : -2 and I even get BSEC warning code : 100 and BSEC error code : -2
○ BSEC Error code : -2 = "BSEC_E_DOSTEPS_VALUELIMITS" which means the value of the input (physical) sensor signal passed to bsec_do_steps() is not in the valid range.The solution proposed here is a fix in the code but I already have it.
○ BSEC warning code : 100 = "BSEC_W_SC_CALL_TIMING_VIOLATION " : Difference between actual and defined sampling intervals of bsec_sensor_control() greater than allowed