no1wudi opened a new pull request, #17572:
URL: https://github.com/apache/nuttx/pull/17572
## Summary
This pull request adds support for the **QMI8658 6-axis IMU sensor** (3-axis
accelerometer + 3-axis gyroscope) to the `lckfb-szpi-esp32s3` board.
**Why change is necessary:**
- The QMI8658 is a commonly used IMU sensor on ESP32-S3 based boards for
motion sensing applications
- Adding support enables motion-based features like gesture recognition,
tilt sensing, and motion tracking
**What functional part of the code is being changed:**
- Board-specific sensor driver for the `lckfb-szpi-esp32s3` board
- Location: `boards/xtensa/esp32s3/lckfb-szpi-esp32s3/src/`
**How does the change exactly work:**
1. **New driver file (`esp32s3_qmi8658.c`)**: Implements
`esp32s3_qmi8658_initialize()` which:
- Initializes I2C0 bus
- Registers the QMI8658 sensor with the uORB framework
- Creates device nodes: `/dev/uorb/sensor_accel0` and
`/dev/uorb/sensor_gyro0`
2. **Header file (`esp32s3-szpi.h`)**:
- Added I2C configuration constants: `QMI8658_I2C_PORT` (0) and
`QMI8658_I2C_ADDR` (0x6A)
- Added function declaration for `esp32s3_qmi8658_initialize()`
3. **Board bringup (`esp32s3_bringup.c`)**:
- Includes QMI8658 header when `CONFIG_SENSORS_QMI8658=y`
- Calls initialization function during board bringup
4. **Build system (`Make.defs`)**:
- Conditional compilation of `esp32s3_qmi8658.c` when
`CONFIG_SENSORS_QMI8658=y`
**Related Issues:** None
## Impact
- **Is new feature added?** YES - New QMI8658 IMU sensor support
- **Impact on user?** YES - Users can now enable the QMI8658 sensor via
`CONFIG_SENSORS_QMI8658=y` in defconfig
- **Impact on build?** YES - New source file added, conditional on Kconfig
option
- **Impact on hardware?** YES - Supports the QMI8658 sensor on
`lckfb-szpi-esp32s3` board only
- **Impact on documentation?** NO - No documentation changes required
- **Impact on security?** NO - No security implications
- **Impact on compatibility?** NO - Purely additive feature, no breaking
changes
## Testing
I confirm that changes are verified on local setup and works as intended:
**Build Host(s):**
- OS: Linux
- CPU: x86_64
- Compiler: GCC (ESP-IDF toolchain)
**Target(s):**
- Arch: ESP32-S3 (xtensa)
- Board: `lckfb-szpi-esp32s3`
- Configuration: `esp32s3/lckfb-szpi-esp32s3/defconfig` with
`CONFIG_SENSORS_QMI8658=y`
···
nsh> uname -a
NuttX 12.11.0 cb7fb72fae-dirty Dec 20 2025 08:57:55 xtensa lckfb-szpi-esp32s3
nsh> uorb_listener
Monitor objects num:3
object_name:sensor_temp, object_instance:0
object_name:sensor_gyro, object_instance:0
object_name:sensor_accel, object_instance:0
sensor_temp(now:1323340000):timestamp:1323340000,temperature:21.000000
sensor_temp(now:1324350000):timestamp:1324350000,temperature:21.000000
sensor_gyro(now:1324350000):timestamp:1324350000,x:1.125000,y:1.656250,z:-0.218750,temperature:21.417969
sensor_accel(now:1324350000):timestamp:1324350000,x:-0.797485,y:0.075317,z:0.585693,temperature:21.417969
sensor_temp(now:1325360000):timestamp:1325360000,temperature:21.000000
sensor_gyro(now:1325360000):timestamp:1325360000,x:1.125000,y:1.906250,z:-0.406250,temperature:21.445313
sensor_accel(now:1325360000):timestamp:1325360000,x:-0.796387,y:0.073974,z:0.586548,temperature:21.445313
sensor_temp(now:1326370000):timestamp:1326370000,temperature:21.000000
sensor_gyro(now:1326370000):timestamp:1326370000,x:1.187500,y:1.656250,z:-0.125000,temperature:21.421875
sensor_accel(now:1326370000):timestamp:1326370000,x:-0.793823,y:0.075073,z:0.587524,temperature:21.421875
sensor_temp(now:1327380000):timestamp:1327380000,temperature:21.000000
sensor_gyro(now:1327380000):timestamp:1327380000,x:1.437500,y:2.062500,z:-0.156250,temperature:21.429688
sensor_accel(now:1327380000):timestamp:1327380000,x:-0.796997,y:0.075195,z:0.590942,temperature:21.429688
sensor_temp(now:1328390000):timestamp:1328390000,temperature:21.000000
sensor_gyro(now:1328390000):timestamp:1328390000,x:1.281250,y:2.062500,z:-0.125000,temperature:21.480469
sensor_accel(now:1328390000):timestamp:1328390000,x:-0.793335,y:0.073974,z:0.590576,temperature:21.480469
Object name:sensor_temp0, recieved:6
Object name:sensor_gyro0, recieved:5
Object name:sensor_accel0, recieved:5
Total number of received Message:16/16
nsh>
···
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]