MinIMU-9 noisy?

I’m reading just the accelerometer on the LM303 for now and seeing how well it could dead-reckon, but just sitting on my desk, the acceleration is jumping all over the pace. With my dead-reckoning code parsing it, it looks like it’s slowly accelerating down and along the x axis.

Looking at the raw output (in +/1 1G mode), I notice the numbers are bouncing around like crazy. I switched to +/- 4G mode and recorded the run to Excel. It makes very nice bell curve histograms, so it’s suggesting noise while measuring the accelerometer.

First question: is it normal for the LM303 accelerometer (or any accelerometer) to be “noisy” around like this? If not, what could I have done wrong? The solder around the head pins look good, but the solder around GND and VIN is looking a little duller than the rest.

If so: what’s the right way of using accelerometer output?

          X        Y        Z
Median  -45       20     -527
Mean    -46.97    14     -525.58
Mode    -41       20     -529
StdDev   13.66    18.90    19.77

In my experience, accelerometers will be noisy. The numbers you report do seem a bit high though. It can’t hurt to make sure your solder joints are good, though I wouldn’t expect them to be the source of noise. You might (only if the noise is from power) get some improvement by adding a filter cap near the power pins.

If you have the accelerometer setting perfectly flat, then you can use those (x and y) mean/average values as your 0g centers. Sit it up on it’s side(s) for z axis center and 1g measurements. I would suspect that center values are dependent on each production run of the chip, so zero isn’t always exactly the same. Since a simple addition or subtraction is easy on a microcontroller, it’s not a big deal. The same is true of gyros, but they also drift, which makes it even worse.

+/- 1g is very sensitive. You can easily max it out by swinging it in your hand. It will pick up minor vibrations which could appear as noise. +/- 4g will probably be more useful. I would still suggest averaging readings. Also, remember that the data is left-justified, so the least significant bit is 16. From your numbers it sounds like you already accounted for that.

Thanks, DM. It’s good to know. The distribution suggests it’s normally distributed around the mean, so I think I will try a sliding average approach to reduce the noise. I was waiting for the upgraded LM303 libraries for Ard-1.0, which apparently you did. :slight_smile:

What I want to do is find out how reliably I can do dead-reckoning so I can use it for small navigation jobs (< 3m accuracy of GPS units).

Well, I can’t help you much there but to say that from what I’ve read, finding position from an accelerometer is highly inaccurate.

Wheel encoders are actually a much better option if practical (not a flying 'bot, or hovercraft, etc).

I converted the library, but I’ve only tested the sensor, I haven’t gotten to play with it yet. I hope to in the next couple days, possibly for a little while right now. I’m afraid that most of my personal curiosity is based on the gyro, since I’ve used both accelerometers and compass/magnetometers in the past.

yes their are noisy especially low-cost mems.

you have to do a zero-g offset compensation, calibration and a digital LP-Filter to get a good zero-g longtem stability.

  1. measure 1000 value at no movement
  2. do a middle of the value’s to get a offset
  3. now add this offset value to your sensor value’s
  4. work around 50hz or <100hz sample frequency
  5. use +/- 2 or 4g scale … 1 g is tooo sensitive for the most applications
  6. think about Kalman-Filtering for AHRS or tilt measurement applications.