{"id":20077446,"url":"https://github.com/drogue-iot/drogue-bsec","last_synced_at":"2026-06-08T11:31:44.529Z","repository":{"id":103178834,"uuid":"304275709","full_name":"drogue-iot/drogue-bsec","owner":"drogue-iot","description":"Interface to Bosch Sensortec Environmental Cluster (BSEC)","archived":false,"fork":false,"pushed_at":"2020-10-15T12:25:32.000Z","size":812,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-30T17:53:11.374Z","etag":null,"topics":["bme680","embedded","sensor"],"latest_commit_sha":null,"homepage":"https://blog.drogue.io","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drogue-iot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-10-15T09:29:37.000Z","updated_at":"2021-06-09T04:34:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"b5192c13-a788-4d8e-a13b-1460320fd7c5","html_url":"https://github.com/drogue-iot/drogue-bsec","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/drogue-iot/drogue-bsec","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drogue-iot%2Fdrogue-bsec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drogue-iot%2Fdrogue-bsec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drogue-iot%2Fdrogue-bsec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drogue-iot%2Fdrogue-bsec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drogue-iot","download_url":"https://codeload.github.com/drogue-iot/drogue-bsec/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drogue-iot%2Fdrogue-bsec/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34061121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bme680","embedded","sensor"],"created_at":"2024-11-13T15:08:15.624Z","updated_at":"2026-06-08T11:31:44.510Z","avatar_url":"https://github.com/drogue-iot.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Drogue IoT BSEC interface\n\n[![Matrix](https://img.shields.io/matrix/drogue-iot:matrix.org)](https://matrix.to/#/#drogue-iot:matrix.org)\n\nA crate to interface with the [Bosch Sensortec Environmental Cluster (BSEC)](https://www.bosch-sensortec.com/software-tools/software/bsec/)\nlibrary:\n\n\u003e BSEC library provides higher-level signal processing and fusion for the BME680. The library receives compensated sensor values from the sensor API. In order to fully provide the requested sensor outputs, Bosch Sensortec environmental cluster processes the BME680 signals and combines them with the additional phone sensors.\n\n## License\n\nThe BSEC library itself is **not** open source, it comes with a proprietary license and no source code.\n\nSo it is not possible to include the library, the source code, the header files, or any derived work from that in this\nrepository. Therefore, it is also not possible to provide a crate, from e.g. `crates.io`.\n\nHowever, the BSEC library is distributed by Bosch on GitHub at [BoschSensortec/BSEC-Arduino-library](https://github.com/BoschSensortec/BSEC-Arduino-library).\nYou still need to accept the license terms in order to use it, but this makes it easier to integrate the library\ninto your own project.\n\nThis repository references the \"BSEC-Arduino-library\" repository as a Git submodule. If you check out the repository\nrecursively, you will also check out the \"BSEC-Arduino-library\":\n\n    git clone --recursive https://github.com/drogue-iot/drogue-bsec\n\nYou can also define a dependency in your `Cargo.toml` using Git:\n\n~~~toml\n[dependencies]\ndrogue-bsec = { version = \"0.1\", git = \"https://github.com/drogue-iot/drogue-bsec\", branch=\"main\" }\n~~~\n\nSee:\n\n* [Product page](https://www.bosch-sensortec.com/software-tools/software/bsec/)\n* [License terms](https://www.bosch-sensortec.com/media/boschsensortec/downloads/bsec/2017-07-17_clickthrough_license_terms_environmentalib_sw_clean.pdf) (as of the time of writing)\n* [BSEC-Arduino-library](https://github.com/BoschSensortec/BSEC-Arduino-library) in GitHub from Bosch Sensortec\n* [Git Submodules](https://www.git-scm.com/book/en/v2/Git-Tools-Submodules)\n\n## TODOs\n\n* [ ] Provide a way to load and save the internal state\n* [ ] Allow providing custom configuration settings\n\n## Example\n\nThe example can be run with:\n\n    cargo +nightly run --release --target --target thumbv7em-none-eabihf --features stm32f4xx,display --example simple\n\nIt assumes that:\n\n* You are running on an STM32F411\n  \n  Other chips and boards should be possible, but you need to tweak the configuration for that.\n\n* Have the BME680 attached to I2C2\n* Have a ssd1351 compatible display attached to SPI1 (if the display feature is used)\n  * CS to PC13\n  * DC to PC5\n  * RST to PC4\n\nIf you enabled the `display` feature, it should look like this:\n\n![photo of a device running the example with a display](docs/example-with-display.jpg)\n\n## Build\n\nThis crate requires the nightly channel, and the cargo feature `host_deps` enabled, in order to work properly.\n\nAdd the following to the `Cargo.toml` of you binary project:\n\n~~~toml\n[unstable]\nfeatures = [\"host_dep\"]\n~~~\n\nThen, run cargo with `+nightly`:\n\n    cargo +nightly build\n\nThis is required due to issue [cargo#5730](https://github.com/rust-lang/cargo/issues/5730). \n\nIn a nutshell: Most likely you are going to build this crate for a target platform that does not match your host\nplatform, and your target is most likely `no_std`. However, this crate requires the use of `bindgen`, at build time\n(due to the reasons explained above). The dependencies of `bindgen` however pollute the dependency tree,\nand make it depend on `std`.\n\nUsing `host_dep` resolves this issue.\n\nSee:\n\n* https://github.com/rust-lang/cargo/issues/7915\n* https://github.com/rust-lang/cargo/pull/7820\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrogue-iot%2Fdrogue-bsec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrogue-iot%2Fdrogue-bsec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrogue-iot%2Fdrogue-bsec/lists"}