Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BME680_driver on Jetson Nano (arm A57)

    BME680_driver on Jetson Nano (arm A57)


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





    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




    17 REPLIES 17

    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


    Community Moderator
    Community Moderator

    Thanks for the calibration value,  can you also provide your raw temperature value from register?


    If the "bme680_dev.amb_temp" is the wished field, I read 

    amb_temp: 0x000f

    by the change through this Commit .



    Community Moderator
    Community Moderator

    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.  

    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?