Repository navigation
Description
Scope
This is the focused roll-up for the fbuild-side NXP LPC deploy work that intersects probe-rs, LPC-Link2 / CMSIS-DAP, lpc21isp, and the LPC845-BRK flash -> monitor handoff.
Created from an audit of fbuild issues matching probe-rs, LPC845-BRK, LPC8xx, CMSIS-DAP, LPC-Link2, and lpc21isp.
The broader LPC8xx support tracker is #586. This issue is narrower: keep the probe-rs / LPC-Link2 deploy path coherent, avoid stale split-out tickets, and make sure the remaining fbuild integration actually lands.
Current source of truth
Touchless SWD flashing of the physical LPC845-BRK with the stock LPC-Link2 CMSIS-DAP v1.0.7 firmware was verified in #935 / #936 using the FastLED probe-rs fork:
- FastLED/probe-rs#1: DAP_Info fallback hardening
- FastLED/probe-rs#2: explicit SWD
DAP_Connectplus retry - probe-rs (fork): replace hidapi with nusb for CMSIS-DAP v1 HID transport — the actual fix for touchless LPC-Link2 deploy #936: nusb-v1 HID transport work, with hidapi fallback still the winning Windows path after a physical USB replug restored HidUsb state
That means the active fbuild work is no longer "prove probe-rs can ever flash this board." It is now "ship, integrate, and clean up the stale probe-rs/LPC tickets."
Active tracked work
- probe-rs on LPC-Link2 v1.0.7: blocker #4 — SerialNumber + remaining DAP_Info fallbacks (#930 follow-up) #931 - Audit remaining DAP_Info fallback work. If probe-rs LPC-Link2 v1.0.7: push through all blockers end-to-end, single-shot #935/probe-rs (fork): replace hidapi with nusb for CMSIS-DAP v1 HID transport — the actual fix for touchless LPC-Link2 deploy #936 fully supersede it, close it with the exact proof links. If not, rewrite it to name the one remaining query/failure signature instead of keeping the old broad blocker text.
- probe-rs on LPC-Link2 v1.0.7: SWD-attach layer quirks (#930 follow-up) #932 - Audit SWD-attach quirks after the verified touchless flash. If FastLED/probe-rs#2 plus the probe-rs LPC-Link2 v1.0.7: push through all blockers end-to-end, single-shot #935 proof satisfies it, close it as superseded. If not, update it with the current failing command/trace.
- cross-compile + host FastLED/probe-rs fork (#930 follow-up) #933 - Cross-compile and host the FastLED/probe-rs fork artifacts, or replace this with the current release mechanism. The deliverable needs provenance, checksums, and a repeatable way for fbuild to fetch the right binary.
- wire fbuild LpcDeployer to prefer probe-rs when CMSIS-DAP probe enumerates (#930 follow-up) #934 - Wire fbuild
LpcDeployerto use probe-rs when a CMSIS-DAP probe is present, with explicit fallback tolpc21ispand a force/opt-out flag. This is the main remaining fbuild code path. - [META] LPC845-BRK on-hand burn-down: cover the open LPC8xx work end-to-end #586 - Update the broad LPC845-BRK meta so it reflects the closed state of the older deploy issues and links here for the probe-rs/LPC-Link2 path.
Closed context to preserve
- probe-rs on LPC-Link2 CMSIS-DAP v1.0.7: series of upstream quirks to patch through #930 - Original probe-rs CMSIS-DAP v1.0.7 umbrella; split into probe-rs on LPC-Link2 v1.0.7: blocker #4 — SerialNumber + remaining DAP_Info fallbacks (#930 follow-up) #931-wire fbuild LpcDeployer to prefer probe-rs when CMSIS-DAP probe enumerates (#930 follow-up) #934 and closed.
- probe-rs LPC-Link2 v1.0.7: push through all blockers end-to-end, single-shot #935 - Hardware-validation umbrella; touchless probe-rs flash was verified end-to-end and the issue closed.
- probe-rs (fork): replace hidapi with nusb for CMSIS-DAP v1 HID transport — the actual fix for touchless LPC-Link2 deploy #936 - probe-rs transport/fork issue; closed after the verified flash path and Windows driver-state diagnosis.
- fbuild deploy: own nxplpc/LPC8xx flash end-to-end (FastLED is removing its direct pyocd path) #921 - fbuild-owned LPC deploy path issue; closed as redundant after the lpc21isp deployer work was found to already be merged.
- nxplpc: LpcDeployer feeds -hex to a .bin firmware and passes CMSIS-DAP speed=1000 as the lpc21isp baud #927 - Fixed the immediate lpc21isp
.bin/baud issues inLpcDeployer. - LPC845-BRK: deploy must always unwedge the shared VCOM (pyocd/SWD flash leaves CDC in Windows error 31) #565 - VCOM unwedge acceptance; closed 2026-07-07. Re-check this only if making probe-rs the default SWD deploy path reintroduces a flash -> monitor failure.
- LPC8xx Stage 7: deploy support (lpc21isp / pyocd / cmsis-dap / jlink) #551 - Original LPC8xx deploy-support tracker; closed predecessor to fbuild deploy: own nxplpc/LPC8xx flash end-to-end (FastLED is removing its direct pyocd path) #921/wire fbuild LpcDeployer to prefer probe-rs when CMSIS-DAP probe enumerates (#930 follow-up) #934.
- LPC8xx Stage 6: FastLED canary — Blink/DemoReel100/FxEngine compile for lpc845/lpc804 #550, [META] LPC8xx end-to-end support: orchestrator + Arduino framework + real FastLED sketches #487, Native support for NXP LPC8xx (LPC845-BRK, LPCXpresso804, LPCXpresso845-MAX) #513, Stage 2: implement NXP LPC8xx build orchestrator (replace stub, unstub LPC804/LPC845 CI) #477, lpc8xx: convert 5 stub workflows to real builds (Stage 8 of #487) — orchestrator + upstream proof are in #528 - prior LPC8xx build/framework/CI support issues; useful background but not blockers for this focused deploy roll-up.
- [META] FastLED #3339 LPC bring-up lessons — fbuild structural follow-up across 4 axes #699 - Closed fbuild structural follow-up from FastLED LPC bring-up lessons; background only unless a regression points back to serial/deploy architecture.
Acceptance
This meta is done when:
- probe-rs on LPC-Link2 v1.0.7: blocker #4 — SerialNumber + remaining DAP_Info fallbacks (#930 follow-up) #931 and probe-rs on LPC-Link2 v1.0.7: SWD-attach layer quirks (#930 follow-up) #932 are either closed as superseded by probe-rs LPC-Link2 v1.0.7: push through all blockers end-to-end, single-shot #935/probe-rs (fork): replace hidapi with nusb for CMSIS-DAP v1 HID transport — the actual fix for touchless LPC-Link2 deploy #936 or rewritten with current, reproducible remaining work.
- cross-compile + host FastLED/probe-rs fork (#930 follow-up) #933 has produced a usable probe-rs artifact channel, or has been replaced by an issue that names the actual artifact source fbuild should consume.
- wire fbuild LpcDeployer to prefer probe-rs when CMSIS-DAP probe enumerates (#930 follow-up) #934 is implemented with tests for probe-rs dispatch,
lpc21ispfallback, and the force/opt-out path. fbuild deploy tests/platform/lpc845brk -e lpc845brk --port COM10can use the probe-rs path when the LPC-Link2 CMSIS-DAP probe is present and still falls back clearly when it is not.- [META] LPC845-BRK on-hand burn-down: cover the open LPC8xx work end-to-end #586 is updated so the broader LPC tracker no longer carries stale deploy status.
Do not close this just because #935/#936 are closed; those proved the hardware path. This meta closes only after the remaining fbuild integration and issue hygiene are actually complete.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsTriage
Activity
zackees commentedon Jul 7, 2026
Closeout
All active children in this focused probe-rs + LPC-Link2 roll-up are resolved.
fastled-v0.31.2-nusb-v1-transport, with per-host artifact names and SHA256 digests.LpcDeployernow prefers probe-rs SWD for the LPC-Link2 CMSIS-DAP probe, falls back tolpc21isp, and supportsfbuild deploy --no-probe-rs.Merged PR: #1001 (
cc319808).Validation on merged
origin/main:soldr --no-cache cargo build -p fbuild-cli -p fbuild-daemonpassed.FBUILD_DEV_MODE=1 .\target\x86_64-pc-windows-msvc\debug\fbuild.exe deploy tests\platform\lpc845brk -e lpc845brk --port COM10 --verboseexited 0 on the attached LPC845-BRK.chip=LPC845M301JBD48, probe=1fc9:0132, firmware=tests\platform\lpc845brk\.fbuild\build\release\firmware.elf.lpc21ispline appeared in the merged-main validation log.Closing this focused meta as complete.
zackees commentedon Jul 7, 2026
Follow-up audit/meta opened as #1002 after concern that this focused roll-up may have closed before all probe-rs/LPC follow-ups were independently reconciled. Use #1002 as the active focused tracker for the probe-rs + LPC deploy audit.