Skip to content

Releases: Wkesther2/bme680-driver

Power Saving Update & Major Refactoring v0.2.0

06 Jan 15:02

Choose a tag to compare

Overview

This release introduces significant improvements to power management and code quality. You can now individually disable sensor components (Gas, Temperature, Humidity, Pressure) to optimize for low-power applications.

BREAKING CHANGES

  • The Config struct has been updated: gas_profile is now an Option<GasProfile>. To enable gas measurements, wrap your profile in Some().
  • Internal constants and types have been refactored for better maintainability.

New Features

  • Granular Power Control: Disable environmental sensors by setting their oversampling to Oversampling::Skipped.
  • Heater Control: Completely bypass the heating phase by setting gas_profile: None in the configuration.
  • Typestate Safety: Enhanced internal checks to ensure the sensor remains in a safe state during partial configurations.

Refactoring & Docs

  • Magic Numbers Removed: All I2C register addresses and bitmasks are now managed via dedicated internal modules (regs, msks, reg_sizes).
  • Documentation pass: Added comprehensive doc-comments to all public structures for better IDE support and clearer usage on docs.rs.
  • README Update: New examples showing how to use the "Skipped" and "Option" features.

Installation

Update your Cargo.toml:

bme680-driver = "0.2.0"

Initial Release v0.1.0

05 Jan 16:39
b760c44

Choose a tag to compare

Initial Release v0.1.0

First official release of the bme680-driver crate.

Features

  • Type-safe API: Uses the Typestate pattern to ensure the sensor is initialized before use.
  • Fixed-point arithmetic: No floating-point unit (FPU) required.
  • no_std: Compatible with bare-metal environments (Cortex-M, etc.).
  • Helper methods: Built-in support for splitting values (.split()) and converting pressure to hPa (.as_hpa()).
  • Example included: Full example for STM32F407 using embedded-hal 1.0.