Skip to content

feat(usb): embed refreshed per-board VID:PID archive, drop hardcoded table (#722)#1013

Merged
zackees merged 1 commit into
mainfrom
fix/722-refresh-embedded-vidpid-archive
Jul 9, 2026
Merged

feat(usb): embed refreshed per-board VID:PID archive, drop hardcoded table (#722)#1013
zackees merged 1 commit into
mainfrom
fix/722-refresh-embedded-vidpid-archive

Conversation

@zackees

@zackees zackees commented Jul 9, 2026

Copy link
Copy Markdown
Member

Fixes #722. (All per-vendor ingest sub-issues #723#740 are already closed; this lands the fbuild-facing embedding + removes the last hardcoded table.)

What

  • Refresh the embedded usb-vids.proto.zstd from the current FastLED/boards pipeline: 745 B → 10 KB, 36 VIDs / 1369 PID rows. Offline resolution now names real boards/probes instead of Device 0xPPPP.
  • Delete the hardcoded FRIENDLY_PRODUCTS table in port_scan — product names are owned by the boards VID:PID data, embedded at build time (per follow up all known vids needs built in embedding #959's build-time-embedding direction). A missing name is a boards-data gap, not an fbuild edit.
  • Boards-data curation (curate: add NXP MCU-Link CMSIS-DAP PID 1fc9:0143 (fbuild#722) boards#44, merged): added NXP MCU-Link 1fc9:0143 and authoritative vendor overrides for shared UART-bridge VIDs the board-attribution pipeline mislabels (10c4→Silicon Labs, 0403→FTDI, 1a86→QinHeng/WCH, 067b→Prolific — were Arduino/Digilent/OLIMEX).

Verified offline (real hardware)

fbuild port scan --offline:

16C0:0483 └─ PJRC (Teensy) / Teensy 4.0
303A:1001 └─ Espressif Systems / WEMOS LOLIN S3
1FC9:0132 └─ NXP Semiconductors / NXP LPC-Link2 (CMSIS-DAP debug probe)
10C4:EA60 └─ Silicon Labs / NodeMCU 0.9 (ESP-12 Module)

Tests: fbuild-core usb (22) + port_scan (16) green; clippy + fmt clean.

🤖 Generated with Claude Code

…table (#722)

The per-vendor VID:PID ingest sub-issues (#723#740) are all closed, so the
FastLED/boards pipeline now carries far richer per-board data than fbuild's
stale 745-byte embedded proto. Regenerate `usb-vids.proto.zstd` from the
current boards data (745 B → 10 KB, 36 VIDs / 1369 PID rows) so offline
resolution names real boards/probes instead of `Device 0xPPPP` placeholders:

  303A:1001 → WEMOS LOLIN S3     1FC9:0132 → NXP LPC-Link2 (CMSIS-DAP)
  1FC9:0143 → NXP MCU-Link       16C0:0483 → Teensy 4.0

Curated on the boards `other` branch (FastLED/boards#44): added the MCU-Link
PID (1fc9:0143) and authoritative vendor overrides for shared UART-bridge VIDs
that the board-attribution pipeline otherwise mislabels (10c4 Silicon Labs,
0403 FTDI, 1a86 QinHeng/WCH, 067b Prolific — previously Arduino/Digilent/OLIMEX).

Delete the hardcoded `FRIENDLY_PRODUCTS` supplement table from `port_scan`:
friendly product names are now owned by the boards VID:PID data and embedded at
build time. A missing name is a boards-data gap, not an fbuild source edit.

Verified offline on real hardware: `port scan --offline` shows
`Silicon Labs / …`, `NXP LPC-Link2 …`, `PJRC (Teensy) / Teensy 4.0`,
`Espressif Systems / WEMOS LOLIN S3` with no network and no hardcoded table.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@zackees, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 1 minute

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 18ba65c9-8765-4efe-a743-3c17d3aa8486

📥 Commits

Reviewing files that changed from the base of the PR and between 5aebf62 and 7673a08.

📒 Files selected for processing (3)
  • crates/fbuild-cli/src/cli/port_scan.rs
  • crates/fbuild-core/data/usb-vids.proto.zstd
  • crates/fbuild-core/src/usb/resolver.rs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/722-refresh-embedded-vidpid-archive

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@zackees
zackees merged commit f079d72 into main Jul 9, 2026
88 of 93 checks passed
@zackees
zackees deleted the fix/722-refresh-embedded-vidpid-archive branch July 9, 2026 19:49
@fastled-project-sync fastled-project-sync Bot moved this to Triage in FastLED Tracker Jul 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

feat(online-data): ingest per-board VID:PID tables from upstream vendor manifests

1 participant