Context
fbuild still carries USB VID/PID knowledge in repository-owned code, fixtures, and the legacy online-data-tools pipeline. The canonical source is now the published FastLED/boards registry, and fbuild must ingest that registry rather than maintain a second catalogue.
A current repository sweep found, among other examples:
online-data-tools/fetch_raspberrypi_usb_pids.py and other vendor fetchers with vendor/PID allocation logic
online-data-tools/seed_mcu_to_vid.json with board-family VID heuristics
crates/fbuild-core/src/usb/embedded.rs and the checked-in vendor archive
- test fixtures and docs that encode concrete VID/PID rows
- serial/deploy classification tables and board metadata that may duplicate registry identities
Some literals are legitimate protocol constants or test fixtures; the audit must classify rather than blindly delete them.
Proposal
Scour the entire fbuild repository for USB VID/PID data and classify every occurrence as one of:
- canonical board/device data that belongs in FastLED/boards;
- a protocol/specification constant that is not a device catalogue entry;
- a test-only fixture, which may remain only when clearly isolated and labelled; or
- an unsafe runtime duplicate that must be removed.
For category 1, add provenance-backed records to the correct FastLED/boards data branch and regenerate/publish through the boards pipeline. Update fbuild's build/cache ingestion to consume the published boards artifacts. Remove runtime fallbacks and generated/bundled catalogues that duplicate those records. Keep only narrowly-scoped protocol constants and synthetic/test fixtures, with comments explaining why they are not production data.
The audit must include Rust, Python, JSON, docs, generated assets, release packaging, and tests; search case-insensitively for both symbolic names and numeric forms (VID, PID, VID:PID, 0xNNNN, and hex strings).
Acceptance criteria
Related work
Context
fbuild still carries USB VID/PID knowledge in repository-owned code, fixtures, and the legacy
online-data-toolspipeline. The canonical source is now the published FastLED/boards registry, and fbuild must ingest that registry rather than maintain a second catalogue.A current repository sweep found, among other examples:
online-data-tools/fetch_raspberrypi_usb_pids.pyand other vendor fetchers with vendor/PID allocation logiconline-data-tools/seed_mcu_to_vid.jsonwith board-family VID heuristicscrates/fbuild-core/src/usb/embedded.rsand the checked-in vendor archiveSome literals are legitimate protocol constants or test fixtures; the audit must classify rather than blindly delete them.
Proposal
Scour the entire fbuild repository for USB VID/PID data and classify every occurrence as one of:
For category 1, add provenance-backed records to the correct FastLED/boards data branch and regenerate/publish through the boards pipeline. Update fbuild's build/cache ingestion to consume the published boards artifacts. Remove runtime fallbacks and generated/bundled catalogues that duplicate those records. Keep only narrowly-scoped protocol constants and synthetic/test fixtures, with comments explaining why they are not production data.
The audit must include Rust, Python, JSON, docs, generated assets, release packaging, and tests; search case-insensitively for both symbolic names and numeric forms (
VID,PID,VID:PID,0xNNNN, and hex strings).Acceptance criteria
2e8a:0003, runtime CDC IDs, NXP/LPC identities, and unrelated CP210x negative cases.online-dataUSB catalogue path once boards ingestion is proven, with migration notes.Related work