Repository navigation
Map registry PIDs to PX4 boards and check them against PX4 - #8
Merged
Merged
Conversation
Add px4_board on PID entries and usb_vendor_string on manufacturers, and a check_px4.py cross-check against a PX4-Autopilot checkout that CI runs on every PR, push, and weekly. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Ramon Roche <mrpollo@gmail.com>
The registry maps PIDs to PX4 boards so members can ship under the Dronecode VID. It does not govern the USB vendor string, so remove the usb_vendor_string field and stop comparing CONFIG_CDCACM_VENDORSTR in check_px4.py. The contract is now only that a board's defconfigs using VID 0x3643 set the PID of the entry whose px4_board names that board, and that every such board is mapped. check_px4.py also fails when the PX4 path yields no defconfig on the registry VID, instead of passing with nothing checked, and reports how many defconfigs and mapped boards it checked. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Ramon Roche <mrpollo@gmail.com>
mrpollo
added a commit
to PX4/PX4-Autopilot
that referenced
this pull request
Sep 28, 2026
The Dronecode USB ID registry maps Dronecode PIDs to PX4 board directories so members can ship under the Dronecode VID. It does not govern the USB vendor string, and the usb_vendor_string field is being removed from it (Dronecode/usb-ids#8). Drop the CONFIG_CDCACM_VENDORSTR rule; the checker now only requires a registered PID whose px4_board matches the defconfig's boards/<vendor>/<board> directory. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Ramon Roche <mrpollo@gmail.com>
PX4 CI fails a board PR using VID 0x3643 unless its PID is already mapped to the board's directory with px4_board on this repo's main, so the registry entry has to merge first. The README and PR template said the opposite (add px4_board once the board is upstream, or alongside the board PR), and pointed at px4_vendor as what PX4 CI checks. Add the step to the request process, map the example entry, and fix both field descriptions and the PR template checklist. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Ramon Roche <mrpollo@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This makes the registry map exactly to PX4-Autopilot boards and adds CI that fails when the two disagree. Each PID entry can now carry
px4_board, the<vendor>/<board>directory under PX4'sboards/that ships it. The five PIDs that are upstream today (px4/fmu-v6xrt, zeroone/x6, agam/fmu-v6xrt, siyi/n7, siyi/unifc-6-pico) are mapped; NewBeeDrone, Syro, Agam MegH7 and Droneer are not in PX4 yet and stay unmapped.validate.pychecks the new field structurally:px4_boardmust sit inside the manufacturer'spx4_vendorand be unique. The newcheck_px4.pycompares the registry to a PX4 checkout in both directions. Every defconfig under a mapped board that sets VID 0x3643 must set that entry's PID, and every PX4 defconfig using VID 0x3643 must be claimed by somepx4_board, so a registry edit that orphans an upstream board fails here the same way PX4's own check fails on its side. The contract is only the VID/PID mapping. Apx4_boardwhose directory is not in PX4 yet only prints a notice, so a registry entry can land before its board PR without deadlocking the two repos. A PX4 path with noboards/directory, or with no defconfig on VID 0x3643, is an error, so an empty checkout cannot pass silently. CI sparse-clones PX4main(boards/only) on every PR and push, plus a weekly schedule and manual dispatch to catch drift from the PX4 side.Checked locally against current PX4
main: registry valid, 10 defconfigs across 5 mapped boards, 0 errors. Swapping the two SIYIpx4_boardvalues and dropping agam'spx4_boardeach fail; mapping a board directory not yet in PX4 is a notice with exit 0; an empty directory as the PX4 path fails.