M5Unit-IMU 0.0.2 git rev:e5b00aa
Loading...
Searching...
No Matches
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 1234]
 ▼Nm5Top level namespace of M5Stack
 ▼Nimu
 ▼CAhrsControllerMerges up to 4 IMUDataSource instances by capability and fuses their samples into an attitude estimate via a pluggable AhrsFilterBase
 Ccalibration_data_tExportable/importable snapshot of every capability's auto-calibration offset
 CAhrsFilterBaseFramework-independent contract shared by every AHRS attitude filter
 ▼CAhrsImuAhrsController plus an M5Unified IMU_Class-compatible API
 Cimu_3d_t3-axis float vector, layout-compatible with m5::IMU_Class::imu_3d_t
 Cimu_data_tMerged accel/gyro/mag sample, layout-compatible with m5::IMU_Class::imu_data_t
 CAxisOrderChip-frame-to-body-frame axis remap: a permutation plus a per-output-axis sign flip
 CComplementaryFilterAngle-based first-order complementary filter
 CEKFFilterQuaternion extended Kalman filter (EKF) with gyro bias estimation
 CFusionFilterAdapter around the vendored x-io Fusion AHRS algorithm (x-io Technologies, MIT license; see src/imu/filter/third_party/fusion)
 Cimu_convert_param_tRaw to physical unit conversion coefficients
 Cimu_physical_data_tMerged, converted physical-unit IMU sample (AhrsController::latest())
 Cimu_raw_data_tUnified raw data (chip-native axes, no remap applied)
 CIMUDataSourceThin contract between measurement units and consumers (e.g. AHRS)
 CMadgwickFilterGradient-descent orientation filter (Madgwick 2010)
 CMahonyFilterExplicit complementary filter with proportional-integral feedback (Mahony et al. 2008)
 CVQFFilterAdapter around the vendored VQF algorithm (Daniel Laidig, MIT license; see src/imu/filter/third_party/vqf)
 ▼Nmath
 CMatrixFixed-size (R rows x C columns) float matrix, std::array backed (no heap allocation)
 CQuaternionPlain Hamilton quaternion (float) used to represent attitude
 CVector3Plain 3D vector (float)
 ▼Nunit
 ▼Nak8963
 CDataOne AK8963 sample: an 8-byte burst from ST1 (0x02) plus the device ASA trim
 ▼Nbmi270
 CDataOne 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
 CDataOne measurement (8 bytes burst from REG_DATA_X_LSB, register 0x42)
 Ctrim_tFactory trim (calibration) values read from registers 0x5D-0x71, consumed by the compensation formulas in Data::comp_x()/comp_y()/comp_z()
 ▼Nbmm350
 CDataOne 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_tPer-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
 CDataOne MAG3110 sample: a 7-byte burst from DR_STATUS (0x00)
 ▼Nmpu6886
 CDataOne measurement (14 bytes burst from REG_ACCEL_XOUT_H, big-endian)
 ▼Nsh200q
 CDataOne measurement (14 bytes burst from REG_OUTPUT, little-endian – NOT the MPU byte order)
 ▼CUnitAK89633-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_tSettings for begin()
 ▼CUnitBMI2706-axis (accel + gyro) IMU unit. CoreS3/AtomS3R built-in
 Cconfig_tSettings for begin()
 ▼CUnitBMI270AuxBMM150BMI270 that switches on its auxiliary (AUX) interface and drives a BMM150 through it
 Cconfig_tSettings for begin(), extending the base with the magnetometer's own
 ▼CUnitBMM1503-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_tSettings for begin()
 ▼CUnitBMM3503-axis magnetometer unit (U231, GROVE)
 Cconfig_tSettings for begin()
 CUnitDoF10Unit 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)
 CUnitDoF9Unit 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
 ▼CUnitMAG3110NXP/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_tSettings for begin()
 CUnitMiniIMUProUnit 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
 CUnitMPU6050TDK InvenSense MPU-6050 6-axis IMU (accel + gyro + temp). WHO_AM_I 0x68
 CUnitMPU6500TDK InvenSense MPU-6500 6-axis core (accel + gyro + temp)
 CUnitMPU6886TDK InvenSense MPU-6886 6-axis IMU (accel + gyro + temp). WHO_AM_I 0x19
 ▼CUnitMPU6xxxShared base for the TDK InvenSense MPU 6-axis family (accel + gyro + temp)
 Cconfig_tSettings for begin()
 CUnitMPU9250TDK InvenSense MPU-9250 9-axis IMU. Accel/gyro/temp (this unit itself) + AK8963 mag (mag())
 ▼CUnitSH200QSenodia 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_tSettings for begin()