Files
PX4-Autopilot/docs/en/debug/asset_tracking.md
T
Claudio Chies 1ff36422c9
Build all targets / Scan for Board Targets (push) Has been cancelled
Build all targets / Build [${{ matrix.runner }}][${{ matrix.group }}] (push) Has been cancelled
Build all targets / Upload Artifacts (push) Has been cancelled
Checks / build (NO_NINJA_BUILD=1 px4_fmu-v5_default) (push) Has been cancelled
Checks / build (NO_NINJA_BUILD=1 px4_sitl_default) (push) Has been cancelled
Checks / build (check_format) (push) Has been cancelled
Checks / build (check_newlines) (push) Has been cancelled
Checks / build (module_documentation) (push) Has been cancelled
Checks / build (px4_fmu-v2_default stack_check) (push) Has been cancelled
Checks / build (px4_sitl_allyes) (push) Has been cancelled
Checks / build (shellcheck_all) (push) Has been cancelled
Checks / build (tests) (push) Has been cancelled
Checks / build (tests_coverage) (push) Has been cancelled
Checks / build (validate_module_configs) (push) Has been cancelled
Clang Tidy / build (push) Has been cancelled
MacOS build / build (px4_fmu-v5_default) (push) Has been cancelled
MacOS build / build (px4_sitl) (push) Has been cancelled
Ubuntu environment build / Build and Test (ubuntu:22.04) (push) Has been cancelled
Ubuntu environment build / Build and Test (ubuntu:24.04) (push) Has been cancelled
Container build / Set Tags and Variables (push) Has been cancelled
Container build / Build Container (amd64) (push) Has been cancelled
Container build / Build Container (arm64) (push) Has been cancelled
Container build / Deploy To Registry (push) Has been cancelled
EKF Update Change Indicator / unit_tests (push) Has been cancelled
Failsafe Simulator Build / build (failsafe_web) (push) Has been cancelled
FLASH usage analysis / Analyzing px4_fmu-v5x (push) Has been cancelled
FLASH usage analysis / Analyzing px4_fmu-v6x (push) Has been cancelled
FLASH usage analysis / Publish Results (push) Has been cancelled
ITCM check / Checking nxp_mr-tropic (push) Has been cancelled
ITCM check / Checking nxp_tropic-community (push) Has been cancelled
ITCM check / Checking px4_fmu-v5x (push) Has been cancelled
ITCM check / Checking px4_fmu-v6xrt (push) Has been cancelled
MAVROS Mission Tests / build (map[mission:MC_mission_box vehicle:iris]) (push) Has been cancelled
MAVROS Offboard Tests / build (map[test_file:mavros_posix_tests_offboard_posctl.test vehicle:iris]) (push) Has been cancelled
Nuttx Target with extra env config / build (px4_fmu-v5_default) (push) Has been cancelled
Python CI Checks / build (push) Has been cancelled
ROS Integration Tests / build (push) Has been cancelled
ROS Translation Node Tests / Build and test (map[ros_version:humble ubuntu:jammy]) (push) Has been cancelled
ROS Translation Node Tests / Build and test (map[ros_version:jazzy ubuntu:noble]) (push) Has been cancelled
SITL Tests / Testing PX4 tailsitter (push) Has been cancelled
SITL Tests / Testing PX4 iris (push) Has been cancelled
SITL Tests / Testing PX4 standard_vtol (push) Has been cancelled
Fuzzing / Fuzzing (push) Has been cancelled
Docs - Crowdin - Upload Guide sources (en) / upload-to-crowdin (push) Has been cancelled
Docs - Deploy PX4 User Guide to AWS / build (push) Has been cancelled
Sync ROS 2 messages to px4_msgs / sync_to_px4_msgs (push) Has been cancelled
Docs - Deploy PX4 User Guide to AWS / deploy (push) Has been cancelled
docs: UAVCAN asset tracking (#26152)
2026-01-07 14:46:15 +11:00

2.8 KiB

Asset Tracking

PX4 can track and log detailed information about external hardware devices connected to the flight controller. This enables unique identification of vehicle parts throughout their operational lifetime using device IDs, serial numbers, and version information.

::: info Asset tracking is currently implemented for DroneCAN devices only. :::

Overview

Asset tracking allows you to determine exactly which hardware is installed on a vehicle, providing serial number, version, and other information. This makes it easier to track and maintain specific vehicle parts across multiple vehicles, to quickly see what versions you're running when debugging, and log component information for regulatory audits.

Asset tracking automatically collects and logs the following metadata from external devices:

  • Device identification: Vendor name, model name, device type
  • Version information: Firmware version, hardware version
  • Unique identifiers: Serial number, device ID
  • Device capabilities: ESC, GPS, magnetometer, barometer, etc.

This information is published via the device_information uORB topic and logged to flight logs. This enables fleet management, maintenance tracking, and troubleshooting.

Viewing Device Information

Real-Time Monitoring

You can view device information in real-time using the MAVLink Shell or console:

listener device_information

Example output for a CAN GPS module:

TOPIC: device_information
 device_information
    timestamp: 16258961403 (0.216525 seconds ago)
    device_id: 8944643 (Type: 0x88, UAVCAN:0 (0x7C))
    device_type: 5
    vendor_name: "cubepilot"
    model_name: "here4"
    firmware_version: "1.14.3006590"
    hardware_version: "4.19"
    serial_number: "1c00410018513331"

Device information is published in a round-robin fashion for each detected device, at a rate of approximately 1 Hz.

Multi-Capability Devices

Devices with multiple sensors (e.g., a CAN GPS/magnetometer combo module like the HERE4) register separate device information entries for each capability. Each entry shares the same serial number and base metadata but has a different device_id corresponding to the specific sensor capability.

Flight Log Analysis

Device information is automatically logged to flight logs. You can extract it using pyulog, though note that fields like vendor name, model name, and serial number are stored as char arrays and require additional parsing.

See Also