MAVLINKHUD

Remote ID: Core Concepts & Regulations

Executive Summary

Remote ID (14 CFR Part 89) is a "digital license plate" for drones. It broadcasts the drone's position, altitude, and ID to nearby receivers.

For ArduPilot integrators, the critical distinction is between Standard Remote ID (deeply integrated, allows advanced ops) and Broadcast Modules (velcro-on, limits operations).

1. Standard Remote ID Drone

  • Definition: The drone was produced with Remote ID built-in.
  • Integration: The Flight Controller (ArduPilot) communicates directly with the Remote ID transmitter.
  • Capability: Allows for Beyond Visual Line of Sight (BVLOS) operations (with appropriate waivers).
  • Requirement: The drone manufacturer must submit a Declaration of Compliance (DOC) to the FAA asserting the system meets ASTM F3411-22a.
  • Tamper Resistance: The system must verify the functionality of the Remote ID subsystem before arming.

2. Remote ID Broadcast Module

  • Definition: A standalone device attached to an existing drone.
  • Integration: None. It has its own GPS and battery. ArduPilot is unaware of it.
  • Limitations: Strictly Visual Line of Sight (VLOS) only.
  • Use Case: Retrofitting older fleets or hobbyist builds.

Technical Standards

ASTM F3411-22a

This is the technical standard the FAA references. ArduPilot's AP_OpenDroneID library is designed to meet this standard.

  • Message Protocol: Bluetooth 4.0/5.x or Wi-Fi (NaN/Beacon).
  • Update Rate: 1 Hz.
  • Latency: < 1 second.
  • Barometric Altitude: Must be referenced to standard pressure (1013.25 mb).

Codebase Investigation

1. The Core Library: AP_OpenDroneID

Located in libraries/AP_OpenDroneID/AP_OpenDroneID.cpp.

  • Rate Limiting: Dynamic messages (Location) are sent at 1Hz (_mavlink_dynamic_period_ms).
  • State Machine: send_static_out() cycles through NEXT_MSG_BASIC_ID, NEXT_MSG_SYSTEM, etc.

2. Tamper Resistance

ArduPilot enforces the "Tamper Resistance" requirement via AP_Arming.

  • If DID_ENABLE is 1 and DID_OPTIONS includes "Enforce Arming", the drone will not arm if the Remote ID module is disconnected or reports a failure.
  • This satisfies the FAA requirement that the drone cannot takeoff if Remote ID is not functioning.

How To: Verify Compliance

1. Check Pre-Arm status

  • Error: "RemoteID: System not available" means the Operator Location hasn't been received from the GCS yet.

2. Verify Output

  • Open Mission Planner > MAVLink Inspector.
  • Look for OPEN_DRONE_ID_LOCATION messages.
  • Check status field:
    • 2: Airborne (Armed)
    • 3: Emergency (Crashed/Failsafe)