The Dronecode Foundation owns USB vendor ID 0x3643 ("Dronecode
Project, Inc.") and assigns product IDs (PIDs) to member companies building
Pixhawk/PX4-compatible hardware. This repository is the single source of
truth for those assignments: usb-ids.yaml.
PX4-Autopilot CI checks board definitions against this registry, so a board
using VID 0x3643 cannot merge upstream with an unregistered PID or a PID
belonging to another manufacturer.
There are no reservations: PIDs are assigned to real boards. Request one when you have hardware to name.
-
Open a pull request adding your entry to
usb-ids.yamlunder your manufacturer block (create one if it's your first request):- name: Acme Robotics px4_vendor: acme # your directory under boards/ in PX4-Autopilot contact: usb@acme.example pids: - pid: "0x0070" board: Acme FC1 date: 2026-07-10
-
CI validates the file (format, uniqueness). A maintainer confirms your Dronecode Foundation membership and merges. Assignments are at maintainer discretion.
Pick the lowest free PID; one entry per PID. If you can't open a PR, use the PID request issue form.
| Field | Rules |
|---|---|
pid |
"0x" + 4 uppercase hex digits, quoted, globally unique |
board |
Board name |
date |
Assignment date, YYYY-MM-DD |
contact |
Email address for the manufacturer |
px4_vendor |
Your vendor directory name in the PX4 boards/ tree. Optional until you upstream a board; required before your first PX4-Autopilot board PR, otherwise PX4 CI will reject it. |
pip install pyyaml
python3 validate.py usb-ids.yamlRuns automatically on every PR and push to main.
Note for maintainers: PX4 CI (including release branches carrying older
copies of check_usb_ids.py) fetches this file from main at check time,
so schema changes must stay backward compatible: adding fields is fine,
renaming or removing them breaks deployed checkers.