Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/squareline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ on:
- 'SquareLine/**'
- '.github/workflows/squareline.yml'

# Required for uploading the release
permissions:
contents: write

jobs:
create-squareline-packages:
runs-on: ubuntu-24.04
Expand Down
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,10 @@ Here is a summary of the available examples:
| [LVGL Demos Example](examples/display_lvgl_demos) | Run the LVGL demo player - all LVGL examples are included (LVGL) | <details><summary>12 boards</summary>[esp-box](bsp/esp-box)<br/>[esp-box-3](bsp/esp-box-3)<br/>[esp-box-lite](bsp/esp-box-lite)<br/>[esp32_p4_function_ev_board](bsp/esp32_p4_function_ev_board)<br/>[esp32_s2_kaluga_kit](bsp/esp32_s2_kaluga_kit)<br/>[esp32_s3_eye](bsp/esp32_s3_eye)<br/>[esp32_s3_korvo_2](bsp/esp32_s3_korvo_2)<br/>[esp32_s3_lcd_ev_board](bsp/esp32_s3_lcd_ev_board)<br/>[esp_vocat](bsp/esp_vocat)<br/>[m5dial](bsp/m5dial)<br/>[m5stack_core_s3](bsp/m5stack_core_s3)<br/>[m5stack_tab5](bsp/m5stack_tab5)</details> | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_lvgl_demos-) |
| [Display Rotation Example](examples/display_rotation) | Rotate screen using buttons or an accelerometer (`BSP_CAPS_IMU`, if available) | <details><summary>12 boards</summary>[esp-box](bsp/esp-box)<br/>[esp-box-3](bsp/esp-box-3)<br/>[esp-box-lite](bsp/esp-box-lite)<br/>[esp32_p4_eye](bsp/esp32_p4_eye)<br/>[esp32_p4_function_ev_board](bsp/esp32_p4_function_ev_board)<br/>[esp32_s3_korvo_2](bsp/esp32_s3_korvo_2)<br/>[esp32_s3_lcd_ev_board](bsp/esp32_s3_lcd_ev_board)<br/>[esp_vocat](bsp/esp_vocat)<br/>[m5dial](bsp/m5dial)<br/>[m5stack_core](bsp/m5stack_core)<br/>[m5stack_core_s3](bsp/m5stack_core_s3)<br/>[m5stack_tab5](bsp/m5stack_tab5)</details> | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_rotation-) |
| [Display SD card Example](examples/display_sdcard) | Example of mounting an SD card using SD-MMC/SPI with display interaction. This example is also supported on boards without a display. | <details><summary>5 boards</summary>[esp-box-3](bsp/esp-box-3)<br/>[esp32_p4_function_ev_board](bsp/esp32_p4_function_ev_board)<br/>[esp32_s3_korvo_2](bsp/esp32_s3_korvo_2)<br/>[esp_vocat](bsp/esp_vocat)<br/>[m5stack_tab5](bsp/m5stack_tab5)</details> | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_sdcard) |
| [Sensors Example](examples/display_sensors) | Display sensor data on a monochrome screen (LVGL) | <details><summary>1 board</summary>[esp32_azure_iot_kit](bsp/esp32_azure_iot_kit)</details> | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_sensors-) |
| [Sensors Example](examples/display_sensors) | Acquire sensor data using the sensor hub component | <details><summary>1 board</summary>[esp-box-3](bsp/esp-box-3)</details> | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_sensors) |
| [USB HID Example](examples/display_usb_hid) | USB HID demo (keyboard, mouse, or gamepad visualization using LVGL) | <details><summary>3 boards</summary>[esp32_p4_function_ev_board](bsp/esp32_p4_function_ev_board)<br/>[esp32_s3_usb_otg](bsp/esp32_s3_usb_otg)<br/>[m5stack_tab5](bsp/m5stack_tab5)</details> | - |
| [Generic Button and LED Example](examples/generic_button_led) | Minimal example using the Generic BSP: button and LED control | <details><summary>2 boards</summary>[esp_bsp_devkit](bsp/esp_bsp_devkit)<br/>[esp_bsp_generic](bsp/esp_bsp_generic)</details> | - |
| [MQTT Example](examples/mqtt_example) | Collect sensor data and publish to an MQTT server | <details><summary>1 board</summary>[esp32_azure_iot_kit](bsp/esp32_azure_iot_kit)</details> | - |
| [Sensors Example](examples/sensors) | Acquire sensor data using the sensor hub component | <details><summary>1 board</summary>[esp-box-3](bsp/esp-box-3)</details> | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=sensors) |

<!-- EXAMPLES_TABLE_END -->

Expand Down
2 changes: 1 addition & 1 deletion bsp/esp-box-3/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ ESP32-S3-BOX-3 also uses a Type-C USB connector that provides 5 V of power input
| [LVGL Demos Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_lvgl_demos) | Run the LVGL demo player - all LVGL examples are included (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_lvgl_demos-) |
| [Display Rotation Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_rotation) | Rotate screen using buttons or an accelerometer (`BSP_CAPS_IMU`, if available) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_rotation-) |
| [Display SD card Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_sdcard) | Example of mounting an SD card using SD-MMC/SPI with display interaction. This example is also supported on boards without a display. | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_sdcard) |
| [Sensors Example](https://github.com/espressif/esp-bsp/tree/master/examples/sensors) | Acquire sensor data using the sensor hub component | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=sensors) |
| [Sensors Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_sensors) | Acquire sensor data using the sensor hub component | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_sensors) |

