← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

The board's second processor restarted or stopped answering

Act nowBoard, internal errors, CAN, scripting

What ArduPilot says:

Pixhawk-style boards have a small second processor, the IOMCU, that drives the MAIN outputs and reads the receiver and the safety switch. iomcu_reset is recorded when the main processor sees it restart or go silent: its clock jumped by more than 500 ms between two status reads, 20 status reads in a row failed, or nothing got through to it for 1 second. iomcu_fail means a run of failed exchanges after at least 100 good ones. ArduPilot sets the IOMCU up again and, if armed, turns its safety off again.

What to do, most likely first

  1. The supply to the board or to the servo rail dipped, and the IOMCU restarted.

    CheckIn the log, look at the board voltage (POWR.Vcc) and the servo rail (POWR.VServo) at the moment of the error.

    FixGive the board a clean 5 V supply of its own and do not power servos from the same regulator.

  2. The IOMCU's firmware does not match the main firmware (after an update that was cut short).

    CheckThe banner at start-up has a line “IOMCU: …”. If it is missing on a board that has an IOMCU, the two are not talking.

    FixFlash the firmware again and let the board start fully once on USB: the IOMCU is updated during that start.

  3. The link between the two processors, or the IOMCU itself, is damaged.

    CheckThe error returns on the bench with nothing connected to the outputs.

    FixReplace the board. Until then do not fly with motors on the MAIN outputs.

Parameters to look at

ParameterWhat it is
BRD_IO_ENABLEEnable IO co-processor

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