| ▼Nm5 | Top level namespace of M5Stack |
| ▼Nimu | |
| ▼CAhrsController | Merges up to 4 IMUDataSource instances by capability and fuses their samples into an attitude estimate via a pluggable AhrsFilterBase |
| Ccalibration_data_t | Exportable/importable snapshot of every capability's auto-calibration offset |
| CAhrsFilterBase | Framework-independent contract shared by every AHRS attitude filter |
| ▼CAhrsImu | AhrsController plus an M5Unified IMU_Class-compatible API |
| Cimu_3d_t | 3-axis float vector, layout-compatible with m5::IMU_Class::imu_3d_t |
| Cimu_data_t | Merged accel/gyro/mag sample, layout-compatible with m5::IMU_Class::imu_data_t |
| CAxisOrder | Chip-frame-to-body-frame axis remap: a permutation plus a per-output-axis sign flip |
| CComplementaryFilter | Angle-based first-order complementary filter |
| CEKFFilter | Quaternion extended Kalman filter (EKF) with gyro bias estimation |
| CFusionFilter | Adapter around the vendored x-io Fusion AHRS algorithm (x-io Technologies, MIT license; see src/imu/filter/third_party/fusion) |
| Cimu_convert_param_t | Raw to physical unit conversion coefficients |
| Cimu_physical_data_t | Merged, converted physical-unit IMU sample (AhrsController::latest()) |
| Cimu_raw_data_t | Unified raw data (chip-native axes, no remap applied) |
| CIMUDataSource | Thin contract between measurement units and consumers (e.g. AHRS) |
| CMadgwickFilter | Gradient-descent orientation filter (Madgwick 2010) |
| CMahonyFilter | Explicit complementary filter with proportional-integral feedback (Mahony et al. 2008) |
| CVQFFilter | Adapter around the vendored VQF algorithm (Daniel Laidig, MIT license; see src/imu/filter/third_party/vqf) |
| ▼Nmath | |
| CMatrix | Fixed-size (R rows x C columns) float matrix, std::array backed (no heap allocation) |
| CQuaternion | Plain Hamilton quaternion (float) used to represent attitude |
| CVector3 | Plain 3D vector (float) |
| ▼Nunit | |
| ▼Nak8963 | |
| CData | One AK8963 sample: an 8-byte burst from ST1 (0x02) plus the device ASA trim |
| ▼Nbmi270 | |
| CData | One measurement. Accel/gyro are always 12 bytes, little-endian (register 0x0C when the AUX/BMM150 bridge is not in use, or bytes [8..19] of the 20 byte burst from register 0x04 when it is; see UnitBMI270::read_measurement()) |
| ▼Nbmm150 | |
| CData | One measurement (8 bytes burst from REG_DATA_X_LSB, register 0x42) |
| Ctrim_t | Factory trim (calibration) values read from registers 0x5D-0x71, consumed by the compensation formulas in Data::comp_x()/comp_y()/comp_z() |
| ▼Nbmm350 | |
| CData | One measurement (12 bytes burst from REG_MAG_X_XLSB, register 0x31): 9 bytes magnetometer (X,Y,Z, 24bit little-endian each) followed by 3 bytes temperature (24bit little-endian) |
| Cotp_compensation_t | Per-chip OTP compensation coefficients (read out at boot from the sensor's one-time-programmable memory), consumed by compensate_temp() and compensate_mag(). All-zero (default-constructed, aside from t0) is a neutral / pass-through configuration |
| ▼Nmag3110 | |
| CData | One MAG3110 sample: a 7-byte burst from DR_STATUS (0x00) |
| ▼Nmpu6886 | |
| CData | One measurement (14 bytes burst from REG_ACCEL_XOUT_H, big-endian) |
| ▼Nsh200q | |
| CData | One measurement (14 bytes burst from REG_OUTPUT, little-endian – NOT the MPU byte order) |
| ▼CUnitAK8963 | 3-axis magnetometer unit. No standalone GROVE unit exists; it is the magnetometer embedded in the MPU9250 found on early classic M5Stack Core/Fire boards, reachable at 0x0C once the MPU9250's I2C bypass is enabled (see m5::unit::imu::enableAuxBypass) |
| Cconfig_t | Settings for begin() |
| ▼CUnitBMI270 | 6-axis (accel + gyro) IMU unit. CoreS3/AtomS3R built-in |
| Cconfig_t | Settings for begin() |
| ▼CUnitBMI270AuxBMM150 | BMI270 that switches on its auxiliary (AUX) interface and drives a BMM150 through it |
| Cconfig_t | Settings for begin(), extending the base with the magnetometer's own |
| ▼CUnitBMM150 | 3-axis magnetometer unit. No standalone GROVE unit exists for this chip; it is found built into some boards (e.g. classic M5Stack Core/Fire, paired with MPU6886) and as the auxiliary sensor of UnitBMI270 |
| Cconfig_t | Settings for begin() |
| ▼CUnitBMM350 | 3-axis magnetometer unit (U231, GROVE) |
| Cconfig_t | Settings for begin() |
| CUnitDoF10 | Unit DoF10: BMI270 + BMM350 + SPA06, all directly on the GROVE main bus (no AUX bypass). The BMI270 address is SW1-selectable (0x68 default / 0x69); pass it to the constructor (e.g. from bmi270::detectAddress). BMM350 is fixed at 0x14, SPA06 is fixed at 0x76. Add imu() and mag() to an AhrsController; read baro() directly (not AHRS-fused) |
| CUnitDoF9 | Unit DoF9: BMI270 + BMM350, both directly on the GROVE main bus (no AUX bypass). The BMI270 address is SW1-selectable (0x68 default / 0x69); pass it to the constructor (e.g. from bmi270::detectAddress). BMM350 is fixed at 0x14. Add imu() and mag() to an AhrsController |
| ▼CUnitMAG3110 | NXP/Freescale MAG3110 3-axis magnetometer. No standalone GROVE unit exists; it is the magnetometer on the original (2017) classic M5Stack Gray (paired with an MPU6050). It sits directly on the host I2C bus at 0x0E (no aux bypass needed, unlike the MPU9250's AK8963) |
| Cconfig_t | Settings for begin() |
| CUnitMiniIMUPro | Unit Mini IMU-Pro (U171): BMI270 (0x68, fixed – no address switch) + BMP280 (0x76) on the GROVE main bus, with a BMM150 magnetometer wired to the BMI270's AUX interface (ASDX/ASCX), not to the main bus. The predecessor of Unit DoF9/DoF10, with a BMM150/BMP280 instead of the BMM350/SPA06 |
| CUnitMPU6050 | TDK InvenSense MPU-6050 6-axis IMU (accel + gyro + temp). WHO_AM_I 0x68 |
| CUnitMPU6500 | TDK InvenSense MPU-6500 6-axis core (accel + gyro + temp) |
| CUnitMPU6886 | TDK InvenSense MPU-6886 6-axis IMU (accel + gyro + temp). WHO_AM_I 0x19 |
| ▼CUnitMPU6xxx | Shared base for the TDK InvenSense MPU 6-axis family (accel + gyro + temp) |
| Cconfig_t | Settings for begin() |
| CUnitMPU9250 | TDK InvenSense MPU-9250 9-axis IMU. Accel/gyro/temp (this unit itself) + AK8963 mag (mag()) |
| ▼CUnitSH200Q | Senodia SH200Q 6-axis IMU (accel + gyro + temp). No standalone GROVE unit exists; it is the built-in IMU of the earliest (2019.3) M5StickC and of the 2019.7 M5Stack Fire (there paired with a discrete BMM150 magnetometer), on the internal I2C bus at 0x6C |
| Cconfig_t | Settings for begin() |