← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

The board's output co-processor is not working properly

Stops itMotors, ESCs and outputs

What ArduPilot says:

Pixhawk and Cube type boards have a second processor, the IOMCU, which drives the MAIN outputs and reads the receiver and the safety button. ArduPilot found it faulty: its firmware does not match, messages to it failed, it restarted by itself, or more than about 1 status read in 128 went wrong. What it drives cannot be trusted, so arming is refused.

What to do, most likely first

  1. The IOMCU restarted or lost contact after start-up; the fault is remembered until the next start.

    CheckDid it appear after servos or other loads were plugged in, or after a dip in the supply?

    FixPower the flight controller off and on. If it comes back, look at the 5 V supply and at anything that loads it.

  2. New firmware was just loaded and the IOMCU still has the old one.

    FixPower off and on and leave it alone for a minute: at start-up ArduPilot compares the IOMCU's firmware with its own and rewrites it when they differ.

  3. The IOMCU or its link to the main processor is damaged.

    FixIf a power cycle and a fresh firmware load do not clear it, the board needs repair. Do not fly it.

Parameters to look at

ParameterWhat it is
BRD_IO_ENABLEEnable IO co-processor
BRD_IO_DSHOTLoad DShot FW on IO
The code that sends it

PreArm: IOMCU is unhealthy

libraries/AP_Arming/AP_Arming.cpp AP_Arming::servo_checks() · 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