SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
qmi8658_fifo_read.ino File Reference

@license MIT License More...

#include <stdarg.h>
#include <ImuDrv.hpp>
#include "DevicesPins.h"
Include dependency graph for qmi8658_fifo_read.ino:

Go to the source code of this file.

Macros

#define USE_I2C_INTERFACE
 
#define IMU_SDA   17
 
#define IMU_SCL   18
 
#define IMU_IRQ   33
 

Functions

void setupPower ()
 
void setup ()
 
void loop ()
 

Variables

SensorQMI8658 imu
 
AccelerometerData accelFifo [MAX_FIFO_SAMPLES]
 
GyroscopeData gyroFifo [MAX_FIFO_SAMPLES]
 

Detailed Description

@license MIT License

Copyright (c) 2026 lewis he

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Author
Lewis He (lewis.nosp@m.he@o.nosp@m.utloo.nosp@m.k.co.nosp@m.m)
Date
2026-04-15

FIFO data reading example using SensorQMI8658.

This example demonstrates how to:

  • Configure FIFO buffer for batch data reading
  • Read multiple samples from FIFO
  • Process batched sensor data

@important FIFO Usage Notes:

  • In Non-SyncSample mode, FIFO mode disables DRDY. Do not use DRDY as FIFO-ready condition.
  • Poll FIFO status/content by calling readFromFifo().
  • 6DOF FIFO sample set layout is 12 bytes: accel XYZ (6 bytes) + gyro XYZ (6 bytes).
  • Discard several initial FIFO sample sets after enabling FIFO to avoid startup transient frames.
Note
FIFO is useful for high-speed data acquisition and reducing CPU overhead from frequent interrupt handling.

Definition in file qmi8658_fifo_read.ino.

Macro Definition Documentation

◆ IMU_IRQ

#define IMU_IRQ   33

Definition at line 92 of file qmi8658_fifo_read.ino.

◆ IMU_SCL

#define IMU_SCL   18

Definition at line 86 of file qmi8658_fifo_read.ino.

◆ IMU_SDA

#define IMU_SDA   17

Definition at line 82 of file qmi8658_fifo_read.ino.

◆ USE_I2C_INTERFACE

#define USE_I2C_INTERFACE

Definition at line 58 of file qmi8658_fifo_read.ino.

Function Documentation

◆ loop()

◆ setup()

◆ setupPower()

void setupPower ( )

Definition at line 109 of file qmi8658_fifo_read.ino.

Referenced by setup().

Variable Documentation

◆ accelFifo

AccelerometerData accelFifo[MAX_FIFO_SAMPLES]

Definition at line 128 of file qmi8658_fifo_read.ino.

Referenced by loop().

◆ gyroFifo

GyroscopeData gyroFifo[MAX_FIFO_SAMPLES]

Definition at line 129 of file qmi8658_fifo_read.ino.

Referenced by loop().

◆ imu

Definition at line 127 of file qmi8658_fifo_read.ino.

Referenced by loop(), and setup().