Skip to content

Commit 619121e

Browse files
committed
feature: Initial commit with bmi160 driver
Examples: - default read out example - step counter - tap detections changed depend lib
1 parent a02cd6b commit 619121e

37 files changed

+2194
-0
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ or [GitLab examples](https://gitlab.com/UncleRus/esp-idf-lib/tree/master/example
200200

201201
| Component | Description | License | Supported on | Thread safety |
202202
| --------- | ----------- | ------- | ------------ | ------------- |
203+
| **bmi160** | Driver for BMI160 6-DOF IMU | ISC | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
203204
| **icm42670** | Driver for TDK ICM-42670-P 6-Axis IMU | ISC | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
204205
| **l3gx** | Driver for L3Gx(L3GD20/L3G4200D) 3-axis gyroscope sensors | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
205206
| **lsm303** | Driver for LSM303 3-axis accelerometer and magnetometer sensor | BSD-3-Clause | esp32, esp8266, esp32s2, esp32c3, esp32s3, esp32c2, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61 | yes |
@@ -385,6 +386,8 @@ or [GitLab examples](https://gitlab.com/UncleRus/esp-idf-lib/tree/master/example
385386

386387
- [Lucio Tarantino](https://github.com/dianlight): `ads111x`
387388

389+
- [Lukasz Bielinski](https://github.com/lukbieli): `bmi160`
390+
388391
- [Manuel Markwort](https://github.com/mmarkwort): `mp2660` `tps63101x`
389392

390393
- [Marc Luehr](https://github.com/th3link): `veml7700`

components/bmi160/.eil.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
name: bmi160
3+
description: Driver for BMI160 6-DOF IMU
4+
version: 1.0.0
5+
groups:
6+
- imu
7+
code_owners: lukbieli
8+
depends:
9+
- log
10+
- esp_idf_lib_helpers
11+
- i2cdev
12+
thread_safe: yes
13+
targets:
14+
- esp32
15+
- esp8266
16+
- esp32s2
17+
- esp32c3
18+
- esp32s3
19+
- esp32c2
20+
- esp32c6
21+
- esp32h2
22+
- esp32p4
23+
- esp32c5
24+
- esp32c61
25+
license: ISC
26+
copyrights:
27+
- name: lukbieli
28+
year: 2025

components/bmi160/CMakeLists.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
if(${IDF_TARGET} STREQUAL esp8266)
2+
set(req esp8266 freertos i2cdev log esp_idf_lib_helpers)
3+
elseif(${IDF_VERSION_MAJOR} STREQUAL 4 AND ${IDF_VERSION_MINOR} STREQUAL 1 AND ${IDF_VERSION_PATCH} STREQUAL 3)
4+
set(req driver freertos i2cdev log esp_idf_lib_helpers)
5+
else()
6+
set(req driver freertos i2cdev log esp_idf_lib_helpers)
7+
endif()
8+
9+
idf_component_register(
10+
SRCS "bmi160.c"
11+
INCLUDE_DIRS .
12+
REQUIRES ${req}
13+
)

components/bmi160/LICENSE

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Copyright (c) 2025 Lukasz Bielinski <lbielinski01@gmail.com>
2+
3+
Permission to use, copy, modify, and distribute this software for any
4+
purpose with or without fee is hereby granted, provided that the above
5+
copyright notice and this permission notice appear in all copies.
6+
7+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

components/bmi160/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# `Driver for BMI160`
2+
3+
## Description:
4+
5+
The small, low power BMI160 is a low noise 16-bit IMU designed for mobile applications such as AR or indoor navigation, providing highly accurate sensor data and real-time sensor data. The low current consumption of BMI160 enables always-on applications in battery-driven devices. This sensor features a configurable on-chip interrupt engine which provides motion-based gesture recognition and context awareness as always-on background functions.
6+
7+
## Features:
8+
9+
- Supports regular constant readout throug pulling or interrupt
10+
- Step counting
11+
- Tap detecting

0 commit comments

Comments
 (0)