# Rust LPS25HB pressure sensor driver

A platform agnostic Rust driver for the ST Microelectronics LPS25HB pressure sensor,
based on the [`embedded-hal`] traits.
[`embedded-hal`]: https://github.com/rust-embedded/embedded-hal
Inspired by and partially based on [another STMicroelectronics driver](https://github.com/lonesometraveler/lsm9ds1).
This driver allows you to:
- check if sensor is reachable
- read pressure and temperature
- set data rate
- configure interrupts generation
- configure FIFO
# UNDER ACTIVE DEVELOPMENT
Basic functions work, see example. Almost all functions added, and should work fine, but many aren't tested yet.
## WORK IN PROGRESS:
This library is work in progress. Not all features are implemented yet. Currently only the I2C interface is implemented. Contributions are welcome.
### TO DO:
- [ ] add device ID check and power up in the `new()` function
- [ ] add an example using FIFO and/or interrupt generation
- [ ] add SPI interface and an example using it
- [ ] add more documentation (main block in the lib.rs)
~~[Some blog post](https://nebelgrau77.github.io/posts/rust_driver/)~~
## The device
The LPS25HB is an ultra-compact piezoresistive absolute pressure sensor which functions as a digital output barometer. The device comprises a sensing element and an IC interface which communicates through I2C or SPI from the sensing element to the application.
Datasheet: [LPS25HB](https://www.st.com/resource/en/datasheet/lps25hb.pdf)
## Usage
To use this driver, import this crate and an `embedded_hal` implementation,
then instantiate the device.
Please find additional examples using hardware in this repository: [examples]
[examples]: https://github.com/nebelgrau77/lps25hb-rs/tree/main/examples
## Support
For questions, issues, feature requests, and other changes, please file an
[issue in the github project](https://github.com/nebelgrau77/lps25hb-rs/issues).
## License
Licensed under either of
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or
http://opensource.org/licenses/MIT) at your option.
### Contributing
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall
be dual licensed as above, without any additional terms or conditions.