Moin,
meld dich bei invensense mal an und geh in die developers corner. Da
kannst du dir die Motionkit Software runterladen. Die verwaltet dann die
DMP Geschichte. Der DMP mach 6 Achsen sensor Fusion (gyro+accel) und die
Magnetdaten werden dann auf dem entsprechenden Prozessor berechnet
(MSP430 oder irgendwelche ARMs wenn ich mich nicht täusche). Der
Temperatursensor wird dabei nur zum Kalibrieren des Gyros verwendet.
Also wenn die Temperatur sich stark ändert wird der Gyro neu kalibriert
(ich hab mal zwischen 60°C und 10°C ~15°/s in der z-Achse Differenz als
konstanten Offset gemessen). Allerdings wird in den
Standardeinstellungen der Gyro sowieso bei stillstand Kalibriert. Auch
der Magnetsensor (sofern vorhanden) wird von der Software kalibriert
(auch vom uC, nicht vom DMP!).
Wie du einen externen Magnetsensor (oder was für einen Sensor auch
immer) anschließen möchtest, geht das einfach über den I2C Bus. Also
einfach anschließen und entweder über den I2C bypass, den man per
Register aktivieren kann, ansprechen (natürlich nach dem Datenblatt des
entsprechenden Sensors) oder über die Slaveregister des MPUs (und die
sind auch im Datenblatt dokumentiert).
Ein Kalmanfilter ist natürlich eine Möglichkeit, wobei es sich dabei
sicher nicht um die einfachere Variante handeln wird. Essentiell dabei
ist die Systemmodellierung. Aber da wirst du dich dann ja einlesen ;)
Ich hoffe das hilft ein wenig weiter.
Schönes Wochenende