Frequently Asked Questions
Mon-Fri, 9am to 5pm
U.S. Mountain Time:
Chat With Us
June 18, 2012
about 2 years ago
That’s true for the accels and gyros anyway - mag fusion is done in software. However, even if the DMP isn’t used, it’s still a very compact hardware solution. Sometimes it does feel more like fighting against the DMP than with it and there are many situations where it’s better to just get the sensor data and perform the fusion in software externally.
The more likely case is where the IMU chips are mounted on separately moving parts and they connect back via flexible cables. In this way you can calculate the relative orientation of the parts. However, there could be a reason for multiple IMUs on the same pcb and this concerns accuracy and noise. It is possible to combine the outputs from several IMUs and get much more accurate results (at least as far as the gyros and accelerometers go - magnetometers will always be a pain).
We’ve just updated the MPU9150Lib library and it now supports dual MPU-9150s.
The MPU9150Lib library wasn’t written for multiple devices on the same processor as we didn’t know if anyone else was doing this. The MotionDriver part of the library uses global structures and so needs modification for multiple devices. In theory you can put two MPU9150s on the same I2C bus but we have had problems with that although some users have reported success (take a look at our blog http://pansenti.wordpress.com for updates). Using a version of the code written for a different system we have successfully used four of these via an I2C switch. If there’s interest we might do a future release of the library with multi-IMU support.
We would never describe the code as production-ready so error handling is descriptive rather than bullet-proof. If you look at the source of the library, however, it should be possible to handle the error conditions more intelligently and achieve the results you want.
We’ve tried to make it as easy as possible to use the MPU-9150 on the Arduino (and now the Raspberry Pi too). The user sketch just needs two function calls - init() and read(). It’s as simple as that!
Glad it’s working and thanks for that information. We don’t use the interrupt pin in this library at the moment but optional support for that could be added.
Just to clarify, are you using MPU9150Lib? If so, can you give a few more details of your setup?
No public wish lists :(
Forgot your password?
No account? Register one!