{"id":16064681,"url":"https://github.com/eldruin/mlx9061x-rs","last_synced_at":"2025-03-17T16:32:36.129Z","repository":{"id":51127933,"uuid":"281737425","full_name":"eldruin/mlx9061x-rs","owner":"eldruin","description":"Platform-agnostic Rust driver for MLX90614/MLX90615 Infrarred thermometer","archived":false,"fork":false,"pushed_at":"2024-05-23T19:15:26.000Z","size":75,"stargazers_count":6,"open_issues_count":2,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-16T05:28:13.329Z","etag":null,"topics":["driver","embedded-hal-driver","i2c","infrared","infrared-sensor","rust","temperature","temperature-sensor","thermometer","thermopile"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eldruin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-22T17:08:19.000Z","updated_at":"2024-05-23T19:15:29.000Z","dependencies_parsed_at":"2024-10-27T15:34:55.742Z","dependency_job_id":"4f58d29d-ed2d-47c0-9bd3-feb1d8b15215","html_url":"https://github.com/eldruin/mlx9061x-rs","commit_stats":{"total_commits":71,"total_committers":3,"mean_commits":"23.666666666666668","dds":"0.028169014084507005","last_synced_commit":"7436da4881a16e65ba9c4a8356c22aee6d40b7f7"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldruin%2Fmlx9061x-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldruin%2Fmlx9061x-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldruin%2Fmlx9061x-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldruin%2Fmlx9061x-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eldruin","download_url":"https://codeload.github.com/eldruin/mlx9061x-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243871888,"owners_count":20361379,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["driver","embedded-hal-driver","i2c","infrared","infrared-sensor","rust","temperature","temperature-sensor","thermometer","thermopile"],"created_at":"2024-10-09T05:09:07.018Z","updated_at":"2025-03-17T16:32:35.846Z","avatar_url":"https://github.com/eldruin.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rust MLX90614/MLX90615 Non-contact Infrared Thermometer Driver\n\n[![crates.io](https://img.shields.io/crates/v/mlx9061x.svg)](https://crates.io/crates/mlx9061x)\n[![Docs](https://docs.rs/mlx9061x/badge.svg)](https://docs.rs/mlx9061x)\n![Minimum Supported Rust Version](https://img.shields.io/badge/rustc-1.62+-blue.svg)\n[![Build Status](https://github.com/eldruin/mlx9061x-rs/workflows/Build/badge.svg)](https://github.com/eldruin/mlx9061x-rs/actions?query=workflow%3ABuild)\n[![Coverage Status](https://coveralls.io/repos/github/eldruin/mlx9061x-rs/badge.svg?branch=master)](https://coveralls.io/github/eldruin/mlx9061x-rs?branch=master)\n\nThis is a platform agnostic Rust driver for the MLX90614/MLX90615 infrared\nthermometers using the [`embedded-hal`] traits.\n\nThis driver allows you to:\n\n- Read the last object temperature measurement. See: `object1_temperature()`.\n- Read the last ambient temperature measurement. See: `ambient_temperature()`.\n- Read the last raw IR measurement. See: `raw_ir_channel1()`.\n- Get/Set the emissivity. See: `set_emissivity()`.\n- Get the device ID. See: `device_id()`.\n- Set the device address. See: `set_address()`.\n- Put the device to sleep. See: `sleep()`.\n- Wake the device from sleep. See: `wake_mlx90614()`.\n\n\u003c!-- TODO\n[Introductory blog post]()\n--\u003e\n\nThe MLX90614/MLX90615 are a infrared thermometers for non-contact temperature\nmeasurements. Both the IR sensitive thermopile detector chip and the\nsignal conditioning ASSP are integrated in the same TO-39/TO-46 can.\nThanks to its low noise amplifier, 17-bit/16-bit ADC and powerful DSP unit,\na high accuracy and resolution of the thermometer is achieved.\n\nDepending on the MLX90614 model they feature a single-zone or dual-zone thermopile.\n\nThe chips feature an 10-bit PWM and SMBus interface.\n\nThe readout resolution is 0.01°C (MLX90614) / 0.02°C (MLX90615).\n\nThis driver uses the SMBus interface.\n\nDocumentation:\n\n- Datasheets: [MLX90614](https://www.melexis.com/-/media/files/documents/datasheets/mlx90614-datasheet-melexis.pdf), [MLX90615](https://www.melexis.com/-/media/files/documents/datasheets/mlx90615-datasheet-melexis.pdf)\n- [SMBus communication with MLX90614](https://www.melexis.com/-/media/files/documents/application-notes/mlx90614-smbus-communication-application-note-melexis.pdf)\n\n## Usage\n\nTo use this driver, import this crate and an `embedded_hal` implementation,\nthen instantiate the appropriate device.\n\nPlease find additional examples using hardware in this repository: [driver-examples]\n\n[driver-examples]: https://github.com/eldruin/driver-examples\n\n```rust\nuse linux_embedded_hal::I2cdev;\nuse mlx9061x::{Mlx9061x, SlaveAddr};\n\nfn main() {\n    let dev = I2cdev::new(\"/dev/i2c-1\").unwrap();\n    let addr = SlaveAddr::default();\n    let mut sensor = Mlx9061x::new_mlx90614(dev, addr, 5).unwrap();\n    loop {\n        let obj_temp = sensor.object1_temperature().unwrap();\n        println!(\"Object temperature: {:.2}ºC\", obj_temp);\n    }\n}\n```\n\n## Features\n### defmt-03\n\nTo enable [defmt](https://crates.io/crates/defmt) (version `0.3.x`) support, when specifying the dependency on `mlx9061x`, add the feature \"`defmt-03`\".\n\n```toml\n[dependencies]\nmlx9061x = { version = \"0.3.0\", features = [\"defmt-03\"] }\n```\n\n## Support\n\nFor questions, issues, feature requests, and other changes, please file an\n[issue in the github project](https://github.com/eldruin/mlx9061x-rs/issues).\n\n## License\n\nLicensed under either of\n\n- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or\n   \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or\n   \u003chttp://opensource.org/licenses/MIT\u003e)\n\nat your option.\n\n### Contributing\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall\nbe dual licensed as above, without any additional terms or conditions.\n\n[`embedded-hal`]: https://github.com/rust-embedded/embedded-hal\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feldruin%2Fmlx9061x-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feldruin%2Fmlx9061x-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feldruin%2Fmlx9061x-rs/lists"}