Looks like there are now a few more choices out the as opposed to the MPU6050/HMC5883 or LG3D20/LSM303 combos.
The MPU9250 has a 14 bit AK8963 embedded, which could update at 100Hz automatically. But there is no DRDY pin on the MPU9250 for the AK8963, which means you have to build up a manual measurement sequence using the I2C state machine on the MPU9250. Measurement time is 9ms (7.2ms typical), so this could be synched to the accel/gyro output of the MPU6500 (which is the on-die accel/gyro of the MPU9250). At a 20Hz bandwidth filter for accel/gyro, the delay for gyro is 9.9ms and for accel it's 19.8ms. This means the measurement for accel is about 10ms delayed relative to gyro. That was not the case with MPU6050, where the delta was about 1ms ... The realign could be done in software by queuing up 10 gyro samples ...
The read of the AK8963 has some I2C bus consequences, as there is only 1 I2C write possible at a lower sample rate. That means you can trigger a measurement, but still read it back at sample rate. So if one wanted to have 1kHz accel/gyro readings, one has to read 20 bytes each per packet. That is 24 10bit bus transactions (device address and register index included), so 240 I2C clocks. That means the bus utilization of the 400kHz I2C close to 60%, so still doable.
The LSM9DS0 is still kind of a puzzle to me. Looking at the datasheet I fail to see what the gyro precision is, and what the effective magnetometer precision is. Some information on the net suggests the magnetometer is from Honeywell, so it's probably 12 bit. The real odd thing is the sample frequencies for accel/gyro. They are 800Hz vs. 760Hz. So if you use the gyro as the master input for your EKF, then the accel might be out of sync by 1.3ms. That is a magnitude worse than the 0.1 ms that the MPU9250 has.
My EKF had the assumption that samples for accel/gyro are arriving virtually at the same time. With the MPU9250, I kind of can do that, but with the LSM9DS0 this seems to be impossible. If one let's the EKF run at say 250Hz only, then uncertainty of 1.3ms does not seem to be that much compare to the filter rate of 4ms ...
Anyway, I am looking at this really from the interfacing and timing side. The real precision and quality of the samples is something I could not derive from the data sheets. I was wondering whether any of you had some thoughts on that.
- Thomas