sensebox / ardublockly-1

Visual programming for the new senseBox MCU. Based on blockly, extends Arduino code generation and implements senseBox facilities.
https://blockly.sensebox.de/
Apache License 2.0
9 stars 9 forks source link

BME680 block always returns 0 for "Calibration Value" #189

Open hbaecker opened 3 years ago

hbaecker commented 3 years ago

The Block for the sensor BME680 always returns 0 for the "Calibration Value"; together with this the values for IAQ, eVOC and eCO2 remain unchanged, although the sensor should show individual readings for these values after some 20 minutes warming up time.

The issue seems identical to the issue presented here: https://community.bosch-sensortec.com/t5/MEMS-sensors-forum/BME-680-IAQ-stuck-at-25-and-accuracy-always-zero-on-Arduino/m-p/17848#M4735 It seems likely the solution also presented there would work; however I am unable as yet to fix this in blockly. Could someone more up to speed with the fundamentals of blockly help fixing this, please?

I used the senseBox Bosch BME680 with a senseBox MCU. Also attached are these components: OLED-display, WS2812 RGB LED, SD-Bee. Chrome on Windows 10 20H2 (both updated this morning) was used to run senseBox Blockly.

Blockley sketch attached in zip-format. SenseBox_SCD30_BME680_mitLED.zip

Edit 13 Jan 21: I now also used Arduino IDE Version 1.8.13 to compile the following (simplified) script: SenseBox_BMP680.zip The issue remains unchanged... So far I have been unable to compile the script given under: https://community.bosch-sensortec.com/t5/MEMS-sensors-forum/BME-680-IAQ-stuck-at-25-and-accuracy-always-zero-on-Arduino/m-p/17848#M4735

Edit 23 Jan '21: Reference on the web recommended to burn-in this sensor for up to 48 hours. Sensor BME680 has now run for more than 48 hours, so burn-in should be done. Issue still remains: "Calibration Value" is stuck at 0.

mariopesch commented 3 years ago

I've looked at your code and there are a lot of delays which might cause problem. Can you please try the following code on a very simple setup with only the BME680 and the Display?

bme680_display.xml.zip

The while conditional could cause the problem as it prevents the bme680 to refresh data