Sparkfun has libraries for the ArduIMU V3, but I have not checked those.
That board uses the older MPU-6000 with the very common HMC-5883L magnetometer.
Perhaps using gyro+accel+magnetometer is the best.
I would recommend the MPU-9150 and the i2cdevlib http://www.i2cdevlib.com/devices/mpu9150
The MPU-9150 is the MPU-6050 with an extra magnetometer in the chip.
I asked this because, like you said, ArduIMU v3 uses mpu6000 and hmc5883l. MPU9150 must have the same specifications as the MPU 6050 but the magnetometer i don't know if it is any good.
It also says: "Digital Motion Processing™ (DMP™) engine offloads complex MotionFusion", what is this?
SO, you conclude MPU 9150 is better than ArduIMU v3?
Like I said, you need a good library, and I trust the i2cdevlib.
I forgot which magnetometer was included in the MPU-9150, but I assume that it is like other modern MEMS magnetometers.
So yes, I think the MPU9150 is better, since the MPU-6000 is older, and the libraries at Sparkfun are older.
The DMP is some kind of magic. It is a signal processing unit inside the chip.
Invensense does not provide all the documentation for it.
The MotionFusion and so on are pieces of firmware for the DMP.
The i2cdevlib uses DMP firmware that is retrieved by reverse engineering.
Caltoa:
Like I said, you need a good library, and I trust the i2cdevlib.
I forgot which magnetometer was included in the MPU-9150, but I assume that it is like other modern MEMS magnetometers.
So yes, I think the MPU9150 is better, since the MPU-6000 is older, and the libraries at Sparkfun are older.
The DMP is some kind of magic. It is a signal processing unit inside the chip.
Invensense does not provide all the documentation for it.
The MotionFusion and so on are pieces of firmware for the DMP.
The i2cdevlib uses DMP firmware that is retrieved by reverse engineering.
SHouldn't DMP proccess that information and not i2cdevlib? i2cdevlib, for what i understood by reverse engineering, makes the same thing as DMP?
It uses other (also well known) chips and the HMC5883L.
The i2cdevlib fills the DMP with firmware that was retrieved by reverse engineering. So it actually uses the DMP processor. After that the i2cdevlib has additional calculations to calculate all sorts of output data.
The RazorIMU is not bad at all, with common used sensors.
The MPU-9150 has just one reliable library (the i2cdevlib), but the sensor board is a lot smaller. I still prefer this sensor.
So you could select either one of them, but I have another option:
The Adafruit libraries are up to date and well maintained, and they have also 9DOF and 10DOF IMU boards.
Like this one:
I really like MPU 9150. But all tutorials that i found, that shows the compass and the interactive position is using razor IMU. The problem of MPU 9150, like you said, are the libraries, just one and there are not a lot of tutorials.
Last question, because you know more about this than me:
Adafruit and Sparkfun both have open source hardware and software and allow that users ask questions.
In this case I like the Adafruit IMU 9DOF and 10DOF with the libraries more.
You can't go wrong with those Adafruit IMU boards.
For myself I would use the MPU-9150. I have only tried the MPU-6050, so I don't know the magnetometer part.
The second one is the common Ebay module.
There are cheaper ones (inclusive shipping) than the one you found.
If you have a Arduino Uno for example, you can do without a I2C level shifter.
But if you have the Arduino Mega 2560, you need a I2C level shifter.
You could also use a seperate level shifter module, it might be handy some day:
A level shifter has a 5V I2C bus as input and makes it a 3.3V I2C bus. The conversion is in both directions.
Suppose you have pull-up resistors of 4k7 to 5.0V. That makes it a 5V I2C bus, because the SDA and SCL would climb up to 5.0V if those signals are not pulled low. So when you connect a 3.3V sensor to that bus, the current via the 4k7 pull-up resistors might flow into the sensor, and damage it.
With a level shifter you have both a 5V I2C bus and a 3.3V I2C bus. You can connect any I2C device to the proper voltage I2C bus. In the sketch there is no difference because the level shifter is fully transparent and no barrier at all.
Caltoa:
A level shifter has a 5V I2C bus as input and makes it a 3.3V I2C bus. The conversion is in both directions.
Suppose you have pull-up resistors of 4k7 to 5.0V. That makes it a 5V I2C bus, because the SDA and SCL would climb up to 5.0V if those signals are not pulled low. So when you connect a 3.3V sensor to that bus, the current via the 4k7 pull-up resistors might flow into the sensor, and damage it.
With a level shifter you have both a 5V I2C bus and a 3.3V I2C bus. You can connect any I2C device to the proper voltage I2C bus. In the sketch there is no difference because the level shifter is fully transparent and no barrier at all.