ArduPilot RemoteID Support

ArduPilot RemoteID Support

Andrew Tridgell, Josh Henderson, David Buzz, Jeff Wurzbach, Roel Schiphorst

As of September 2022 standard, RemoteID is a requirement in the USA

RemoteID Hardware

Several Options available for hardware

Connection options

  • MAVLink over UART
  • DroneCAN on CAN bus

ESP32 Firmware

  • An ArduPilot RemoteID firmware for ESP32-S3/C3 is available here:
    • Pre-compiled binaries are in the releases folder
    • Supports both MAVLink on UART and DroneCAN on CAN port
    • Pinouts are in the README on the github site
    • Tested on ESP32-S3, will test on ESP32-C3 soon
  • Operation
    • The transmitter module listens for 5 messages on MAVLink or DroneCAN
      • BasicId
      • SelfID
      • OperatorID
      • System
      • Location
    • The transmitter module sends one message for arming ok/not-ok
      • ArmStatus
    • The DroneCAN messages are identical in form to the MAVLink OpenDroneID messages

Ardupilot Firmware

  • The ArduPilot firmware support is merged in master
    • Support is also in 4.2.3beta2 for plane and will be in copter beta shortly 
    • Could be backported to earlier firmware if required
  • Parameters
    • Key parameters in ArduPilot are:
      • DID_ENABLE : must be set to 1 to enable OpenDroneID
      • DID_CANDRIVER : which CAN driver to use (1 or 2), or 0 to disable CAN
      • DID_MAVPORT  : serial port to use for MAVLink support, or -1 to disable
      • DID_OPTIONS  : needs to be set to 1 to enforce arming checks
      • DID_BARO_ACC : airframe specific barometer accuracy
    • Other key parameters also need to be locked down, for example:
      • GPS_TYPE, GPS_TYPE2, AHRS_EKF_TYPE, SERIALn_PROTOCOL (this list will grow as we test)
      • Lockdown mechanism is via defaults.parm and @READONLY tag
      • See CubeOrange-ODID and Pixhawk6X-ODID examples

Board IDs and Parameter Lock

To be compliant with ASTM means of compliance we need parameter lockdown

  • Each vendor creates a new build target (hwdef.dat directory)
  • Use board ID that is vendor specific, default is 10000 + base board ID
  • Examples for CubeOrange-ODID and Pixhawk6X-ODID are provided
  • Needs custom hwdef.dat option to enable OpenDroneID
  • Needs custom defaults.parm to mark key parameters @READONLY

Ground Station Support

The ground station needs to provide key data to the flight controller

  • Key data includes:
    • UAS ID
    • Operator ID and description
    • Operating area limits
    • Some classification IDs
  • This data is provided via MAVLink using OPEN_DRONE_ID messages
  • Sample implementation is in MAVProxy OpenDroneID module
  • A MissionPlanner plugin should be coming soon
    • Current beta already supports required DroneCAN and MAVLink messages
  • We will also need QGroundControl support

Mission Planner Support

GCS Operator interface pending

  • DroneCAN and MAVLink support already done

Vehicle Serial Number

Vehicles needs to have an assigned serial number

Certification and testing will be a significant challenge

  • Both FCC and FAA certification needed
    • FCC Transmitter Certification (47 CFR 15.247 and/or 15.249) & EMC testing (47 CFR 15.109)
      • Co-located transmitters will be a challenge for most manufacturers
      • Has long lead time due to lab scheduling (expect 10 weeks+)
    • DoC (declaration of compliance) for FAA
    • ASTM F3586−22 is an MOC accepted (with comments) by the FAA 
      • Federal Register publication pending, expected this week
      • Outlines process options for demonstration of compliance

For discussion of all RemoteID/OpenDroneID topics please use:

  • The (partner only) partner_regulatory channel on discord
  • The public opendroneid channel on discord
  • The partners mailing list