← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

Remote ID is not ready

Stops itArming, disarming and the safety switch

What ArduPilot says:

Also explained here: 5 more
  • ODID: transmitter OK
  • DID_ENABLE must be 1
  • ODID: lost operator location
  • UA_TYPE required in BasicID
  • SYSTEM not available

Remote ID (OpenDroneID) makes the aircraft broadcast who it is and where its pilot stands, through a separate transmitter module. With DID_OPTIONS bit 0 set, ArduPilot will not arm until all of it works: DID_ENABLE is 1, the aircraft's identity is known, the ground station is sending the operator's position, and the module has said within the last 3 seconds that it is ready; if the module says no, its own reason is shown. In flight, “ODID: lost transmitter” and “ODID: lost operator location” mean the module or the ground station has been silent for 5 seconds.

What to do, most likely first

  1. “ARM_STATUS not available” or “ODID: lost transmitter”: the module is not connected, or ArduPilot looks for it on the wrong port.

    CheckDID_MAVPORT is the number of the serial port the module is on (that port must speak MAVLink 2), or DID_CANDRIVER the CAN driver for a DroneCAN module. Is the module powered?

    FixCorrect the wiring and the port parameter, and reboot.

  2. “operator location must be set”, “SYSTEM not available”, “ODID: lost operator location”: the ground station is not sending where the pilot is.

    CheckThe ground station needs a position of its own (a GPS on the computer or phone) and its Remote ID screen running.

    FixGive the ground station a GPS and keep it connected for the whole flight.

  3. “UA_TYPE required in BasicID”: the aircraft's identity and type were never entered.

    FixFill in the ID, its type and the aircraft type in the ground station's Remote ID screen.

  4. “DID_ENABLE must be 1”: arming is tied to Remote ID, but Remote ID itself is off.

    FixSet DID_ENABLE to 1 and reboot.

“OpenDroneID: ID is locked as …” and “Locked UAS_ID: …”: with DID_OPTIONS bit 2 the first serial number received is written into the board's permanent parameters, which an ordinary parameter reset does not touch. These messages exist only in firmware built with Remote ID.

Parameters to look at

ParameterWhat it is
DID_ENABLEEnable ODID subsystem
DID_OPTIONSOpenDroneID options
DID_MAVPORTMAVLink serial port
DID_CANDRIVERDroneCAN driver number
The code that sends it

ARM_STATUS not available

libraries/AP_OpenDroneID/AP_OpenDroneID.cpp AP_OpenDroneID::pre_arm_check() · Open in ArduPilot Copter-4.7.1

OpenDroneID DroneCAN alloc failed

libraries/AP_OpenDroneID/AP_OpenDroneID_DroneCAN.cpp AP_OpenDroneID::dronecan_init() · Open in ArduPilot Copter-4.7.1

operator location must be set

libraries/AP_OpenDroneID/AP_OpenDroneID.cpp AP_OpenDroneID::pre_arm_check() · Open in ArduPilot Copter-4.7.1

OpenDroneID: ID is locked as …

libraries/AP_OpenDroneID/AP_OpenDroneID.cpp AP_OpenDroneID::get_persistent_params() · Open in ArduPilot Copter-4.7.1

And 7 more messages, sent from the same places.

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