I am very confused about the informations available for MPU6050 programming, and the library explanations in Jeff Rowberg's i2cdevlib code.
For example, in "MPU6050.cpp" it says:
* | ACCELEROMETER | GYROSCOPE
* DLPF_CFG | Bandwidth | Delay | Bandwidth | Delay | Sample Rate
* ---------+-----------+--------+-----------+--------+-------------
* 0 | 260Hz | 0ms | 256Hz | 0.98ms | 8kHz
* 1 | 184Hz | 2.0ms | 188Hz | 1.9ms | 1kHz
* 2 | 94Hz | 3.0ms | 98Hz | 2.8ms | 1kHz
* 3 | 44Hz | 4.9ms | 42Hz | 4.8ms | 1kHz
* 4 | 21Hz | 8.5ms | 20Hz | 8.3ms | 1kHz
* 5 | 10Hz | 13.8ms | 10Hz | 13.4ms | 1kHz
* 6 | 5Hz | 19.0ms | 5Hz | 18.6ms | 1kHz
* 7 | -- Reserved -- | -- Reserved -- | Reserved
But if I set 1kHz gyro sample rate with setDLPFMode(), and a FIFO sample rate of 200 Hz with setRate(), what happens to the "other" gyro values, Will they be ignored, or will they be accumulated? And if they get accumulated, will that only happen, if I have DMP activated? Or will the DMP always be activated, if I use the FIFO?
If anyone can shed some light on this, I would be very happy.
As nobody ever replied to this, I will try a reduced question:
Is it possible to use the FIFO without using the DMP?
(Meaning, to get the raw sensor values, but not via Registers but from the FIFO. In order to reduce timing requirements, and to be able to perform a bulk read of several readings.)
The MPU6050 receives a program (Embedded MotionDriver) provided by the arduino which my understanding of it takes every reading and calculates the output this is filtered to remove noise within this program. the current version of Jeffs code uses an older version of the Embedded MotionDriver that nicely fits within an arduino UNO's memory. I've attempted to alter jeffs code to take the latest version of the program but ran out of memory for anything else.
The latest MPU6050 DMP FIFO code cam be found at: Software Downloads | InvenSense Developers
you will need an account to access this which is free.
Embedded MotionDriver 6.12
Embedded MotionDriver 6.12 is our first ever 9-axis solution not locked to a specific MCU.Version 6.1.2 is an update to 6.1 that includes bug fixes and new libraries. This release is supported across all ARM Mx core architectures and supports the InvenSense MPU-6000, 6050, 6500, 9150, and 9250. The release includes optimized libraries and example projects for M3 and M4 cores as well the generic ARM library for any Mx core and an additional library and project for the TI MSP430. eMD 6.1 also includes a Python client for both visualizing the sensor performance and commands for printing data. This solution will allow you to easily leverage and configure numerous features of the DMP and also benefit from dynamic features in the MPL software library. Libraries specific to IAR, Keil, and GCC are included.
The code has much of what Jeff did although it will certainly be to big for an UNO without simplifying it as Jeff did.
Z