You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Drive the NXP LPC8xx family (initial targets: LPC845, LPC804) from "the CI workflow is stubbed to pass" to "FastLED sketches build, link, flash, and blink." This is the umbrella tracking the multi-stage work; individual stages have their own issues + PRs.
Why a META
Three pieces are required and they're independently sized (one is in this repo, one is in a separate repo, one is a board-bring-up matrix). Filing as a meta so the work doesn't drift between issues, and so anyone looking at the LPC8xx status can see the whole staircase at once.
Stage 4: vendor the framework into fbuild
Once the polyfill has working code, add crates/fbuild-packages/src/library/lpc8xx_core.rs mirroring teensy_core.rs. Switch lpc845.json / lpc804.json to frameworks: ["arduino"]. Delete Stage 2: implement NXP LPC8xx build orchestrator (replace stub, unstub LPC804/LPC845 CI) #477's hand-rolled main.cpp shim in favor of ArduinoCore-LPC8xx's framework-owned main().
Stage 5: real test fixtures
Replace the empty tests/platform/lpc845/lpc845.ino and tests/platform/lpc804/lpc804.ino stubs with real Blink sketches calling pinMode + digitalWrite + delay.
Stage 7: deploy support
lpc21isp / pyocd / cmsis-dap / jlink wiring. Tracked separately when the rest is done.
Stage 8: unstub CI workflows
Revert .github/workflows/build-lpc845.yml and build-lpc804.yml to the template_build.yml caller form (restore via git show ac6b72d5^:...). The PR ci(lpc8xx): stub Build LPC804 / LPC845 workflows so they pass #476 stubs were always a temporary patch.
Ordering
Stages 2 and 3 can land in parallel — #477 produces an ELF using the hand-rolled main.cpp; #479 produces a framework that, once done, replaces that shim. Stage 4 is the integration point; Stages 5–8 follow.
Goal
Drive the NXP LPC8xx family (initial targets: LPC845, LPC804) from "the CI workflow is stubbed to pass" to "FastLED sketches build, link, flash, and blink." This is the umbrella tracking the multi-stage work; individual stages have their own issues + PRs.
Why a META
Three pieces are required and they're independently sized (one is in this repo, one is in a separate repo, one is a board-bring-up matrix). Filing as a meta so the work doesn't drift between issues, and so anyone looking at the LPC8xx status can see the whole staircase at once.
Current state (as of filing)
Stage 0 — scaffolding: ✅ DONE
Platform::NxpLpcenum + string parsing (fbuild-core)lpc845.json,lpc804.json(fbuild-config).Sfor both MCUs (fbuild-build/src/nxplpc/assets/)nxplpc.json)NxpLpcPlatformSupport→NxpLpcStubOrchestratorStage 1 — Arduino framework repo: ✅ DONE (skeleton)
zackees/ArduinoCore-LPC8xxcreated, BSD-3-Clausecores/lpc8xx/(Arduino.h, wiring_*, HardwareSerial, SPI, main.cpp) +variants/{lpc845,lpc804}/+examples/Blink/Open sub-issues
Stage 2: implement NXP LPC8xx build orchestrator (replace stub, unstub LPC804/LPC845 CI) #477 — Stage 2: build orchestrator
Replace
NxpLpcStubOrchestratorwith a realbuild()that producesfirmware.elf+firmware.binfor the empty.inofixtures. Pattern: copyfbuild-build/src/teensy/. Independent of Arduino-compatible framework for NXP LPC8xx (search existing, fork, or polyfill) #479 — works against the stubmain.cppshim that's already innxplpc/. Unblocks unstubbing the CI workflows.Arduino-compatible framework for NXP LPC8xx (search existing, fork, or polyfill) #479 — Stage 3: Arduino framework implementation
Fill in the no-op stubs in
ArduinoCore-LPC8xxagainst the MCUXpresso SDK. Estimated ~500–800 LOC C/C++. Decision recorded on Arduino-compatible framework for NXP LPC8xx (search existing, fork, or polyfill) #479. Verification needs hardware (LPC845-BRK / LPCXpresso804).Stage 4: vendor the framework into fbuild
Once the polyfill has working code, add
crates/fbuild-packages/src/library/lpc8xx_core.rsmirroringteensy_core.rs. Switchlpc845.json/lpc804.jsontoframeworks: ["arduino"]. Delete Stage 2: implement NXP LPC8xx build orchestrator (replace stub, unstub LPC804/LPC845 CI) #477's hand-rolledmain.cppshim in favor ofArduinoCore-LPC8xx's framework-ownedmain().Stage 5: real test fixtures
Replace the empty
tests/platform/lpc845/lpc845.inoandtests/platform/lpc804/lpc804.inostubs with real Blink sketches callingpinMode+digitalWrite+delay.Stage 6: FastLED canary
Blink,DemoReel100,FxEnginecompile clean for both LPC845 and LPC804 viafbuild build. This is the issue-Arduino-compatible framework for NXP LPC8xx (search existing, fork, or polyfill) #479 acceptance criterion.Stage 7: deploy support
lpc21isp / pyocd / cmsis-dap / jlink wiring. Tracked separately when the rest is done.
Stage 8: unstub CI workflows
Revert
.github/workflows/build-lpc845.ymlandbuild-lpc804.ymlto thetemplate_build.ymlcaller form (restore viagit show ac6b72d5^:...). The PR ci(lpc8xx): stub Build LPC804 / LPC845 workflows so they pass #476 stubs were always a temporary patch.Ordering
Stages 2 and 3 can land in parallel — #477 produces an ELF using the hand-rolled
main.cpp; #479 produces a framework that, once done, replaces that shim. Stage 4 is the integration point; Stages 5–8 follow.Related
zackees/ArduinoCore-LPC8xx(the external framework repo)