← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

The table of CAN node numbers is full, or was cleared

WarningBoard, internal errors, CAN, scripting

What ArduPilot says:

A DroneCAN device with no fixed number asks the flight controller for one (dynamic node allocation, DNA). The flight controller remembers every number it has ever given, so that a device always gets the same one; there are 125. “allocation failed; database full” means none is left, and the device that asked stays without a number and does not work. “UC DNA database reset” confirms that the table was cleared at this start.

What to do, most likely first

  1. Many different devices have been connected to this flight controller over time (a test bench).

    FixClear the table: add 1 to CAN_D1_UC_OPTION (bit 0) and reboot; the bit clears itself.

  2. A device changes its hardware ID at every start and takes a new number each time.

    CheckThe same device shows up under a new node number after each power cycle.

    FixGive that device a fixed node number, or update its firmware.

Parameters to look at

ParameterWhat it is
CAN_D1_UC_OPTIONDroneCAN options
The code that sends it

DroneCAN DNA allocation failed; database full

libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.cpp AP_DroneCAN_DNA_Server::handle_allocation() · Open in ArduPilot Copter-4.7.1

UC DNA database reset

libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.cpp AP_DroneCAN_DNA_Server::init() · 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