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

@zackeeszackees 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

coderabbitaiBot 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 mainJun 20, 2026
1 of 2 checks passed
@zackees
zackees deleted the feat/lpc8xx-boards branch June 20, 2026 06:08
Sign up for freeto 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

@zackees