How to skip 3D accelerometer calibration after firmware reflash?

A 3D accelerometer must be calibrated for every flight controller. But for my case, I just want to erase the firmware and reflash it for some reason.

After reflash, I simply set all parameters that look like INS_ACC2OFFS_X, INS_ACCSCAL_Y, INS_GYROFFS_Y to the previous values I recorded before reflash and reboot. And when I try to arm my vehicle, it just doesn’t allow it and says 3D accelerometer calibration is required.

It’s inconvenient to recalibrate the 3D accelerometer since my vehicle is large and the FC is difficult to remove. Is there a solution for my use case? I can remove the FC this time, but I need to reflash it many times later.

This is not the way it is meant to be.

The proper procedure is to:

  1. install FW version A
  2. Calibrate all the stuff
  3. fly it and test it
  4. When a newer FW version B comes out, perform a firmware update
  5. Fly it and test it
  6. When a newer FW version C comes out, perform a firmware update
  7. Fly it and test it

    n. When a newer FW version K comes out, perform a firmware update
    n+1. Fly it and test it

FW versions are A < B < C < D < …K

So always upgrade, never downgrade and never clear the parameters.

If you do not follow those rules, you need to:

  1. manually manage parameter backup
  2. manually manage parameter restores
  3. Manually re-calibrate after each parameter restore

I have some problem with ardupilot fc passthrough, so when I need to do some component tunning like esc tunning, I flash to betaflight to tune it and flash back to ardupilot. It’s not exactly downgrading.
My procedure is to
1 install BetaFlight
2 tune the esc
3 install Ardupilot
4 fly it and test it
5 go back to 1

Then you need to manually re-calibrate every time.

There is a procedure to bypass that, basically telling the FC to thrust you and the parameters you just restored, but is is not simple enough for general users. But it is documented in the wiki somehere and mentioned here:

Thank you, I’ll try it

BTW passthru should work fine with ArduPlane 4.3.3.
Please test it again, and open a bug report if it does not.

This doesn’t work for me, INS_ACCEL_ID is marked readonly, I can’t write it with either QGC or MP.