MPU6050 vs ISM330DHCX

Good day,

I am using MPU 6050 as part of a flight controller for a school project. I need to get very accurate and repeatable Pitch and Roll angles.

Using MPU 6050 without DMP, gyro drifts, accelerometers are noisy. I have tried running average filter to smooth out accelerometer data and a comparative (difference between 5 consecutive readings) filter to try to eliminate gyro drift.

Using DMP, the response was slow.

I was considering if changing to a better IMU such as ISM330DHCX would provide better data with less onboard computation on the Arduino Mega

I would appreciate some feedback on this

Thank You
Michael

The ISM330 is a vast improvement on the long obsolete, discontinued MPU6050 (you most likely have some sort of clone).

For accurate results, both sensors have to be carefully calibrated. Computation is the same in either case.

And given your experience with ISM, what differences are there to MPU?

Wiring wise it should be the same, +5v. gnd, SDA, SCL so modifications to mating PCB would be minimal.

I presume there is a configuration setup like MPU.

is data captured after that angles or register values that need computation?

Much lower noise, more accurate, faster. The data sheets have all the details, but it is extremely unlikely that you have an original MPU6050, as they were discontinued by the original manufacturer years ago.

Wiring wise it should be the same, +5v.

Both devices are 3.3V only. The module you buy may have a voltage regulator, but you need logic level shifters to use either with a 5V Arduino.

I am referring to your Github library for another approach to the MPU which uses quaternion computation.

I am running basic trials which seam to be stable in Roll and Pitch. Roll I need to modify to get an output cantered at 0, not 180. must be related to the atan2 function.

Sorry, I have no idea what that means.

For questions about code, post the code, using code tags, and clearly explain what you expect it to do, and what it does instead.

yes that is true. Board like stemma QT normally prepale level shifting and regulation of Vs..

with MPU flat, roll is 180 deg.
shifting clockwise by 10deg would reduce the output to 170
shifting counter-clockwise would produce an output to -170 deg

I need to have 0 at flat position, then +ve angles for clockwise and -ve for counter-clockwise