Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BME688 giving the same gas resistance value as 64000

    BME688 giving the same gas resistance value as 64000

    Vamsi1
    New Poster

    Hello,

    I have this BME688 chip integrated with nrf9160 processor using I2C. Right now, Im just using the BME688 sensorAPI library on git to get the gas resistance value. I tested the chip to check for VOC's exposing it to an exhaust of an automobile, but it keeps giving the same resistance of 64000. The temperature value seems to be changing (not using the pressure and humidity function of the sensor yet). Can someone explain what is happening:

    This is the code of the math involved in calculating resistance:

    static void bme688_calc_gas_resistance(struct bme688_data *data, uint8_t gas_range,
                           uint16_t adc_gas_res)
    {
        uint32_t var1;
        int32_t var2;

        var1 = (uint32_t)(262144) >> gas_range;
        var2 = (int32_t)adc_gas_res - (int32_t)512;
        var2 *= (int32_t)3;
        var2 += (int32_t)4096;
        data->calc_gas_resistance = ((uint32_t)10000 * var1) / (uint32_t)var2;

    }
    1 REPLY 1

    BSTRobin
    Community Moderator
    Community Moderator

    Hi Vamsi1,

    You could strictly refer BME68X sensor API, and see the gas resistance value.

    /* This internal API is used to read variant ID information from the register */
    static int8_t read_variant_id(struct bme68x_dev *dev)
    {
    int8_t rslt;
    uint8_t reg_data = 0;

    /* Read variant ID information register */
    rslt = bme68x_get_regs(BME68X_REG_VARIANT_ID, &reg_data, 1, dev);

    if (rslt == BME68X_OK)
    {
    dev->variant_id = reg_data;
    }

    return rslt;
    }


    if (dev->variant_id == BME68X_VARIANT_GAS_HIGH)
    {
    data[i]->gas_resistance = calc_gas_resistance_high(adc_gas_res_high, gas_range_h);
    }
    else
    {
    data[i]->gas_resistance = calc_gas_resistance_low(adc_gas_res_low, gas_range_l, dev);
    }

    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