Skip to content

Commit 0a83a89

Browse files
Merge pull request #375 from pborcin/feat/qma6100p
add qma6100p accelerometer
2 parents 01fe06a + 1ded9ab commit 0a83a89

File tree

17 files changed

+1209
-5
lines changed

17 files changed

+1209
-5
lines changed

.github/ci/update_readme_dependencies.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
# 'AUDIO_SPEAKER' : r'',
3737
# 'AUDIO_MIC' : r'',
3838
'SDCARD': r'(^idf$)', # SD card driver is native to ESP-IDF
39-
'IMU': r'(icm42670$|mpu6050$)',
39+
'IMU': r'(icm42670$|mpu6050$|qma6100p$)',
4040
'LED': r'(led_indicator$|^idf$)', # Provided by led_indicator or idf
4141
'BAT': r'(^idf$)', # Battery (ADC driver) is native to ESP-IDF
4242
'CAMERA': r'(esp32-camera$)', # esp32-camera component

.github/workflows/upload_component.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
with:
1919
directories: >
2020
bsp/esp32_azure_iot_kit;bsp/esp32_s2_kaluga_kit;bsp/esp_wrover_kit;bsp/esp-box;bsp/esp32_s3_usb_otg;bsp/esp32_s3_eye;bsp/esp32_s3_lcd_ev_board;bsp/esp32_s3_korvo_2;bsp/esp-box-lite;bsp/esp32_lyrat;bsp/esp32_c3_lcdkit;bsp/esp-box-3;bsp/esp_bsp_generic;bsp/esp32_s3_korvo_1;bsp/esp32_p4_function_ev_board;bsp/m5stack_core_s3;bsp/m5dial;bsp/m5stack_core_2;bsp/esp_bsp_devkit;
21-
components/bh1750;components/ds18b20;components/es8311;components/es7210;components/fbm320;components/hts221;components/mag3110;components/mpu6050;components/esp_lvgl_port;components/icm42670;
21+
components/bh1750;components/ds18b20;components/es8311;components/es7210;components/fbm320;components/hts221;components/mag3110;components/mpu6050;components/esp_lvgl_port;components/icm42670;components/qma6100p;
2222
components/lcd_touch/esp_lcd_touch;components/lcd_touch/esp_lcd_touch_ft5x06;components/lcd_touch/esp_lcd_touch_gt911;components/lcd_touch/esp_lcd_touch_tt21100;components/lcd_touch/esp_lcd_touch_gt1151;components/lcd_touch/esp_lcd_touch_cst816s;
2323
components/lcd/esp_lcd_gc9a01;components/lcd/esp_lcd_ili9341;components/lcd/esp_lcd_ra8875;components/lcd_touch/esp_lcd_touch_stmpe610;components/lcd/esp_lcd_sh1107;components/lcd/esp_lcd_st7796;components/lcd/esp_lcd_gc9503;components/lcd/esp_lcd_ssd1681;components/lcd/esp_lcd_ili9881c;
2424
components/io_expander/esp_io_expander;components/io_expander/esp_io_expander_tca9554;components/io_expander/esp_io_expander_tca95xx_16bit;components/io_expander/esp_io_expander_ht8574;

bsp/esp32_s3_eye/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,6 @@ The ESP32-S3-EYE board consists of two parts: the main board (ESP32-S3-EYE-MB) t
3030
|AUDIO_SPEAKER| :x: | | |
3131
| AUDIO_MIC |:heavy_check_mark:| | |
3232
| SDCARD |:heavy_check_mark:| idf | >=4.4.5 |
33-
| IMU | :x: | | |
33+
| IMU |:heavy_check_mark:| [qma6100p](https://components.espressif.com/components/qma6100p) | 1.* |
3434
| CAMERA |:heavy_check_mark:| [espressif/esp32-camera](https://components.espressif.com/components/espressif/esp32-camera) | ^2.0.2 |
3535
<!-- Autogenerated end: Dependencies -->

bsp/esp32_s3_eye/idf_component.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,8 @@ dependencies:
2727
esp_codec_dev:
2828
version: "^1,<1.2"
2929
public: true
30+
31+
qma6100p:
32+
version: "1.*"
33+
override_path: "../../components/qma6100p"
34+
public: true

bsp/esp32_s3_eye/include/bsp/esp32_s3_eye.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
#define BSP_CAPS_AUDIO_SPEAKER 0
4242
#define BSP_CAPS_AUDIO_MIC 1
4343
#define BSP_CAPS_SDCARD 1
44-
#define BSP_CAPS_IMU 0 // There is an IMU, but not supported in this BSP
44+
#define BSP_CAPS_IMU 1
4545
#define BSP_CAPS_CAMERA 1
4646

4747
/**************************************************************************************************

components/qma6100p/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
idf_component_register(
2+
SRCS "qma6100p.c"
3+
INCLUDE_DIRS "include"
4+
REQUIRES "driver"
5+
)
6+
7+
include(package_manager)
8+
cu_pkg_define_version(${CMAKE_CURRENT_LIST_DIR})

components/qma6100p/README.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# QMA6100P Driver Component
2+
3+
[![Component Registry](https://components.espressif.com/components/espressif/qma6100p/badge.svg)](https://components.espressif.com/components/espressif/qma6100p)
4+
5+
C driver for QST QMA6100P 3-axis accelerometer based on I2C communication.
6+
7+
## Features
8+
9+
- Get 3-axis accelerometer data, either raw or as floating point values.
10+
- Configure accelerometer sensitivity.
11+
- Support for QMA6100P interrupt generation when data ready (occurs each time a write to all sensor data registers has been completed).
12+
13+
## Important Notes
14+
15+
- Keep in mind that QMA6100P I2C address depends on the level of its AD0 pin (1) (0x12 when low, 0x13 when high).
16+
- In order to receive QMA6100P interrupts, its INT pins (5, 6) must be connected to a GPIO on the ESP32.
17+
18+
## Limitations
19+
20+
- Only I2C communication is supported.
21+
- If QMA6100P interrupts are used, it is recommended to not read data using I2C directly from the ISR.
22+
23+
## Get Started
24+
25+
This driver, along with many other components from this repository, can be used as a package from [Espressif's IDF Component Registry](https://components.espressif.com). To include this driver in your project, run the following idf.py from the project's root directory:
26+
27+
```
28+
idf.py add-dependency "espressif/qma6100p"
29+
```
30+
31+
Another option is to manually create a `idf_component.yml` file. You can find more about using .yml files for components from [Espressif's documentation](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-component-manager.html).
32+
33+
## See Also
34+
* [QMA6100P datasheet](https://www.qstcorp.com/upload/pdf/202203/13-52-20%20QMA6100P%20Preliminary%20Datasheet%20Rev.%20A1_SPImode03.pdf)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
version: "1.0.0"
2+
description: I2C driver for QMA6100P accelerometer
3+
url: https://github.com/espressif/esp-bsp/tree/master/components/qma6100p
4+
dependencies:
5+
idf : ">=4.0"
6+
cmake_utilities: "0.*"

0 commit comments

Comments
 (0)