MPU6050 - mechanical vibration from engine - noise of the acceletometer.

Hi All. I am using the mpu6050 accelerometer. In my remote-controlled boat. The motors cause quite a lot of vibration and there is a lot of noise on the accelerometer. I have DLPF turned on (im tested from 0 to 7), it helped a little, but still present. What else can I do ? Thanks for help!

Isolate the accelerometer from the vibration with a flexible foam block, and reduce motor-induced framework vibration by mounting the motors on rubber standoffs.

Thanks for the hint, are there any software solutions?

Every accelerometer is very sensitive for short shocks and vibrations.

Do you use the low-pass filter of the MPU-6050 itself ? Do you use a library for the MPU-6050 or are you collecting the raw data ?

I agree with jremington, the first step is to reduce it in a mechanical way.
The same principle goes for every situation where data is collected. It is not possible to get good data out of bad raw samples. Improve the data quality at the very beginning.

With sensor fusion, the output is not just the combination of two or three sensors, but one sensor eliminates the disadvantages of the other sensors.
The Kalman and AHRS filters combine the accelerator, gyro and magnetometer.
Adafruit tutorial: Overview | How to Fuse Motion Sensor Data into AHRS Orientation (Euler/Quaternions) | Adafruit Learning System.

When using the raw data, you can add a filter in software.
A low-pass filter in software is very simple.

You can test for example your smartphone with a sensor app that shows a graph. There is a low-pass filter in software. You will see short shocks, but that is reduced a lot. The raw values would be all over the place.

What do you want to measure ? If the boat turns upside down ? :wink:
Can you show your sketch ? That will help to determine where and how the filter can be added.

// Most simple low-pass filter with Arduino Uno
// Open the Serial Plotter (Ctrl+Shift+L)
// When the 'weight' is 0.01 then only 1% of the new sample
// is added to the filtered value.

float filtered = 0.0;       // start value is zero
const float weight = 0.01;

void setup()
  Serial.begin( 9600);

void loop()
  // Create a signal between -10 and +10
  float raw = float( random( -10000, 10001)) / 1000.0;

  filtered = (weight * raw) + ((1.0 - weight) * filtered);

  Serial.print( raw);
  Serial.print( ",");
  Serial.print( filtered);
  delay( 50);      // slow down the sketch

Definitely need decent damped mounting technique, the vibration can lower the device's accuracy
markedly. Mounting it on a small mass and then mounting that in soft foam will markedly reduce
vibration at the sensor - that's the mechanical equivalent of a damped low-pass filter.

Any direct mounting via solid fastenings like nuts and bolts will carry all the high energy high
frequency vibration straight to the sensor, and may introduce resonances as well.