Two different CAN devices claim the same node number
What ArduPilot says:
- Duplicate Node …../N!
On a DroneCAN bus every device (GPS, compass, ESC, battery monitor) is a node with a number, and each has a hardware ID of its own. The flight controller keeps a table, in permanent memory, of which hardware ID owns which number, and asks every node it hears for its ID. “Duplicate Node NAME../N” means node N answered with a different hardware ID than the table has for N. The first part of the device's name is shown.
What to do, most likely first
A CAN device was replaced by another with the same fixed node number; the table still has the old one.
CheckDid you swap a GPS, an ESC or another CAN device, or move one over from another aircraft?
FixClear the table: add 1 to
CAN_D1_UC_OPTION(bit 0, ClearDNADatabase) and reboot. The bit clears itself, “UC DNA database reset” confirms it, and the devices register again.Two devices on the bus really have the same node number.
CheckUnplug one of them: the message goes. The ground station's DroneCAN screen lists the nodes it sees and their numbers.
FixGive one of the devices another number in its own settings, or set its number to 0 so that the flight controller assigns one, then clear the table as above.
CAN_D1_UC_OPTION bit 1 makes ArduPilot ignore the conflict. Two devices answering to one number still confuse every driver that listens for that number; fix the numbers.
Parameters to look at
| Parameter | What it is |
|---|---|
CAN_D1_UC_OPTION | DroneCAN options |
CAN_D1_PROTOCOL | Enable use of specific protocol over virtual driver |
CAN_P1_DRIVER | Index of virtual driver to be used with physical CAN interface |
Where to do it:Board & Wiring PlannerSetup & Tuning Guide
The code that sends it
Duplicate Node …../N!
libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.cpp AP_DroneCAN_DNA_Server::prearm_check() · Open in ArduPilot Copter-4.7.1