diff --git a/docs/en/SUMMARY.md b/docs/en/SUMMARY.md index aab7ed87c7..0665ac7738 100644 --- a/docs/en/SUMMARY.md +++ b/docs/en/SUMMARY.md @@ -128,7 +128,7 @@ - [LED Meanings](getting_started/led_meanings.md) - [Tune/Sound Meanings](getting_started/tunes.md) - [QGroundControl Flight-Readiness Status](flying/pre_flight_checks.md) - + - [Asset Tracking](debug/asset_tracking.md) - [Hardware Selection & Setup](hardware/drone_parts.md) - [Flight Controllers (Autopilots)](flight_controller/index.md) - [Flight Controller Selection](getting_started/flight_controller_selection.md) diff --git a/docs/en/can/index.md b/docs/en/can/index.md index b5ca6a57b3..cf33b7a8c4 100644 --- a/docs/en/can/index.md +++ b/docs/en/can/index.md @@ -10,6 +10,10 @@ CAN it is designed to be democratic and uses differential signaling. For this reason it is very robust even over longer cable lengths (on large vehicles), and avoids a single point of failure. CAN also allows status feedback from peripherals and convenient firmware upgrades over the bus. +PX4 has the ability to track and log detailed information from CAN devices, including firmware versions, hardware versions, and serial numbers. +This enables unique identification and lifecycle tracking of hardware connected to the flight controller. +See [Asset Tracking](../debug/asset_tracking.md) for more information. + PX4 supports two software protocols for communicating with CAN devices: - [DroneCAN](../dronecan/index.md): PX4 recommends this for most common setups. diff --git a/docs/en/debug/asset_tracking.md b/docs/en/debug/asset_tracking.md new file mode 100644 index 0000000000..e933596944 --- /dev/null +++ b/docs/en/debug/asset_tracking.md @@ -0,0 +1,68 @@ +# 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](../dronecan/index.md) 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`](../msg_docs/DeviceInformation.md) 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](../debug/mavlink_shell.md) or console: + +```sh +listener device_information +``` + +Example output for a CAN GPS module: + +```plain +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](../log/flight_log_analysis.md#pyulog), though note that fields like vendor name, model name, and serial number are stored as `char` arrays and require additional parsing. + +## See Also + +- [CAN (DroneCAN & Cyphal)](../can/index.md) — CAN bus configuration and setup +- [DroneCAN](../dronecan/index.md) — DroneCAN-specific documentation +- [Flight Log Analysis](../log/flight_log_analysis.md) — Flight log analysis diff --git a/docs/en/dronecan/index.md b/docs/en/dronecan/index.md index 04dd9e3aa7..13898c9dc3 100644 --- a/docs/en/dronecan/index.md +++ b/docs/en/dronecan/index.md @@ -27,6 +27,8 @@ Connecting peripherals over DroneCAN has many benefits: - Wiring is less complicated as you can have a single bus for connecting all your ESCs and other DroneCAN peripherals. - Setup is easier as you configure ESC numbering by manually spinning each motor. - It allows users to configure and update the firmware of all CAN-connected devices centrally through PX4. +- PX4 automatically tracks device information (vendor, model, versions, serial numbers) for maintenance and fleet management. + See [Asset Tracking](../debug/asset_tracking.md). ## Supported Hardware diff --git a/docs/en/releases/main.md b/docs/en/releases/main.md index 5c0d07a31a..43174d9c57 100644 --- a/docs/en/releases/main.md +++ b/docs/en/releases/main.md @@ -45,8 +45,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide). ### Control - Added new flight mode(s): [Altitude Cruise (MC)](../flight_modes_mc/altitude_cruise.md), Altitude Cruise (FW). - For fixed-wing the mode behaves the same as Altitude mode but you can disable the manual control loss failsafe. ([PX4-Autopilot#25435: Add new flight mode: Altitude Cruise - ](https://github.com/PX4/PX4-Autopilot/pull/25435)). + For fixed-wing the mode behaves the same as Altitude mode but you can disable the manual control loss failsafe. ([PX4-Autopilot#25435: Add new flight mode: Altitude Cruise](https://github.com/PX4/PX4-Autopilot/pull/25435)). ### Estimation @@ -64,6 +63,12 @@ Please continue reading for [upgrade instructions](#upgrade-guide). - Add synthetic mecanum rover model: [PX4-gazebo-models#113](https://github.com/PX4/PX4-gazebo-models/pull/113) - Update synthetic ackermann rover model: [PX4-gazebo-models#117](https://github.com/PX4/PX4-gazebo-models/pull/117) +### Debug & Logging + +- [Asset Tracking](../debug/asset_tracking.md): Automatic tracking and logging of external device information, including: vendor name, firmware and hardware version, serial numbers. + Currently supports DroneCAN devices. + ([PX4-Autopilot#25617](https://github.com/PX4/PX4-Autopilot/pull/25617)) + ### Ethernet - TBD