Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BME680 XLSB

    BME680 XLSB

    JamesMeech
    Member

    Is there any way to get values to appear in the BME680 temperature XLSB with no or minimal oversampling? 

    4 REPLIES 4

    BSTRobin
    Community Moderator
    Community Moderator

    Hello JamesMeech,

    Could we know why you need to do this?

    I want to have the maximum resolution without averaging so I can try out some noise reduction algorithms on the sensor data

    I'll assume that this is not possible based on the fact that the question remains unanswered. 

    BSTRobin
    Community Moderator
    Community Moderator

    Hello JamesMeech,

    BME680 supported over sampling. Please refer the following materials from data sheet.

    BME680 over sampling setting.png

    BME680 temp data.png

     

    /*!
    * @brief This internal API is used to calculate the field data of sensor.
    */
    static int8_t read_field_data(struct bme680_field_data *data, struct bme680_dev *dev)
    {
    int8_t rslt;
    uint8_t buff[BME680_FIELD_LENGTH] = { 0 };
    uint8_t gas_range;
    uint32_t adc_temp;
    uint32_t adc_pres;
    uint16_t adc_hum;
    uint16_t adc_gas_res;
    uint8_t tries = 10;

    /* Check for null pointer in the device structure*/
    rslt = null_ptr_check(dev);
    do {
    if (rslt == BME680_OK) {
    rslt = bme680_get_regs(((uint8_t) (BME680_FIELD0_ADDR)), buff, (uint16_t) BME680_FIELD_LENGTH,
    dev);

    data->status = buff[0] & BME680_NEW_DATA_MSK;
    data->gas_index = buff[0] & BME680_GAS_INDEX_MSK;
    data->meas_index = buff[1];

    /* read the raw data from the sensor */
    adc_pres = (uint32_t) (((uint32_t) buff[2] * 4096) | ((uint32_t) buff[3] * 16)
    | ((uint32_t) buff[4] / 16));
    adc_temp = (uint32_t) (((uint32_t) buff[5] * 4096) | ((uint32_t) buff[6] * 16)
    | ((uint32_t) buff[7] / 16));
    adc_hum = (uint16_t) (((uint32_t) buff[8] * 256) | (uint32_t) buff[9]);
    adc_gas_res = (uint16_t) ((uint32_t) buff[13] * 4 | (((uint32_t) buff[14]) / 64));
    gas_range = buff[14] & BME680_GAS_RANGE_MSK;

    data->status |= buff[14] & BME680_GASM_VALID_MSK;
    data->status |= buff[14] & BME680_HEAT_STAB_MSK;

    if (data->status & BME680_NEW_DATA_MSK) {
    data->temperature = calc_temperature(adc_temp, dev);
    data->pressure = calc_pressure(adc_pres, dev);
    data->humidity = calc_humidity(adc_hum, dev);
    data->gas_resistance = calc_gas_resistance(adc_gas_res, gas_range, dev);
    break;
    }
    /* Delay to poll the data */
    dev->delay_ms(BME680_POLL_PERIOD_MS);
    }
    tries--;
    } while (tries);

    if (!tries)
    rslt = BME680_W_NO_NEW_DATA;

    return rslt;
    }

    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