Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    BME680_driver on Jetson Nano (arm A57)

    gfast2
    Member

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

    ---

    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

     

     

     

    17 REPLIES 17
    Vincent
    Community Moderator

    Re: BME680_driver on Jetson Nano (arm A57)

    From this result,  the pressure and humidity is not measuring correctly. 

    I suggest to check the bus write function first.  

    Does it possible to use logic analyzer to monitor the write activity on the bus?  

    if not ,you can try to read out the register value after you write it for double check. 

    gfast2
    Member

    Re: BME680_driver on Jetson Nano (arm A57)

    Hi @Vicent,

     

    Really appreciate your suggestion about hanging a logic analyzer / Oszi on the I2C line. Huge Tipp.

    I do have both tools on the bench. Because I'm not a real Embedded system developer (I'm a Frontender), and use them only for spartime hobbys. I may have to experience the learning curve with them again. If I have to, I'll. 😅

    ---

    The current new progress is: this python driver from pimoroni works out of the box on this setup, compare to the temperature/humidity read result from other device I'm pretty sure, they some how drive BME680 properly (without a offical way to estimate IAQ😉). So I supose the hardware has done their job correctly. And my question is:

    Even in this situation, a I2C probe with logic analyzer still the correct way to debug? I may have had too deep dive into how frontend developer debug codes for years, & am accumulating such a huge overhead to learn "how to do a real debug with hardware gears". I'm pretty sorry for this, if this is not a proper question at all.

    ---

    For the faster/intuitiver accessibility, I just past my main.c code here, Please point out any questioning point by any chance (like say the write function there), big thanks!🤡

     

     

     

    #include<stdio.h>
    #include<stdint.h>
    #include "./bme680.h"
    #include <sys/ioctl.h>
    #include <stdlib.h>
    #include <fcntl.h>
    #include <linux/i2c-dev.h>
    #include <unistd.h>
    #include <time.h>
    // #include <i2c/smbus.h
    // #include <sys/types.h>
    // #include <sys/stat.h>
    // #include <sys/types.h>
    
    int g_i2cFid; // I2C Linux device handle
    
    // open the Linux device
    void i2cOpen()
    {
      g_i2cFid = open("/dev/i2c-0", O_RDWR);
      if (g_i2cFid < 0) {
        perror("i2cOpen");
        exit(1);
      }
    }
    
    // set the I2C slave address for all subsequent I2C device transfers
    void i2cSetAddress(int address)
    {
      if (ioctl(g_i2cFid, I2C_SLAVE, address) < 0) {
        perror("i2cSetAddress");
        exit(1);
      }
    }
    
    /*
     * Read operation in either I2C or SPI
     *
     * param[in]        dev_addr        I2C or SPI device address
     * param[in]        reg_addr        register address
     * param[out]       reg_data_ptr    pointer to the memory to be used to store
     *                                  the read data
     * param[in]        data_len        number of bytes to be read
     *
     * return          result of the bus communication function
     */
    int8_t bus_read(uint8_t dev_addr, uint8_t reg_addr, uint8_t *reg_data_ptr,
        uint16_t data_len)
    {
      int8_t rslt = 0; /* Return 0 for Success, non-zero for failure */
    
      uint8_t reg[1];
      reg[0]=reg_addr;
    
      if (write(g_i2cFid, reg, 1) != 1) {
        perror("user_i2c_read_reg");
        rslt = 1;
      }
    
      if (read(g_i2cFid, reg_data_ptr, data_len) != data_len) {
        perror("user_i2c_read_data");
        rslt = 1;
      }
    
      return rslt;
    }
    
    /*
     * Write operation in either I2C or SPI
     *
     * param[in]        dev_addr        I2C or SPI device address
     * param[in]        reg_addr        register address
     * param[in]        reg_data_ptr    pointer to the data to be written
     * param[in]        data_len        number of bytes to be written
     *
     * return          result of the bus communication function
     */
    int8_t bus_write(uint8_t dev_addr, uint8_t reg_addr, uint8_t *reg_data_ptr,
        uint16_t data_len)
    {
      int8_t rslt = 0; /* Return 0 for Success, non-zero for failure */
    
      uint8_t reg[16];
      reg[0]=reg_addr;
      int i;
    
      for (i=1; i<data_len+1; i++)
        reg[i] = reg_data_ptr[i-1];
    
      if (write(g_i2cFid, reg, data_len+1) != data_len+1) {
        perror("user_i2c_write");
        rslt = 1;
        exit(1);
      }
    
      return rslt;
    }
    
    /*
     * System specific implementation of sleep function
     *
     * param[in]       t_ms    time in milliseconds
     *
     * return          none
     */
    void _sleep(uint32_t t_ms)
    {
      struct timespec ts;
      ts.tv_sec = 0;
      /* mod because nsec must be in the range 0 to 999999999 */
      ts.tv_nsec = (t_ms % 1000) * 1000000L;
      nanosleep(&ts, NULL);
    }
    
    int main() {
      printf("\n+--- BME680 ---+\n");
    
      i2cOpen();
      i2cSetAddress(BME680_I2C_ADDR_SECONDARY);
    
      // Config Sensor basics
      struct bme680_dev gas_sensor;
      gas_sensor.dev_id = BME680_I2C_ADDR_SECONDARY;
      gas_sensor.intf = BME680_I2C_INTF;
      gas_sensor.read = bus_read;
      gas_sensor.write = bus_write;
      gas_sensor.delay_ms = _sleep;
      gas_sensor.amb_temp = 15;
    
      int8_t rslt = BME680_OK;
    
      // config sensor into forced mode
      uint8_t set_required_settings;
    
      /* Set the temperature, pressure and humidity settings */
      gas_sensor.tph_sett.os_hum = BME680_OS_2X;
      gas_sensor.tph_sett.os_pres = BME680_OS_4X;
      gas_sensor.tph_sett.os_temp = BME680_OS_8X;
      gas_sensor.tph_sett.filter = BME680_FILTER_SIZE_3;
    
      /* Set the remaining gas sensor settings and link the heating profile */
      gas_sensor.gas_sett.run_gas = BME680_ENABLE_GAS_MEAS;
      /* Create a ramp heat waveform in 3 steps */
      gas_sensor.gas_sett.heatr_temp = 320; /* degree Celsius */
      gas_sensor.gas_sett.heatr_dur = 150; /* milliseconds */
    
      /* Select the power mode */
      /* Must be set before writing the sensor configuration */
      gas_sensor.power_mode = BME680_FORCED_MODE; 
    
      /* Set the required sensor settings needed */
      set_required_settings = BME680_OST_SEL | BME680_OSP_SEL | BME680_OSH_SEL | BME680_FILTER_SEL 
        | BME680_GAS_SENSOR_SEL;
    
      /* Set the desired sensor configuration */
      rslt = bme680_set_sensor_settings(set_required_settings,&gas_sensor);
    
      /* Set the power mode */
      rslt = bme680_set_sensor_mode(&gas_sensor);
    
      // Init
      rslt = bme680_init(&gas_sensor);
    
      /* Get the total measurement duration so as to sleep or wait till the
       * measurement is complete */
      uint16_t meas_period;
      bme680_get_profile_dur(&meas_period, &gas_sensor);
    
      struct bme680_field_data data;
    
      while(1)
      {
        _sleep(meas_period); /* Delay till the measurement is ready */
    
        rslt = bme680_get_sensor_data(&data, &gas_sensor);
    
        printf("Status: %d Index: %d T: %.2f degC, P: %.2f hPa, H %.2f %%rH ", 
          data.status, 
          data.meas_index, 
          data.temperature / 100.0f, data.pressure / 100.0f,
          data.humidity / 1000.0f );
        /* Avoid using measurements from an unstable heating setup */
        if(data.status & BME680_GASM_VALID_MSK)
          printf(", G: %d ohms", data.gas_resistance);
    
        printf("\r\n");
    
        /* Trigger the next measurement if you would like to read data out continuously */
        if (gas_sensor.power_mode == BME680_FORCED_MODE) {
          rslt = bme680_set_sensor_mode(&gas_sensor);
        }
      }
    
      return rslt;
    }

     

     

     

    Vincent
    Community Moderator

    Re: BME680_driver on Jetson Nano (arm A57)

    From your code,  i only see one issue: 

    you should  call bme680_init before bme680_set_sensor_setting.

    gas_sensor.dev_id = BME680_I2C_ADDR_SECONDARY;
      gas_sensor.intf = BME680_I2C_INTF;
      gas_sensor.read = bus_read;
      gas_sensor.write = bus_write;
      gas_sensor.delay_ms = _sleep;
      gas_sensor.amb_temp = 15;
    
      int8_t rslt = BME680_OK;
    
      // config sensor into forced mode
      uint8_t set_required_settings;
    
      rslt = bme680_init(&gas_sensor);
    
        if (rslt != BME680_OK)
        {
            return rslt;
        }
    
      /* Set the temperature, pressure and humidity settings */
      gas_sensor.tph_sett.os_hum = BME680_OS_2X;
      gas_sensor.tph_sett.os_pres = BME680_OS_4X;
      gas_sensor.tph_sett.os_temp = BME680_OS_8X;
      gas_sensor.tph_sett.filter = BME680_FILTER_SIZE_3;
    
    gfast2
    Member

    Re: BME680_driver on Jetson Nano (arm A57)

    Pure magic, It just works as we expected! Huge progress already, really love this compact sensor, I've learned ton from it. This tipp IS ONLY THE tip we need. My Jetson nano can read the result beautifully!

    But (as always), we can find he temperature read go slowly ramp up, I supposed it's caused by gas-sensor's heat plat. Which will be calibrated by BESEC library if I use, I believe. So thanks again. I hope I can make some other progress. If any, I'll make sure to leave more detail here.

    commit: https://github.com/Gfast2/Bosch_BME680_Jetson/commit/551c310fb1e048e27db275ce414179ee5c658934

    The "ramp up" temperature read:

    +--- BME680 ---+
    Status: 160 Index: 0 T: 19.56 degC, P: 1007.33 hPa, H 61.49 %rH , G: 28266 ohms
    Status: 176 Index: 0 T: 19.69 degC, P: 1007.26 hPa, H 61.54 %rH , G: 4170 ohms
    Status: 176 Index: 0 T: 20.03 degC, P: 1007.28 hPa, H 61.64 %rH , G: 5158 ohms
    Status: 176 Index: 0 T: 20.45 degC, P: 1007.24 hPa, H 61.74 %rH , G: 6176 ohms
    Status: 176 Index: 0 T: 20.88 degC, P: 1007.24 hPa, H 61.77 %rH , G: 7364 ohms
    Status: 176 Index: 0 T: 21.29 degC, P: 1007.22 hPa, H 61.79 %rH , G: 8611 ohms
    Status: 176 Index: 0 T: 21.66 degC, P: 1007.24 hPa, H 61.80 %rH , G: 9871 ohms
    Status: 176 Index: 0 T: 21.98 degC, P: 1007.24 hPa, H 61.76 %rH , G: 11206 ohms
    Status: 176 Index: 0 T: 22.27 degC, P: 1007.24 hPa, H 61.69 %rH , G: 12519 ohms
    Status: 176 Index: 0 T: 22.52 degC, P: 1007.22 hPa, H 61.59 %rH , G: 13896 ohms
    Status: 176 Index: 0 T: 22.74 degC, P: 1007.22 hPa, H 61.48 %rH , G: 15252 ohms
    Status: 176 Index: 0 T: 22.94 degC, P: 1007.24 hPa, H 61.36 %rH , G: 16635 ohms
    Status: 176 Index: 0 T: 23.12 degC, P: 1007.26 hPa, H 61.21 %rH , G: 17922 ohms
    Status: 176 Index: 0 T: 23.27 degC, P: 1007.20 hPa, H 61.06 %rH , G: 19388 ohms
    Status: 176 Index: 0 T: 23.41 degC, P: 1007.24 hPa, H 60.90 %rH , G: 20721 ohms
    Status: 176 Index: 0 T: 23.53 degC, P: 1007.20 hPa, H 60.72 %rH , G: 22019 ohms
    Status: 176 Index: 0 T: 23.65 degC, P: 1007.22 hPa, H 60.56 %rH , G: 23411 ohms
    Status: 176 Index: 0 T: 23.76 degC, P: 1007.18 hPa, H 60.35 %rH , G: 24783 ohms
    Status: 176 Index: 0 T: 23.85 degC, P: 1007.18 hPa, H 60.16 %rH , G: 25940 ohms
    Status: 176 Index: 0 T: 23.95 degC, P: 1007.20 hPa, H 59.99 %rH , G: 27315 ohms
    Status: 176 Index: 0 T: 24.03 degC, P: 1007.20 hPa, H 59.78 %rH , G: 28380 ohms
    Status: 176 Index: 0 T: 24.11 degC, P: 1007.18 hPa, H 59.59 %rH , G: 29593 ohms
    Status: 176 Index: 0 T: 24.18 degC, P: 1007.22 hPa, H 59.39 %rH , G: 31074 ohms
    Status: 176 Index: 0 T: 24.25 degC, P: 1007.22 hPa, H 59.21 %rH , G: 31992 ohms
    Status: 176 Index: 0 T: 24.32 degC, P: 1007.20 hPa, H 59.01 %rH , G: 33278 ohms
    Status: 176 Index: 0 T: 24.39 degC, P: 1007.20 hPa, H 58.80 %rH , G: 34643 ohms
    Status: 176 Index: 0 T: 24.46 degC, P: 1007.20 hPa, H 58.61 %rH , G: 35428 ohms
    Status: 176 Index: 0 T: 24.52 degC, P: 1007.18 hPa, H 58.40 %rH , G: 36187 ohms
    Status: 176 Index: 0 T: 24.58 degC, P: 1007.16 hPa, H 58.21 %rH , G: 37471 ohms
    Status: 176 Index: 0 T: 24.64 degC, P: 1007.16 hPa, H 58.03 %rH , G: 38217 ohms
    Status: 176 Index: 0 T: 24.70 degC, P: 1007.14 hPa, H 57.83 %rH , G: 39578 ohms
    Status: 176 Index: 0 T: 24.76 degC, P: 1007.18 hPa, H 57.66 %rH , G: 40489 ohms
    Status: 176 Index: 0 T: 24.81 degC, P: 1007.16 hPa, H 57.45 %rH , G: 41402 ohms
    Status: 176 Index: 0 T: 24.87 degC, P: 1007.18 hPa, H 57.27 %rH , G: 42527 ohms
    Status: 176 Index: 0 T: 24.92 degC, P: 1007.18 hPa, H 57.08 %rH , G: 42960 ohms
    Status: 176 Index: 0 T: 24.97 degC, P: 1007.16 hPa, H 56.88 %rH , G: 43807 ohms
    Status: 176 Index: 0 T: 25.02 degC, P: 1007.18 hPa, H 56.72 %rH , G: 45069 ohms
    Status: 176 Index: 0 T: 25.07 degC, P: 1007.16 hPa, H 56.55 %rH , G: 46102 ohms
    Status: 176 Index: 0 T: 25.12 degC, P: 1007.16 hPa, H 56.37 %rH , G: 46766 ohms
    Status: 176 Index: 0 T: 25.17 degC, P: 1007.16 hPa, H 56.17 %rH , G: 47370 ohms
    Status: 176 Index: 0 T: 25.22 degC, P: 1007.16 hPa, H 56.01 %rH , G: 48292 ohms
    Status: 176 Index: 0 T: 25.26 degC, P: 1007.14 hPa, H 55.83 %rH , G: 49135 ohms
    Status: 176 Index: 0 T: 25.31 degC, P: 1007.16 hPa, H 55.65 %rH , G: 49714 ohms
    Status: 176 Index: 0 T: 25.35 degC, P: 1007.16 hPa, H 55.49 %rH , G: 50548 ohms
    Status: 176 Index: 0 T: 25.40 degC, P: 1007.20 hPa, H 55.32 %rH , G: 51379 ohms
    Status: 176 Index: 0 T: 25.44 degC, P: 1007.18 hPa, H 55.16 %rH , G: 51949 ohms
    Status: 176 Index: 0 T: 25.48 degC, P: 1007.16 hPa, H 54.99 %rH , G: 52695 ohms
    Status: 176 Index: 0 T: 25.53 degC, P: 1007.16 hPa, H 54.83 %rH , G: 53193 ohms
    Status: 176 Index: 0 T: 25.57 degC, P: 1007.18 hPa, H 54.67 %rH , G: 54010 ohms
    Status: 176 Index: 0 T: 25.61 degC, P: 1007.16 hPa, H 54.49 %rH , G: 54711 ohms
    Status: 176 Index: 0 T: 25.64 degC, P: 1007.16 hPa, H 54.33 %rH , G: 55357 ohms
    Status: 176 Index: 0 T: 25.68 degC, P: 1007.16 hPa, H 54.18 %rH , G: 56243 ohms
    Status: 176 Index: 0 T: 25.72 degC, P: 1007.16 hPa, H 54.03 %rH , G: 56772 ohms
    Status: 176 Index: 0 T: 25.76 degC, P: 1007.16 hPa, H 53.90 %rH , G: 57507 ohms
    Status: 176 Index: 0 T: 25.80 degC, P: 1007.16 hPa, H 53.74 %rH , G: 58142 ohms
    Status: 176 Index: 0 T: 25.84 degC, P: 1007.20 hPa, H 53.57 %rH , G: 58667 ohms
    Status: 176 Index: 0 T: 25.87 degC, P: 1007.20 hPa, H 53.42 %rH , G: 59285 ohms
    Status: 176 Index: 0 T: 25.91 degC, P: 1007.16 hPa, H 53.27 %rH , G: 59874 ohms
    Status: 176 Index: 0 T: 25.94 degC, P: 1007.16 hPa, H 53.12 %rH , G: 60475 ohms
    Status: 176 Index: 0 T: 25.98 degC, P: 1007.16 hPa, H 52.97 %rH , G: 61355 ohms
    Status: 176 Index: 0 T: 26.01 degC, P: 1007.16 hPa, H 52.83 %rH , G: 61849 ohms
    Status: 176 Index: 0 T: 26.05 degC, P: 1007.14 hPa, H 52.69 %rH , G: 62077 ohms
    Status: 176 Index: 0 T: 26.08 degC, P: 1007.14 hPa, H 52.54 %rH , G: 62770 ohms
    Status: 176 Index: 0 T: 26.11 degC, P: 1007.18 hPa, H 52.39 %rH , G: 63430 ohms
    Status: 176 Index: 0 T: 26.14 degC, P: 1007.14 hPa, H 52.26 %rH , G: 64008 ohms
    Status: 176 Index: 0 T: 26.17 degC, P: 1007.16 hPa, H 52.11 %rH , G: 64251 ohms
    Status: 176 Index: 0 T: 26.21 degC, P: 1007.16 hPa, H 51.98 %rH , G: 65195 ohms
    Status: 176 Index: 0 T: 26.24 degC, P: 1007.14 hPa, H 51.83 %rH , G: 65549 ohms
    Status: 176 Index: 0 T: 26.27 degC, P: 1007.14 hPa, H 51.70 %rH , G: 66114 ohms
    Status: 176 Index: 0 T: 26.30 degC, P: 1007.14 hPa, H 51.56 %rH , G: 66322 ohms
    Status: 176 Index: 0 T: 26.33 degC, P: 1007.16 hPa, H 51.45 %rH , G: 67597 ohms
    Status: 176 Index: 0 T: 26.36 degC, P: 1007.14 hPa, H 51.32 %rH , G: 67760 ohms
    Status: 176 Index: 0 T: 26.39 degC, P: 1007.16 hPa, H 51.18 %rH , G: 68033 ohms
    Status: 176 Index: 0 T: 26.42 degC, P: 1007.18 hPa, H 51.02 %rH , G: 68531 ohms
    Status: 176 Index: 0 T: 26.44 degC, P: 1007.18 hPa, H 50.89 %rH , G: 68979 ohms
    Status: 176 Index: 0 T: 26.47 degC, P: 1007.18 hPa, H 50.77 %rH , G: 69662 ohms
    Status: 176 Index: 0 T: 26.49 degC, P: 1007.16 hPa, H 50.65 %rH , G: 70242 ohms
    Status: 176 Index: 0 T: 26.52 degC, P: 1007.14 hPa, H 50.53 %rH , G: 70891 ohms
    Status: 176 Index: 0 T: 26.54 degC, P: 1007.16 hPa, H 50.41 %rH , G: 70654 ohms
    Status: 176 Index: 0 T: 26.57 degC, P: 1007.16 hPa, H 50.26 %rH , G: 71492 ohms
    Status: 176 Index: 0 T: 26.59 degC, P: 1007.14 hPa, H 50.15 %rH , G: 71553 ohms
    Status: 176 Index: 0 T: 26.62 degC, P: 1007.12 hPa, H 50.04 %rH , G: 72412 ohms
    Status: 176 Index: 0 T: 26.64 degC, P: 1007.14 hPa, H 49.93 %rH , G: 73103 ohms
    Status: 176 Index: 0 T: 26.66 degC, P: 1007.14 hPa, H 49.81 %rH , G: 73039 ohms
    Status: 176 Index: 0 T: 26.69 degC, P: 1007.16 hPa, H 49.69 %rH , G: 73549 ohms
    Status: 176 Index: 0 T: 26.71 degC, P: 1007.14 hPa, H 49.59 %rH , G: 74000 ohms
    Status: 176 Index: 0 T: 26.74 degC, P: 1007.12 hPa, H 49.46 %rH , G: 74854 ohms
    Status: 176 Index: 0 T: 26.76 degC, P: 1007.14 hPa, H 49.35 %rH , G: 74589 ohms
    Status: 176 Index: 0 T: 26.79 degC, P: 1007.14 hPa, H 49.24 %rH , G: 75120 ohms
    Status: 176 Index: 0 T: 26.81 degC, P: 1007.14 hPa, H 49.14 %rH , G: 75456 ohms
    Status: 176 Index: 0 T: 26.83 degC, P: 1007.12 hPa, H 49.03 %rH , G: 76000 ohms
    Status: 176 Index: 0 T: 26.85 degC, P: 1007.12 hPa, H 48.92 %rH , G: 76344 ohms
    Status: 176 Index: 0 T: 26.88 degC, P: 1007.12 hPa, H 48.83 %rH , G: 76900 ohms
    Status: 176 Index: 0 T: 26.89 degC, P: 1007.12 hPa, H 48.71 %rH , G: 77182 ohms
    Status: 176 Index: 0 T: 26.92 degC, P: 1007.10 hPa, H 48.62 %rH , G: 77394 ohms
    Status: 176 Index: 0 T: 26.94 degC, P: 1007.10 hPa, H 48.50 %rH , G: 77751 ohms
    Status: 176 Index: 0 T: 26.96 degC, P: 1007.10 hPa, H 48.41 %rH , G: 77966 ohms
    Status: 176 Index: 0 T: 26.97 degC, P: 1007.12 hPa, H 48.33 %rH , G: 78401 ohms
    Status: 176 Index: 0 T: 26.99 degC, P: 1007.12 hPa, H 48.20 %rH , G: 78620 ohms
    Status: 176 Index: 0 T: 27.01 degC, P: 1007.14 hPa, H 48.12 %rH , G: 79062 ohms
    Status: 176 Index: 0 T: 27.03 degC, P: 1007.14 hPa, H 48.02 %rH , G: 79434 ohms
    Status: 176 Index: 0 T: 27.05 degC, P: 1007.14 hPa, H 47.92 %rH , G: 79734 ohms
    Status: 176 Index: 0 T: 27.07 degC, P: 1007.14 hPa, H 47.83 %rH , G: 80189 ohms
    Status: 176 Index: 0 T: 27.08 degC, P: 1007.14 hPa, H 47.74 %rH , G: 80189 ohms
    Status: 176 Index: 0 T: 27.10 degC, P: 1007.16 hPa, H 47.65 %rH , G: 80495 ohms
    Status: 176 Index: 0 T: 27.12 degC, P: 1007.16 hPa, H 47.58 %rH , G: 80959 ohms
    Status: 176 Index: 0 T: 27.14 degC, P: 1007.16 hPa, H 47.50 %rH , G: 81270 ohms
    Status: 176 Index: 0 T: 27.16 degC, P: 1007.14 hPa, H 47.41 %rH , G: 81427 ohms
    Status: 176 Index: 0 T: 27.18 degC, P: 1007.14 hPa, H 47.33 %rH , G: 81743 ohms
    Status: 176 Index: 0 T: 27.19 degC, P: 1007.12 hPa, H 47.25 %rH , G: 82141 ohms
    Status: 176 Index: 0 T: 27.21 degC, P: 1007.10 hPa, H 47.16 %rH , G: 82381 ohms
    Status: 176 Index: 0 T: 27.23 degC, P: 1007.12 hPa, H 47.09 %rH , G: 82543 ohms
    Status: 176 Index: 0 T: 27.24 degC, P: 1007.14 hPa, H 47.01 %rH , G: 83112 ohms
    Status: 176 Index: 0 T: 27.26 degC, P: 1007.16 hPa, H 46.94 %rH , G: 83358 ohms
    Status: 176 Index: 0 T: 27.27 degC, P: 1007.12 hPa, H 46.87 %rH , G: 83606 ohms
    Status: 176 Index: 0 T: 27.29 degC, P: 1007.14 hPa, H 46.80 %rH , G: 83939 ohms
    Status: 176 Index: 0 T: 27.31 degC, P: 1007.14 hPa, H 46.74 %rH , G: 84867 ohms
    Status: 176 Index: 0 T: 27.33 degC, P: 1007.12 hPa, H 46.68 %rH , G: 84612 ohms
    Status: 176 Index: 0 T: 27.35 degC, P: 1007.12 hPa, H 46.59 %rH , G: 84697 ohms
    Status: 176 Index: 0 T: 27.37 degC, P: 1007.12 hPa, H 46.53 %rH , G: 85038 ohms
    Status: 176 Index: 0 T: 27.38 degC, P: 1007.12 hPa, H 46.47 %rH , G: 84867 ohms
    Status: 176 Index: 0 T: 27.40 degC, P: 1007.12 hPa, H 46.39 %rH , G: 84953 ohms
    Status: 176 Index: 0 T: 27.41 degC, P: 1007.12 hPa, H 46.34 %rH , G: 85643 ohms

      

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist