← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

A gyro is read too slowly for the main loop rate

Stops itIMU: accelerometers, gyros, vibration

What ArduPilot says:

An IMU has to deliver gyro samples at least 1.8 times as fast as the main loop runs (SCHED_LOOP_RATE). The message gives the gyro (counting from 0), the rate it really delivers and the rate needed. With a slower gyro the attitude controller would be fed the same sample twice.

What to do, most likely first

  1. SCHED_LOOP_RATE was raised above what this IMU can keep up with.

    CheckDivide the last number in the message by 1.8: that is your loop rate. Compare the middle number with it.

    FixSet SCHED_LOOP_RATE back to the vehicle's default and reboot.

  2. The IMU can run faster, but fast sampling is not switched on for it.

    CheckINS_FAST_SAMPLE has no bit for that IMU, or INS_GYRO_RATE is 0 (1 kHz).

    FixSet the IMU's bit in INS_FAST_SAMPLE and raise INS_GYRO_RATE one step, then reboot. This costs processor time: on a small board lower the loop rate instead.

Parameters to look at

ParameterWhat it is
SCHED_LOOP_RATEScheduling main loop rate
INS_FAST_SAMPLEFast sampling mask
INS_GYRO_RATEGyro rate for IMUs with Fast Sampling enabled
The code that sends it

Gyro N rate NHz < loop ratex1.8 NHz

libraries/AP_InertialSensor/AP_InertialSensor.cpp AP_InertialSensor::pre_arm_check_gyro_backend_rate_hz() · Open in ArduPilot Copter-4.6.3

Gyro N rate NHz < loop rate*1.8 NHz

libraries/AP_InertialSensor/AP_InertialSensor.cpp AP_InertialSensor::pre_arm_check_gyro_backend_rate_hz() · Open in ArduPilot Copter-4.7.1

Written here for Copter 4.6. In the tool you choose your vehicle and version, see your own parameter values beside the ones named here, and drop a flight log to have every message in it explained.

Open it in the Message & Error Explainer