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. 😄
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.
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
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.
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?