11-13-2020 11:05 AM
Hi Folks,
Long story short ->
I'd like to let this sensor (sitting on "CJMCU-680" breakout) up & running on a Jetson Nano through I2C. My very 1st milestone is use BME680_driver.
Nothing really special. The breakout board choosed I2C Address 0x77. This should be the most "special" one I guess. 😄
---
Through
i2cdetect -y -r 0
I know the sensor is there, and I did got dump from i2cdump under this address as well. I can read some registers without changes. (To exclude possible hardware issue)
---
I got many input from repo (Bus read / write functions): bsec_bme680_linux
Could any one gives me a idea what can be wrong with my mini implementation? My Repo: Bosch_BME680_Jetson
The current symptom is: It only read out the values as follow:
Status: 128 Index: 255 T: 33.87 degC, P: 679.49 hPa, H 100.00 %rH
Solved! Go to Solution.
11-28-2020 06:22 AM
Hi Vincent,
Thanks a lot for your tipps and efforts. Here is the logs that I made from changes by this commit: Commit
(P.s.: Home-Office due to Corona and winter in Germany together is hard, I feel less productive. Sorry for response late)
+--- BME680 Calib Parameters ---+
par_h1: 0x0353
par_h2: 0x03e4
par_h3: 000000
par_h4: 0x002d
par_h5: 0x0014
par_h6: 0x0078
par_h7: 0xffffff9c
par_gh1: 0xffffffd5
par_gh2: 0xffffe6e9
par_gh3: 0x0012
par_t1: 0x65c9
par_t2: 0x6754
par_t3: 0x0003
par_p1: 0x8903
par_p2: 0xffffd76c
par_p3: 0x0058
par_p4: 0x243f
par_p5: 0xfffffef8
par_p6: 0x001e
par_p7: 0x0017
par_p8: 0xfffffe8f
par_p9: 0xfffff237
par_p10: 0x001e
11-28-2020 06:41 AM
Thanks for the calibration value, can you also provide your raw temperature value from register?
11-28-2020 09:55 AM
If the "bme680_dev.amb_temp" is the wished field, I read
amb_temp: 0x000f
by the change through this Commit .
Thanks!
12-01-2020 06:09 AM
No, amb_temp is the temperature offset you set as input to the BSEC lib.
It is not the raw temperature value you read from sensor.
The value should be from register 0x22 - 0x24 from sensor and use sensor id "BSEC_INPUT_TEMPERATURE" as input parameters to BSEC.
i found one value from your previous register dump, which is 0x7668c. then i put into my formula to get temperature value 19.2 degree.
Here is much lower than 33 degrees which you got.
But if you have set offset as 15 degrees while calling BSEC, then BSEC output temperature will be 19.2 + 15 = 34.2 degree which seems match to your output.
So, please try to set amb_temp as 0 at your side then test again.
12-01-2020 10:11 AM
Hi Vicent,
really really Appreciate you attension here. I just change ambient temperature reference from 15 to 0, recompile and let code works for about 1/2 hour. the result is something like this:
Status: 176 Index: 0 T: 29.74 degC, P: 1011.69 hPa, H 32.47 %rH , G: 134248 ohms
Status: 176 Index: 0 T: 29.74 degC, P: 1011.69 hPa, H 32.46 %rH , G: 135108 ohms
Status: 176 Index: 0 T: 29.74 degC, P: 1011.69 hPa, H 32.46 %rH , G: 134569 ohms
Status: 176 Index: 0 T: 29.74 degC, P: 1011.71 hPa, H 32.46 %rH , G: 135000 ohms
Now my best guess is may be I have to use BESEC. Without it, the BME680_driver would do nothing really meaningful. Is that kinda right?