<!-- END_EXAMPLES -->
</div>
Expand Down
2 changes: 1 addition & 1 deletion bsp/esp-box-3/idf_component.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,4 @@ examples:
- path: ../../examples/display_lvgl_demos
- path: ../../examples/display_lvgl_benchmark
- path: ../../examples/display_sdcard
- path: ../../examples/sensors
- path: ../../examples/display_sensors
3 changes: 1 addition & 2 deletions bsp/esp32_azure_iot_kit/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,7 @@ ESP32-Azure IoT Kit has integrated an ESP32-WROVER-B module, serial port-to-USB

| Example | Description | Try with ESP Launchpad |
| ------- | ----------- | ---------------------- |
| [Sensors Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_sensors) | Display sensor data on a monochrome screen (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_sensors-) |
| [MQTT Example](https://github.com/espressif/esp-bsp/tree/master/examples/mqtt_example) | Collect sensor data and publish to an MQTT server | - |

<!-- END_EXAMPLES -->
</div>
</div>
1 change: 0 additions & 1 deletion bsp/esp32_azure_iot_kit/idf_component.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,3 @@ dependencies:

examples:
- path: ../../examples/mqtt_example
- path: ../../examples/display_sensors
1 change: 0 additions & 1 deletion components/mpu6050/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,5 @@ This driver, along with many other components from this repository, can be used
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).

## See Also
* [Sensors example, including the MPU6050 driver](https://github.com/espressif/esp-bsp/tree/master/examples/display_sensors)
* [MPU6050 datasheet](https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Datasheet1.pdf)
* [MPU6000 and MPU6050 register map](https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Register-Map1.pdf)
9 changes: 9 additions & 0 deletions components/sensors/bmi270/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
if("${IDF_VERSION_MAJOR}.${IDF_VERSION_MINOR}" VERSION_GREATER_EQUAL "5.3")
set(REQ esp_driver_i2c esp_driver_spi)
else()
set(REQ driver)
endif()

idf_component_register(SRCS src/bmi270.c src/bmi270_sensor_hub.c INCLUDE_DIRS "include" PRIV_INCLUDE_DIRS "include_priv" REQUIRES ${REQ})

target_link_libraries(${COMPONENT_LIB} INTERFACE "-u bmi270_impl_init")
93 changes: 93 additions & 0 deletions components/sensors/bmi270/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Bosch BMI270 inertial measurement unit driver

[![Component Registry](https://components.espressif.com/components/espressif/bmi270/badge.svg)](https://components.espressif.com/components/espressif/bmi270)
![maintenance-status](https://img.shields.io/badge/maintenance-actively--maintained-green.svg)

## Features

- Reading of the chip ID.
- Configuring output data rate and range of the onboard accelerometer and gyroscope.
- Reading normalized float values of acceleration and rotation angle.

### Limitations

- Missing implementation of the SPI interface.
- Advanced features such as gesture control, FIFO buffering, interrupt on data ready and auxilary interface are not supported.

## Integration guide

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:

``` sh
idf.py add-dependency "espressif/bmi270==*"
```

## Usage guide

### Low level driver
When using the low level driver directly then firstly initialize it by providing a valid low level driver configuration:
``` c
const bmi270_driver_config_t driver_config = {
.addr = addr,
.interface = BMI270_USE_I2C,
.i2c_bus = i2c_bus_handle
};
bmi270_create(&driver_config, &bmi270_handle_pointer);
```
Start acquisition with a valid measurement configuration:
``` c
const bmi270_config_t measurement_config = {
.acce_odr = BMI270_ACC_ODR_X,
.acce_range = BMI270_ACC_RANGE_X,
.gyro_odr = BMI270_GYR_ODR_X,
.gyro_range = BMI270_GYR_RANGE_X
};
bmi270_start(bmi270_handle_pointer, &measurement_config);
```
After a completed measurement data can be read using:
``` c
bmi270_get_acce_data(bmi270_handle_pointer, &x, &y, &z);
```
Disable measurements and clean up the BMI270 driver using:
``` c
bmi270_stop(bmi270_handle_pointer);
bmi270_delete(bmi270_handle_pointer);
bmi270_handle_pointer = NULL;
```

### Espressif sensor hub

This driver can be used with [sensor-hub](https://docs.espressif.com/projects/esp-iot-solution/en/latest/sensors/sensor_hub.html) abstraction.
Create a BMI270 sensor instance using a valid configuration:
``` c
iot_sensor_create("sensor_hub_bmi270", &bmi270_sensor_hub_configuration, sensor_handle_pointer);
```

## Driver structure

```
BMI270
├── CMakeLists.txt # Driver component CMake file
├── README.md
├── idf_component.yml # Driver component configuration file
├── include # Public include folder
│ └── bmi270.h
├── include_priv # Private include folder
│ └── bmi270_priv.h
├── license.txt
├── src
│ ├── bmi270.c # Low level driver source file
│ └── bmi270_sensor_hub.c # Sensor-hub wrapper
└── test_app # Test app for the low level driver
├── CMakeLists.txt
├── main
│ ├── CMakeLists.txt
│ ├── idf_component.yml
│ └── test_app_bmi270.c
└── sdkconfig.defaults
```

## See also
[BMI270 datasheet](https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmi270-ds000.pdf)
[ESP-IDF component registry documentation](https://docs.espressif.com/projects/idf-component-manager/en/latest/)
[Sensor hub documentation](https://docs.espressif.com/projects/esp-iot-solution/en/latest/sensors/sensor_hub.html)
11 changes: 11 additions & 0 deletions components/sensors/bmi270/idf_component.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: 1.0.0
description: I2C driver for BMI270 inertial measurement unit
url: https://github.com/espressif/esp-bsp/tree/master/components/bmi270
tags:
- i2c
- sensor_hub
dependencies:
idf: ">=5.2"
sensor_hub:
version: ^0.1.4
public: true
Loading
Loading