Skip to content

Add NXP LPC8xx (LPC845, LPC804) PlatformIO envs#14

Merged
zackees merged 1 commit into
mainfrom
feat/lpc8xx-boards
Jun 20, 2026
Merged

Add NXP LPC8xx (LPC845, LPC804) PlatformIO envs#14
zackees merged 1 commit into
mainfrom
feat/lpc8xx-boards

Conversation

@zackees

@zackees zackees commented Jun 20, 2026

Copy link
Copy Markdown
Member

Summary

Add five PlatformIO envs covering the parts FastLED's src/platforms/arm/lpc/ tree supports today:

  • lpc845brk — LPC845-BRK breakout, opts into the SCT + 3-channel DMA-to-GPIO fast path via -DFASTLED_LPC_PWM_DMA=1.
  • lpc845 — bare LPC845M301 (bit-bang clockless by default).
  • lpcxpresso845max — LPCXpresso845MAX dev board.
  • lpc804 — bare LPC804M101 with a commented-out -DFASTLED_LPC_PLU hint (mandatory for WS2812 timing at the part's 15 MHz core clock).
  • lpcxpresso804 — LPCXpresso804 dev board, same caveat as lpc804.

Why

FastLED has shipped first-class support for the LPC845 and LPC804 (Cortex-M0+), but PlatformIO-Starter had no envs targeting them. The platform package isn't in the PlatformIO registry either — users need the zackees/platform-nxplpc-arduino fork plus per-board IDs — so without these envs the on-ramp is "go reverse-engineer FastLED's platformio.ini."

Each ini has a header comment noting the part's RAM/Flash budget, the chip-specific fast-path build flag, and the non-registry platform source so future maintainers don't get tripped up.

Boards intentionally NOT added

  • LPC11U24/U35, LPC11 legacy, LPC15xx — supported by FastLED but out of scope for the LPC8xx issue. File a follow-up if/when wanted.
  • LPC810/811/812/822/824/844/83x/834x — NOT supported by FastLED; would be a footgun.

Test plan

  • pio run -c platforms/platformio.lpc845brk.ini succeeds
  • pio run -c platforms/platformio.lpc845.ini succeeds
  • pio run -c platforms/platformio.lpcxpresso845max.ini succeeds
  • pio run -c platforms/platformio.lpc804.ini succeeds
  • pio run -c platforms/platformio.lpcxpresso804.ini succeeds
  • On an LPC845-BRK with WS2812 wired, verify the FASTLED_LPC_PWM_DMA fast path is selected (FastLED's #ifdef for clockless_arm_lpc_pwm_dma.h)

Closes #13

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Added firmware build configurations for five NXP LPC microcontroller development boards
    • Enables compilation and deployment across multiple LPC804 and LPC845 hardware platforms
    • Each configuration includes board-specific settings and optimizations
    • Integrated FastLED library support for LED control capabilities

Add five PlatformIO envs for the NXP Cortex-M0+ parts FastLED's
src/platforms/arm/lpc/ tree now supports:

- lpc845brk      — LPC845-BRK breakout, with -DFASTLED_LPC_PWM_DMA=1
                   opting into the SCT + 3-channel DMA-to-GPIO fast
                   path (clockless_arm_lpc_pwm_dma.h)
- lpc845         — bare LPC845M301 (bit-bang clockless by default)
- lpcxpresso845max — LPCXpresso845MAX dev board
- lpc804         — bare LPC804M101, with a commented-out
                   -DFASTLED_LPC_PLU hint (mandatory for WS2812 timing
                   at the part's 15 MHz core clock)
- lpcxpresso804  — LPCXpresso804 dev board, same caveat as lpc804

All five use the zackees/platform-nxplpc-arduino fork (upstream
platformio/platform-nxplpc has no LPC8xx boards and no Arduino
framework). The platform SHA is pinned to match FastLED master's own
platformio.ini at the time of writing.

Each ini has a header comment noting the part's RAM/Flash budget, the
chip-specific fast-path build flag, and the non-registry platform
source so future maintainers don't get tripped up.

Boards intentionally NOT added: LPC11U24/U35, LPC11 legacy, LPC15xx
(supported by FastLED but out of scope for the LPC8xx issue), and the
unsupported LPC810/811/812/822/824/844/83x/834x.

Closes #13

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 382523df-7923-4f4f-a7a7-d0f86cce87c2

📥 Commits

Reviewing files that changed from the base of the PR and between 14c1c8b and 612fa79.

📒 Files selected for processing (5)
  • platforms/platformio.lpc804.ini
  • platforms/platformio.lpc845.ini
  • platforms/platformio.lpc845brk.ini
  • platforms/platformio.lpcxpresso804.ini
  • platforms/platformio.lpcxpresso845max.ini

📝 Walkthrough

Walkthrough

Five PlatformIO INI files are added under platforms/ for two NXP LPC8xx families. Each file pins the zackees/platform-nxplpc-arduino fork to a specific Git SHA, selects the target board with the arduino framework, and declares FastLED as a library dependency, with comments documenting optional fast-path build flags per chip.

Changes

NXP LPC8xx PlatformIO Environments

Layer / File(s) Summary
LPC804 environments
platforms/platformio.lpc804.ini, platforms/platformio.lpcxpresso804.ini
Adds bare LPC804M101 and LPCXpresso804 board configurations; both pin the forked platform SHA and document the 15 MHz WS2812 timing constraint with the optional -DFASTLED_LPC_PLU build flag.
LPC845 environments
platforms/platformio.lpc845.ini, platforms/platformio.lpc845brk.ini, platforms/platformio.lpcxpresso845max.ini
Adds bare LPC845M301, LPC845-BRK breakout, and LPCXpresso845MAX configurations; lpc845brk additionally enables -DFASTLED_LPC_PWM_DMA=1 for the SCT+DMA GPIO fast path; all pin the same forked platform SHA.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Poem

🐇 Five little configs, all in a row,
Pinned to a SHA so the builds always go,
LPC804 needs PLU to shine bright,
LPC845's DMA keeps timing just right,
FastLED now hops to the Cortex-M0 light! ✨

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/lpc8xx-boards

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 and usage tips.

@zackees zackees merged commit 58faf18 into main Jun 20, 2026
1 of 2 checks passed
@zackees zackees deleted the feat/lpc8xx-boards branch June 20, 2026 06:08
@fastled-project-sync fastled-project-sync Bot moved this to Triage in FastLED Tracker Jun 21, 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.

Add NXP LPC8xx (LPC845, LPC804) PlatformIO envs

1 participant