# TM1637
A platform agnostic driver to interface with the `TM1637` (7-segment display) using the [`embedded-hal`](https://crates.io/crates/embedded-hal) and [`embedded-hal-async`](https://crates.io/crates/embedded-hal-async) traits.
!["ruSt" on a 4-digit display](https://github.com/JadKHaddad/tm1637/blob/main/assets/4digits-rust.webp?raw=true)
## Features
The following features are available:
- `blocking`: enables blocking functionality.
- `async`: enables asynchronous functionality.
- `impl-debug`: implements `core::fmt::Debug` for structs and enums.
- `impl-defmt-format`: implements `defmt::Format` for structs and enums.
- `mappings`: enables the mappings module.
- `formatters`: enables the number formatting module.
- `demo`: enables the demo module.
- `disable-checks`: disables bound checks while writing to the display. When enabled, positions greater than available positions on the display will be written to the display regardless, causing more delay than needed. Enable this feature only if you are sure about the positions you are writing to.
## Usage
See [examples](https://github.com/JadKHaddad/tm1637/tree/main/examples) directory or visit [wokwi.com](https://wokwi.com/projects/397159262874205185).
![example](https://github.com/JadKHaddad/tm1637/blob/main/assets/esp32c3-wokwi.gif?raw=true)
## Demo
See [demo](DEMO.md).
## Other Repositories
- `Rust` [generic-tm1637-gpio-driver-rust](https://github.com/phip1611/generic-tm1637-gpio-driver-rust)
- `Rust` [tm1637-rs](https://github.com/igelbox/tm1637-rs)
- `C` [TM1637-Driver](https://github.com/AlexAlexFr/TM1637-Driver)
- `Arduino` [TM1637](https://github.com/avishorp/TM1637)
## License
Licensed under either of
- Apache License, Version 2.0. [LICENSE-APACHE](LICENSE-APACHE) or [Apache-2.0 license](http://apache.org/licenses/LICENSE-2.0)
- MIT license. [LICENSE-MIT](LICENSE-MIT) or [MIT license](http://opensource.org/licenses/MIT)
## Contribution
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.