# Platform Port

> Guide porting FastLED to new MCU platforms, including int.h types, clockless drivers, SPI implementations, and platform detection. Use when adding support for a new microcontroller family or board.

- Skill: `fastled/platform-port` (Agent Skill)
- Install (CLI): `npx skillmds@latest add fastled/platform-port`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fastled/platform-port/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: fastled (https://skillmd.com/u/fastled)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fastled/platform-port

---


Guide the process of porting FastLED to a new microcontroller platform.

$ARGUMENTS

## What This Skill Covers

### Platform Detection Setup
- Create platform detection headers (`is_<platform>.h`)
- Define `FL_IS_<PLATFORM>` macros following naming convention
- Wire into existing detection chain (`src/platforms/`)

### Integer Type Definitions
- Create platform-specific `int.h` with correct primitive type mappings
- Register in the `src/platforms/int.h` dispatcher

### LED Output Drivers
- Clockless (bit-bang) driver implementation
- SPI hardware driver if platform supports it
- RMT/I2S/PARLIO drivers for ESP32 variants
- GPIO register access patterns for the target MCU
- **Peripheral existence check FIRST** — before naming any
  `<Peripheral>_Type` typedef or `<Peripheral>_BASE` address, verify the
  peripheral EXISTS on the target chip against BOTH the vendor CMSIS PAL
  header for that specific variant AND the chip's datasheet chapter. See
  `agents/docs/peripheral-existence.md` for the halt-on-phantom rule and
  the LPC804 anti-example (`framework-arduino-lpc8xx#35`).
- **Register-map authoring** — use the vendor CMSIS PAL header
  (`LPC845.h`, `stm32f4xx.h`, `nrf52840.h`, `hardware/structs/*.h`,
  etc.); do not hand-roll register shims. See
  `agents/docs/register-maps.md` for the rule, the vendor-source
  table, and the tier-1/2/3 integration pattern.

### Build System Integration
- fbuild board definition (`ci/boards.py`)
- Meson build configuration
- Compiler flags and linker scripts

## How To Use

```
/platform-port STM32H7
/platform-port RP2040
/platform-port nRF52840
/platform-port I need to add support for the ESP32-P4
```

## What You'll Get

- Step-by-step porting checklist with file locations
- Platform detection header template
- Integer type mapping research and implementation
- Clockless driver skeleton based on platform GPIO speed
- Build system configuration guidance
- Testing strategy for the new platform

