{"id":47857905,"url":"https://github.com/tech02-7semi/7semi_bmi270","last_synced_at":"2026-04-03T23:02:40.808Z","repository":{"id":348667823,"uuid":"1127089580","full_name":"Tech02-7semi/7Semi_BMI270","owner":"Tech02-7semi","description":"Arduino wrapper for the Bosch BMI270 IMU (accelerometer + gyroscope) using I2C or SPI.  Provides Arduino-friendly initialization, configuration, and data reading functions while using the official Bosch BMI2/BMI270 driver.","archived":false,"fork":false,"pushed_at":"2026-04-02T07:53:06.000Z","size":163,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-02T21:38:04.952Z","etag":null,"topics":["accelerometer","arduino","bmi270","embedded","esp32","gyroscope","i2c","imu","sensor","spi"],"latest_commit_sha":null,"homepage":"https://7semi.com/imu-bmi270-accelerometer-and-gyroscope-breakout-stemma-qt-qwiic/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tech02-7semi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-03T06:36:19.000Z","updated_at":"2026-04-02T07:53:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Tech02-7semi/7Semi_BMI270","commit_stats":null,"previous_names":["tech02-7semi/7semi_bmi270"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Tech02-7semi/7Semi_BMI270","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech02-7semi%2F7Semi_BMI270","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech02-7semi%2F7Semi_BMI270/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech02-7semi%2F7Semi_BMI270/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech02-7semi%2F7Semi_BMI270/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tech02-7semi","download_url":"https://codeload.github.com/Tech02-7semi/7Semi_BMI270/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech02-7semi%2F7Semi_BMI270/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31381009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T21:40:47.592Z","status":"ssl_error","status_checked_at":"2026-04-03T21:40:05.436Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["accelerometer","arduino","bmi270","embedded","esp32","gyroscope","i2c","imu","sensor","spi"],"created_at":"2026-04-03T23:02:40.078Z","updated_at":"2026-04-03T23:02:40.804Z","avatar_url":"https://github.com/Tech02-7semi.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BMI270 7Semi Library\n\nThis repository contains basic, well-documented examples for using the Bosch BMI270 IMU with an ESP32, using the 7Semi_BMI270 library.  \n\n**Supported interfaces:** I2C / SPI  \n\n---\n\n## Connection Guide\n\n### I2C Connection (Default \u0026 Recommended)\n\n| BMI270 Pin | ESP32 Pin | Notes             |\n|------------|-----------|-----------------|\n| VCC        | 3.3V      | check your board's tolerance   |\n| GND        | GND       | Common ground   |\n| SDA        | GPIO 21   | Can be changed  |\n| SCL        | GPIO 22   | Can be changed  |\n| SDO        | LOW       | Sets I2C address to 0x68 |\n\n**I2C Address:**  \n\n- 0x68 → SDO = LOW  \n- 0x69 → SDO = HIGH  \n\n**I2C Speed:**  \n\n- Recommended: 400 kHz  \n- Supported: up to 1 MHz  \n\n---\n\n### SPI Connection (Advanced)\n\n **Important:** BMI270 selects SPI or I2C at power-up. To force SPI mode, CS must be LOW during power-up.  \n\n**ESP32 VSPI Wiring:**  \n\n| BMI270 Pin | ESP32 Pin | Notes                |\n|------------|-----------|--------------------|\n| CS         | GPIO 5    | Must be LOW at boot |\n| SCK        | GPIO 18   | VSPI clock          |\n| MISO       | GPIO 19   | VSPI MISO           |\n| MOSI       | GPIO 23   | VSPI MOSI           |\n| VCC        | 3.3V      | Required            |\n| GND        | GND       | Required            |\n\n**SPI Configuration:**  \n\n- Mode: SPI MODE 0  \n- Init speed: ≤ 1 MHz  \n- Normal speed: ≤ 10 MHz  \n\n---\n\n## Sensor Configuration\n\n### Accelerometer\n\n**Output Data Rate (ODR):**  \n\n- BMI2_ACC_ODR_0_78HZ   (ultra low power)  \n- BMI2_ACC_ODR_12_5HZ  \n- BMI2_ACC_ODR_25HZ  \n- BMI2_ACC_ODR_50HZ  \n- BMI2_ACC_ODR_100HZ   ← recommended  \n- BMI2_ACC_ODR_200HZ  \n- BMI2_ACC_ODR_400HZ  \n- BMI2_ACC_ODR_800HZ  \n- BMI2_ACC_ODR_1600HZ  \n\n**Measurement Range:**  \n\n- BMI2_ACC_RANGE_2G    ← best resolution  \n- BMI2_ACC_RANGE_4G  \n- BMI2_ACC_RANGE_8G  \n- BMI2_ACC_RANGE_16G   (large motion)  \n\n**Bandwidth (Noise vs Latency):**  \n\n- BMI2_ACC_OSR4_AVG1   (lowest latency)  \n- BMI2_ACC_OSR2_AVG2  \n- BMI2_ACC_NORMAL_AVG4 ← recommended  \n- BMI2_ACC_CIC_AVG8  \n- BMI2_ACC_RES_AVG16  \n- BMI2_ACC_RES_AVG32  \n- BMI2_ACC_RES_AVG64  \n- BMI2_ACC_RES_AVG128  (lowest noise)  \n\n---\n\n### Gyroscope Options\n\n**Output Data Rate (ODR):**  \n\n- BMI2_GYR_ODR_25HZ  \n- BMI2_GYR_ODR_50HZ  \n- BMI2_GYR_ODR_100HZ   ← recommended  \n- BMI2_GYR_ODR_200HZ  \n- BMI2_GYR_ODR_400HZ  \n- BMI2_GYR_ODR_800HZ  \n- BMI2_GYR_ODR_1600HZ  \n- BMI2_GYR_ODR_3200HZ  \n\n**Measurement Range (deg/s):**  \n\n- BMI2_GYR_RANGE_125  \n- BMI2_GYR_RANGE_250  \n- BMI2_GYR_RANGE_500  \n- BMI2_GYR_RANGE_1000  \n- BMI2_GYR_RANGE_2000  ← fast motion  \n\n**Bandwidth:**  \n\n- BMI2_GYR_OSR4_MODE   (lowest latency)  \n- BMI2_GYR_OSR2_MODE  \n- BMI2_GYR_NORMAL_MODE ← recommended  \n\n---\n\n### Recommended Default Configuration\n\n| Sensor        | ODR   | Range       | Bandwidth      |\n|---------------|-------|------------|----------------|\n| Accelerometer | 100 Hz | ±2G        | NORMAL_AVG4    |\n| Gyroscope     | 100 Hz | ±2000 dps  | NORMAL_MODE    |\n\n### Output Units\n\n| Sensor        | Unit                  |\n|---------------|---------------------|\n| Accelerometer | g                   |\n| Gyroscope     | degrees/second (dps)|\n| Temperature   | °C                  |\n\n---\n\n## Debug Tips\n\n- **Wrong CHIP_ID?**  \n  Expected value: 0x24. Check wiring and power.  \n\n- **SPI not working?**  \n  CS must be LOW at power-up.  \n\n- **No data?**  \n  Confirm ODR is enabled and check loop timing.  \n\n---\n\n## Next Steps / Advanced Features\n\n- FIFO burst reads  \n- Interrupt-driven data ready  \n- Low-power mode  \n- Sensor fusion (external)  \n- Calibration routines  \n\n---\n\n## License\n\n**MIT License** – This Arduino/C++ wrapper, examples, and documentation are released under the MIT License.  \n\n**Bosch Sensortec Driver:**  \n\n- This library uses the official Bosch Sensortec BMI2/BMI270 C driver, which is copyright © Bosch Sensortec GmbH and licensed under the BSD 3-Clause License.  \n- Bosch license terms must be retained when redistributing Bosch source/header files.  \n- This wrapper does not modify or replace Bosch’s license; it only adds Arduino integration.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftech02-7semi%2F7semi_bmi270","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftech02-7semi%2F7semi_bmi270","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftech02-7semi%2F7semi_bmi270/lists"}