Why accelerometers calibration needed?

If my motors floor is the same of my APM floor, why do i need an accelerometer calibration?
My actual problem is that i repaired my drone rebuilding the landing legs.
Doing it by hands, the result is that, placing the drone on the floor, the motors are not perfectly levelled (and of course also the apm is not levelled).
Performing a calibration in this situation, the copter, saves as “level” floor a wrong floor (this is what i understood).
During the flight, the apm tries to stabilize the drone on the calibrated level position (this is what i understood) causing the drone to move on one direction.

My questions are 3:

  1. Is this reconstruction of the facts correct?
  2. If my motors floor is the same of my APM floor, why do i need an accelerometer calibration?
  3. Is is possible to avoid the calibration of the accelerometer if i know that the apm floor is the same of the motors floor ?

accels are 3 axis sensor measuring the acceleration, when your quad stands still it only sees the earth gravity (1g). if your sensor is off a little bit because of manufacturing, mounting on the PCB or APM (what it always is!) then APM needs to know this offset for 1g.

that’s at least what i know about how they work. that means: you need to do the calibration. what counts is that the motor plane is level on X and Y axis. if APM is off (it always is a little bit) that’s not a problem. during calibration APM will record that offset.

you’re totally right, when apm thinks the quad is level when it actually is not (because it was not level during calibration) then it will always fly in one direction and most likely you’ll end up crashing it some day :slight_smile:

so if your legs or frame or what ever doesn’t allow to place it level, just mount a water bubble at 2 arms (2 axis) and then find like 3-4 wood blocks or what ever to place under the arms… during calibration you also need to place it on the left,right,front,back side and upside-down. i always do that by just holding it with my hands and one edge (motor sides) on the table. most important is that it’s level, when calibration says “put it level”.

Yes, you need to teach it what level is. Get a simple bubble level, they cost about a buck.

Then set up what ever you need to so that the copter (motors) are level, then it won’t matter what your landing gear look like once you calibrate it. After that doesn’t matter what happens if you don’t change the motors/APM relationship.


i solved placing 4 chairs under my drone, positioning each chair under one leg. then i recalibrated, and now it seems to be solved. i will retry also outdoor in order to be sure. if i-ll find problems i’ll be back…

what ever works for you, even chairs are a bit big compared to a standard quad copter :stuck_out_tongue:
please mark the thread solved.

it seems to me that i still marked it as solved. isn’t it?

p.s.: thank you.

p.p.s.:could you help me also on this?: viewtopic.php?f=25&t=6969

The accel calibration does two separate operations:

  • it sets the AHRS_TRIM_X/Y parameters to trim the copter in level flight
  • it calculates offsets and scaling for the x, y, and z accelerometers.

You can set AHRS_TRIM_X/Y manually, or by using the auto trim or save trim functions (see the wiki: copter.ardupilot.com/wiki/autotrim/)

thank you very much jschall, i really appreciate your contribute.