IMU 10DOF - MPU9150 + MS5611 / Compass Problem

Hello everybody,

last week i received the imu board ( … 5611-.html) and successfully connected to a rasperryPi.
because the communication with ak8975 (the compass sensor inside mpu9150) is not working as i expect i’d like to ask if someone else had a similar problem:

when i read out all 6 Hx Registers from the ak8975 (mpu9150 in bypass mode!) all of them are 0x00. also self test results in 0x00 in all 6 registers.
as reading device id and ST1 register returns expected values (WIA: 0x48, ST1: 0x01 [after setting mode in CNTL to 0x01 = single measurement mode
or 0x08 = self test], ST1: 0x00 after reading one of the Hx 6 data registers) i assume that there is no communication problem.
additionaly the HOFL bit in ST2 is always 1, and i’ve no idea why.

also when ak8975 is read out through mpu9150 in master mode, sometimes measurement values not equal to 0x00 can be read out (but the data make no sense from
my point of view). for reading out through 9150 i’m using inv_gyro.c which is part of MotionFit SDK v5.1 from invensense and i assume that the library works.

did someone else had such problems, what was the reason and how it was solved?
as this is my first time using a compass sensor i hope, that someone can help me; or maybe i just received a not functional mpu9150 !?

Thank you!

after reading lot’s of posts on invensense forum i realised that the MotionFit SDK initialise the mpu9150 master mode in this way, that first data is read from ak8975 and secondly a new measurement is triggered (so mpu9150 slave data buffer contains always values from previous measurement).
when i also do it this order (communicating directly with ak8975) i also get sometimes values other than 0x00 like with the reference code form invensense.
but this is not solving my problems:

  • the values seems to be unusable (HX: 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffe5, 0xf941, 0x0000, 0x0000, 0x0000, 0x035f, 0x0000, 0xfc41, 0x0000)?
  • HOFL in ST2 still set
  • why this order of sending commands results in sometimes data? following to AK8975 datasheet data should be valid UNTIL a new measurement starts (or mode set to something other than 0x00)?

any idea? Thx!