manifest: add label_pretty and firmware_category fields

Add human-readable labels and firmware classification to the build
manifest so ground stations like QGC can display friendly names and
filter builds by category.

New fields:
- label_pretty: human-readable variant name (e.g. "Multicopter")
- firmware_category: auto-detected classification
  - "vehicle" for multicopter, fixedwing, vtol, rover, uuv, spacecraft
  - "peripheral" for CAN sensor nodes (GPS, flow, mag, etc.)
  - "bootloader" for bootloader/canbootloader
  - "dev" for everything else (default, zenoh, mavlink-dev, etc.)

Peripheral detection uses ROMFSROOT="cannode" which is shared by all
~18 CAN sensor boards across ARK, Holybro, CUAV, Freefly, Matek, NXP.

A build-time warning fires when an unrecognized label falls through to
"dev", so new vehicle types are not silently hidden from end users.

Boards can override via CONFIG_BOARD_FIRMWARE_CATEGORY in .px4board.
CONFIG_BOARD_LABEL_PRETTY set on all px4/fmu-v6x variants as Phase 1.

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
This commit is contained in:
Ramon Roche
2026-04-08 17:37:54 -07:00
parent 68c391328a
commit 63f059fd47
19 changed files with 231 additions and 0 deletions
+2
View File
@@ -439,6 +439,8 @@ if (TARGET parameters_xml AND TARGET airframes_xml)
--chip "${CONFIG_ARCH_CHIP}"
--vid "${CONFIG_CDCACM_VENDORID}"
--pid "${CONFIG_CDCACM_PRODUCTID}"
--label-pretty "${CONFIG_BOARD_LABEL_PRETTY}"
--firmware-category "${CONFIG_BOARD_FIRMWARE_CATEGORY}"
--out ${MANIFEST_JSON}
DEPENDS
${PX4_SOURCE_DIR}/Tools/manifest/gen_board_manifest_from_defconfig.py