{"id":15172782,"url":"https://github.com/wrclark/bme680","last_synced_at":"2026-03-09T10:03:23.316Z","repository":{"id":213821263,"uuid":"734675228","full_name":"wrclark/bme680","owner":"wrclark","description":"C implementation of BME680 with pressure, temp, hum and gas resistance","archived":false,"fork":false,"pushed_at":"2025-05-11T14:30:38.000Z","size":2567,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-11T15:30:54.893Z","etag":null,"topics":["bme680","bosch","bosch-sensor","c","i2c","linux","raspberry-pi","raspberry-pi-3","raspberry-pi-4","raspberrypi","spi"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wrclark.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-22T09:58:48.000Z","updated_at":"2025-05-11T14:30:41.000Z","dependencies_parsed_at":"2024-04-25T23:30:21.468Z","dependency_job_id":"97ad6ae0-6d50-406d-89ab-3e8515fe174c","html_url":"https://github.com/wrclark/bme680","commit_stats":null,"previous_names":["wrclark/bme680"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wrclark/bme680","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrclark%2Fbme680","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrclark%2Fbme680/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrclark%2Fbme680/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrclark%2Fbme680/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wrclark","download_url":"https://codeload.github.com/wrclark/bme680/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrclark%2Fbme680/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30290947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:57:19.223Z","status":"ssl_error","status_checked_at":"2026-03-09T02:56:26.373Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","bosch","bosch-sensor","c","i2c","linux","raspberry-pi","raspberry-pi-3","raspberry-pi-4","raspberrypi","spi"],"created_at":"2024-09-27T10:04:23.180Z","updated_at":"2026-03-09T10:03:23.298Z","avatar_url":"https://github.com/wrclark.png","language":"C","readme":"# bme680\n\nExample implementation of BME680 software. The I2C/SPI drivers are meant to run on a Raspberry Pi 4.\n\n\n![Raspberry Pi](.gitea/pi.png)\n\nConnecting the purple BME680 module board to SPI:\n\n| SPI func | BME680 Pin | Raspberry Pi Pin |\n| -------- | ---------- | ---------------- |\n| MISO     | \"SDO\"      | GPIO 9 (Pin 21)  |\n| MOSI     | \"SDA\"      | GPIO 10 (Pin 19) |\n| SCLK     | \"SCL\"      | GPIO 11 (Pin 23) |\n| CS       | \"CS\"       | GPIO 8 (Pin 24)  |\n\n### build\n```sh\n$ make\n```\nThis will create demo programs `bme680_i2c` and `bme680_spi`, and logging programs `bme680_log_i2c` and `bme680_log_spi`. They all expect the pin/devices specified in `spi.c` and `i2c.c`.\n\nThe loggers spit out the following every minute:\n```\n2024-08-19T18:20:00+0100 22.2358 101068 65.8092 11054.4 1\n```\n`Date`, `Temperature °C`, `Pressure Pa`, `% RH`, `Measured Gas resistance Ω`, `Heat stability bit`\n\n\u003eNote: disregard measured gas resistance if the heat stability bit is not 1.\n\n## bme680_{i2c,spi} demo output\n```\npar_t1: 26203\npar_t2: 26519\npar_t3: 3\npar_p1: 35008\npar_p2: -10284\npar_p3: 88\npar_p4: 9692\npar_p5: -202\npar_p6: 30\npar_p7: 24\npar_p8: -4\npar_p9: -3469\npar_p10: 30\npar_h1: 794\npar_h2: 1007\npar_h3: 0\npar_h4: 45\npar_h5: 20\npar_h6: 120\npar_h7: -100\npar_g1: 208\npar_g2: 59781\npar_g3: 18\nrange_switching_error: 19\nres_heat_range: 1\nres_heat_val: 46\nfloat mode\ntfine: 104906.162500\ntemp: 20.489485 degC\npress: 100089.609193 Pa\nhumidity: 64.456540 % RH\ngas resistance: 12100.310308 Ohm\n== for heater target=300.0 and ambient temp=19.0 (degC)\n=== gas_valid_r: 1\n=== heat_stab_r: 1\n```\n\n## Burn-in / logging\n\nSee file `cmd/log.c` \n\n![Graph of gas resistance measured over time](.gitea/gas.png)\n![Graph of temperature measured over time](.gitea/temp.png)\n![Graph of pressure measured over time](.gitea/press.png)\n![Graph of humidity measured over time](.gitea/hum.png)\n\nCompile and run\n```sh\n$ make\n$ mkdir data\n$ stdbuf -o0 ./bme680_log_i2c 2\u003e\u00261 | tee -a data/i2c.txt \u0026\n$ stdbuf -o0 ./bme680_log_spi 2\u003e\u00261 | tee -a data/spi.txt \u0026\n# wait a couple of hours or days ..\n$ cd plot\n$ ./plot.sh\n```\n\nThis project is licensed under the terms of the GNU General Public License v2.0.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwrclark%2Fbme680","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwrclark%2Fbme680","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwrclark%2Fbme680/lists"}