Skip to content

IMU/Compass Factory Calibration

PX4 OEM manufacturers can perform an IMU and compass factory calibration in order to store values for the accelerometer, gyroscope and magnetometer calibration into persistent storage (usually EEPROM). This ensures that end users can always reset vehicle configurations and tuning to a safe state for flying.

This procedure will write the following parameters to /fs/mtd_caldata: CAL_ACC*, CAL_GYRO*, CAL_MAG*. This data will then be used when the parameters are set (or reset) to their default values.


This feature relies on the FMU having a dedicated EEPROM chip or an accompanying IMU PCBA that has sufficient space for the data. PX4 will store the data to /fs/mtd_caldata, creating the file if necessary.


These values cannot be stored in the frame configuration because they vary from device to device (the frame configuration defines the set of parameters that are applicable across all vehicles of the same type, such as the enabled sensors, autopilot rotation and PID tuning).

Performing the Factory Calibration

  1. Set the parameter SYS_FAC_CAL_MODE to 1.
  2. Perform all IMU calibrations: accelerometer, gyroscope and magnetometer.
  3. Reboot the vehicle. This will write all CAL_ACC*, CAL_GYRO* and CAL_MAG* parameters into /fs/mtd_caldata.
  4. Set the parameter SYS_FAC_CAL_MODE back to 0 (default).


If you only want to factory calibrate the accelerometer and the gyroscope you can set SYS_FAC_CAL_MODE to 2, in which case the magnetometer is omitted.

Subsequent user calibrations will then take effect as usual (factory calibration data is only used for the parameter default values).

Further Information