MPU.hpp
Go to the documentation of this file.
246 esp_err_t getBiases(accel_fs_t accelFS, gyro_fs_t gyroFS, raw_axes_t* accelBias, raw_axes_t* gyroBias,
273 inline MPU::MPU(mpu_bus_t& bus, mpu_addr_handle_t addr) : bus{&bus}, addr{addr}, buffer{0}, err{ESP_OK} {}
307 inline esp_err_t MPU::readBits(uint8_t regAddr, uint8_t bitStart, uint8_t length, uint8_t* data) {
323 inline esp_err_t MPU::writeBits(uint8_t regAddr, uint8_t bitStart, uint8_t length, uint8_t data) {
auxvddio_lvl_t getAuxVDDIOLevel()
Return MPU-6050’s I/O logic levels.
Definition: MPU.cpp:1044
esp_err_t setMotionFeatureEnabled(bool enable)
Enable/disable Motion modules (Motion detect, Zero-motion, Free-Fall).
Definition: MPU.cpp:447
esp_err_t registerDump(uint8_t start=0x0, uint8_t end=0x7F)
Print out register values for debugging purposes.
Definition: MPU.cpp:1586
esp_err_t setAuxI2CEnabled(bool enable)
Enable / disable Auxiliary I2C Master module.
Definition: MPU.cpp:1242
esp_err_t setMotionDetectConfig(mot_config_t &config)
Configure Motion-Detect or Wake-on-motion feature.
Definition: MPU.cpp:539
bool getAuxI2CBypass()
Return Auxiliary I2C Master bypass mode state.
Definition: MPU.cpp:1369
uint8_t auxi2c_stat_t
Auxiliary I2C master status register data.
Definition: types.hpp:330
esp_err_t setStandbyMode(stby_en_t mask)
Configure sensors' standby mode.
Definition: MPU.cpp:663
mpu_i2caddr_t mpu_addr_handle_t
MPU Address/Handle type, mpu_i2caddr_t or spi_device_handle_t
Definition: types.hpp:34
esp_err_t setAccelOffset(raw_axes_t bias)
Push biases to the accel offset registers.
Definition: MPU.cpp:778
esp_err_t rotation(raw_axes_t *gyro)
Read gyroscope raw data.
Definition: MPU.cpp:898
int_config_t getInterruptConfig()
Return Interrupt pin (INT) configuration.
Definition: MPU.cpp:1072
mag_mode_t compassGetMode()
Return magnetometer's measurement mode.
Definition: MPU.cpp:1811
esp_err_t writeByte(uint8_t regAddr, uint8_t data)
Write a value to a register.
Definition: MPU.hpp:327
esp_err_t setLowPowerAccelRate(lp_accel_rate_t rate)
Set Low Power Accelerometer frequency of wake-up.
Definition: MPU.cpp:413
mot_config_t getMotionDetectConfig()
Return Motion Detection Configuration.
Definition: MPU.cpp:557
mpu_addr_handle_t getAddr()
Return I2C address or SPI device handle.
Definition: MPU.hpp:299
esp_err_t setFsyncEnabled(bool enable)
Enable / disable FSYNC pin to cause an interrupt.
Definition: MPU.cpp:1569
esp_err_t compassSetMode(mag_mode_t mode)
Change magnetometer's measurement mode.
Definition: MPU.cpp:1736
lp_accel_rate_t
Low-Power Accelerometer wake-up rates.
Definition: types.hpp:104
esp_err_t setFIFOConfig(fifo_config_t config)
Configure the sensors that will be written to the FIFO.
Definition: MPU.cpp:1129
esp_err_t setAuxI2CBypass(bool enable)
Enable / disable Auxiliary I2C bypass mode.
Definition: MPU.cpp:1346
bool getAuxI2CSlaveEnabled(auxi2c_slv_t slave)
Return enable state of a Aux I2C's Slave.
Definition: MPU.cpp:1333
esp_err_t auxI2CReadByte(uint8_t devAddr, uint8_t regAddr, uint8_t *data)
Read a single byte frome slave just once (use for configuring a slave at initialization).
Definition: MPU.cpp:1498
gyro_fs_t getGyroFullScale()
Return Gyroscope Full-scale range.
Definition: MPU.cpp:718
dlpf_t getDigitalLowPassFilter()
Return Digital Low Pass Filter configuration.
Definition: MPU.cpp:298
esp_err_t setFsyncConfig(int_lvl_t level)
Configure the active level of FSYNC pin that will cause an interrupt.
Definition: MPU.cpp:1544
esp_err_t readBytes(uint8_t regAddr, size_t length, uint8_t *data)
Read data from sequence of registers.
Definition: MPU.hpp:315
bool getLowPowerAccelMode()
Return Low Power Accelerometer state.
Definition: MPU.cpp:386
esp_err_t readFIFO(size_t length, uint8_t *data)
Read data contained in FIFO buffer.
Definition: MPU.cpp:1180
auxi2c_slv_config_t getAuxI2CSlaveConfig(auxi2c_slv_t slave)
Return configuration of a Aux I2C Slave.
Definition: MPU.cpp:1300
stby_en_t getStandbyMode()
Return Standby configuration.
Definition: MPU.cpp:674
Declare Types and Definitions used within mpud namespace.
fchoice_t
Fchoice (Frequency choice maybe ?) [MPU6500 and MPU9250 only].
Definition: types.hpp:95
lp_accel_rate_t getLowPowerAccelRate()
Get Low Power Accelerometer frequency of wake-up.
Definition: MPU.cpp:424
esp_err_t readBit(uint8_t regAddr, uint8_t bitNum, uint8_t *data)
Read a single bit from a register.
Definition: MPU.hpp:303
esp_err_t getBiases(accel_fs_t accelFS, gyro_fs_t gyroFS, raw_axes_t *accelBias, raw_axes_t *gyroBias, bool selftest)
Compute the Biases in regular mode and self-test mode.
Definition: MPU.cpp:2194
esp_err_t compassSetSensitivity(mag_sensy_t sensy)
Set magnetometer sensitivity.
Definition: MPU.cpp:1914
uint16_t getSampleRate()
Retrieve sample rate divider and calculate the actual rate.
Definition: MPU.cpp:245
esp_err_t readBits(uint8_t regAddr, uint8_t bitStart, uint8_t length, uint8_t *data)
Read a range of bits from a register.
Definition: MPU.hpp:307
esp_err_t setLowPowerAccelMode(bool enable)
Enter Low Power Accelerometer mode.
Definition: MPU.cpp:342
fifo_config_t getFIFOConfig()
Return FIFO configuration.
Definition: MPU.cpp:1137
MPU & setAddr(mpu_addr_handle_t addr)
Set I2C address or SPI device handle.
Definition: MPU.hpp:292
bool compassSelfTest(raw_axes_t *result=nullptr)
Perform Compass self-test.
Definition: MPU.cpp:1847
esp_err_t compassInit()
Initialize Magnetometer sensor.
Definition: MPU.cpp:1665
uint8_t int_en_t
Enable features to generate signal at Interrupt pin.
Definition: types.hpp:384
ff_config_t getFreeFallConfig()
Return Free-Fall Configuration.
Definition: MPU.cpp:637
bool getMotionFeatureEnabled()
Return true if a Motion Dectection module is enabled.
Definition: MPU.cpp:492
esp_err_t setFreeFallConfig(ff_config_t &config)
Configure Free-Fall.
Definition: MPU.cpp:619
esp_err_t setInterruptEnabled(int_en_t mask)
Enable features to generate signal at Interrupt pin.
Definition: MPU.cpp:1086
esp_err_t setAuxI2CSlaveConfig(const auxi2c_slv_config_t &config)
Configure communication with a Slave connected to Auxiliary I2C bus.
Definition: MPU.cpp:1262
esp_err_t compassWriteByte(uint8_t regAddr, uint8_t data)
Write a single byte to magnetometer.
Definition: MPU.cpp:1637
bool getAuxI2CEnabled()
Return Auxiliary I2C Master state.
Definition: MPU.cpp:1253
auxi2c_config_t getAuxI2CConfig()
Get Auxiliary I2C Master configuration.
Definition: MPU.cpp:1224
esp_err_t readByte(uint8_t regAddr, uint8_t *data)
Read a single register.
Definition: MPU.hpp:311
esp_err_t setZeroMotionConfig(zrmot_config_t &config)
Configure Zero-Motion.
Definition: MPU.cpp:589
static constexpr mpu_addr_handle_t MPU_DEFAULT_ADDR_HANDLE
Definition: types.hpp:36
esp_err_t writeBits(uint8_t regAddr, uint8_t bitStart, uint8_t length, uint8_t data)
Write a range of bits to a register.
Definition: MPU.hpp:323
esp_err_t auxI2CWriteByte(uint8_t devAddr, uint8_t regAddr, uint8_t data)
Write to a slave a single byte just once (use for configuring a slave at initialization).
Definition: MPU.cpp:1440
esp_err_t computeOffsets(raw_axes_t *accel, raw_axes_t *gyro)
Compute Accelerometer and Gyroscope offsets.
Definition: MPU.cpp:861
auxi2c_stat_t getAuxI2CStatus()
Return Auxiliary I2C Master status from register I2C_MST_STATUS.
Definition: MPU.cpp:1421
uint8_t compassWhoAmI()
Return value from WHO_I_AM register.
Definition: MPU.cpp:1715
mag_sensy_t compassGetSensitivity()
Return magnetometer sensitivity.
Definition: MPU.cpp:1927
esp_err_t restartAuxI2C()
Restart Auxiliary I2C Master module, reset is asynchronous.
Definition: MPU.cpp:1415
accel_fs_t getAccelFullScale()
Return Accelerometer Full-scale range.
Definition: MPU.cpp:733
esp_err_t setAuxI2CConfig(const auxi2c_config_t &config)
Configure the Auxiliary I2C Master.
Definition: MPU.cpp:1194
esp_err_t compassReadByte(uint8_t regAddr, uint8_t *data)
Read a single byte from magnetometer.
Definition: MPU.cpp:1610
esp_err_t testConnection()
Test connection with MPU.
Definition: MPU.cpp:136
esp_err_t resetSignalPath()
Reset sensors signal path.
Definition: MPU.cpp:311
esp_err_t setSampleRate(uint16_t rate)
Set sample rate of data output.
Definition: MPU.cpp:178
axes_t< int16_t > raw_axes_t
Axes type to hold gyroscope, accelerometer, magnetometer raw data.
Definition: types.hpp:492
uint16_t getFIFOCount()
Return number of written bytes in the FIFO.
Definition: MPU.cpp:1171
uint8_t mot_stat_t
Motion Detection Status (MPU6000, MPU6050, MPU9150)
Definition: types.hpp:191
esp_err_t setAccelFullScale(accel_fs_t fsr)
Select Accelerometer Full-scale range.
Definition: MPU.cpp:726
esp_err_t motion(raw_axes_t *accel, raw_axes_t *gyro)
Read accelerometer and gyroscope data at once.
Definition: MPU.cpp:929
esp_err_t compassTestConnection()
Test connection with Magnetometer by checking WHO_I_AM register.
Definition: MPU.cpp:1705
esp_err_t writeBit(uint8_t regAddr, uint8_t bitNum, uint8_t data)
Write a single bit to a register.
Definition: MPU.hpp:319
esp_err_t writeBytes(uint8_t regAddr, size_t length, const uint8_t *data)
Write a sequence to data to a sequence of registers.
Definition: MPU.hpp:331
raw_axes_t getAccelOffset()
Return biases from accel offset registers.
Definition: MPU.cpp:831
raw_axes_t getGyroOffset()
Return biases from the gyro offset registers.
Definition: MPU.cpp:761
esp_err_t setFIFOMode(fifo_mode_t mode)
Change FIFO mode.
Definition: MPU.cpp:1114
esp_err_t setClockSource(clock_src_t clockSrc)
Select clock source.
Definition: MPU.cpp:268
I2C_t mpu_bus_t
Communication bus type, I2Cbus or SPIbus.
Definition: types.hpp:33
esp_err_t setGyroFullScale(gyro_fs_t fsr)
Select Gyroscope Full-scale range.
Definition: MPU.cpp:711
auxvddio_lvl_t
Auxiliary I2C bus VDDIO level [MPU6050 / MPU9150 only].
Definition: types.hpp:342
esp_err_t writeFIFO(size_t length, const uint8_t *data)
Write data to FIFO buffer.
Definition: MPU.cpp:1185
esp_err_t compassGetAdjustment(uint8_t *x, uint8_t *y, uint8_t *z)
Return Magnetometer's sensitivity adjustment data for each axis.
Definition: MPU.cpp:1831
esp_err_t sensors(raw_axes_t *accel, raw_axes_t *gyro, int16_t *temp)
Read data from all internal sensors.
Definition: MPU.cpp:985
esp_err_t setGyroOffset(raw_axes_t bias)
Push biases to the gyro offset registers.
Definition: MPU.cpp:746
uint8_t compassGetInfo()
Return value from magnetometer's INFO register.
Definition: MPU.cpp:1723
esp_err_t temperature(int16_t *temp)
Read temperature raw data.
Definition: MPU.cpp:920
int_en_t getInterruptEnabled()
Return enabled features configured to generate signal at Interrupt pin.
Definition: MPU.cpp:1091
esp_err_t acceleration(raw_axes_t *accel)
Read accelerometer raw data.
Definition: MPU.cpp:876
esp_err_t reset()
Reset internal registers and restore to default start-up state.
Definition: MPU.cpp:97
esp_err_t selfTest(selftest_t *result)
Trigger gyro and accel hardware self-test.
Definition: MPU.cpp:1958
esp_err_t accelSelfTest(raw_axes_t ®ularBias, raw_axes_t &selfTestBias, uint8_t *result)
Accel Self-test.
Definition: MPU.cpp:2018
esp_err_t setAuxVDDIOLevel(auxvddio_lvl_t level)
The MPU-6050’s I/O logic levels are set to be either VDD or VLOGIC.
Definition: MPU.cpp:1037
int_stat_t getInterruptStatus()
Return the Interrupt status from INT_STATUS register.
Definition: MPU.cpp:1101
mot_stat_t getMotionDetectStatus()
Return Motion Detection Status.
Definition: MPU.cpp:654
uint16_t fifo_config_t
FIFO configuration, enable sensors to be written to FIFO.
Definition: types.hpp:436
esp_err_t setSleep(bool enable)
Enable / disable sleep mode.
Definition: MPU.cpp:113
zrmot_config_t getZeroMotionConfig()
Return Zero-Motion configuration.
Definition: MPU.cpp:598
esp_err_t setFIFOEnabled(bool enable)
Enabled / disable FIFO module.
Definition: MPU.cpp:1147
esp_err_t readAuxI2CRxData(size_t length, uint8_t *data, size_t skip=0)
Read data from slaves connected to Auxiliar I2C bus.
Definition: MPU.cpp:1393
esp_err_t setAuxI2CSlaveEnabled(auxi2c_slv_t slave, bool enable)
Enable the Auxiliary I2C module to transfer data with a slave at sample rate.
Definition: MPU.cpp:1325
int_lvl_t getFsyncConfig()
Return FSYNC pin active level configuration.
Definition: MPU.cpp:1551
esp_err_t setDigitalLowPassFilter(dlpf_t dlpf)
Configures Digital Low Pass Filter (DLPF) setting for both the gyroscope and accelerometer.
Definition: MPU.cpp:284
esp_err_t setInterruptConfig(int_config_t config)
Configure the Interrupt pin (INT).
Definition: MPU.cpp:1054
esp_err_t gyroSelfTest(raw_axes_t ®ularBias, raw_axes_t &selfTestBias, uint8_t *result)
Gyro Self-test.
Definition: MPU.cpp:2111
esp_err_t initialize()
Initialize MPU device and set basic configurations.
Definition: MPU.cpp:50