MPU6050 Sample Rate operates at half speed...

Recommended Posts

First - thanks very much for the libraries, which I can see reflect a considerable amount of effort. I have had some success in using the MPU6050 library on a project here, but I have one confusion about it's behaviour.

My application is using interrupts, DMP and the FIFO, and a single MPU-6050 at address 0x69 (instead of 0x68). My confusion is that the interrupts are occuring at 1/2 the speed set by the mpu.setRate() call. So, for example, if I do mpu.setRate(9), expecting 1000/(9+1) => 100 Hz, but I get precisely 50Hz (20mS). mpu.setRate(4) gives me 100Hz, and so on.

Does anyone have any inkling of what may be happening? My program is just a variant of the example ones.

In reading the MPU-6050 documentation, there is a comment about slaves running at different sample rates, but I cannot see how it applies here, as I dont have a slave, and I have since commented out the lines in MPU6050_6Axis_MotionApps20.h that seem to be doing something with SLV units. This made no change to the behaviour of the system.

I have attached a minimal sample test.ino program which (I think) demonstrates the effect. On my system, the setRate(9) call gives 20mS interrupts....