Agent skill

Esp32 Arch Review

by FastLED in FastLED/FastLED

Review ESP32 FastLED firmware architecture for RTOS safety, DMA correctness, LED driver patterns, memory management, and peripheral safety.

MITAuto-check passedDevelopment

Install Esp32 Arch Review

skills CLI
$ npx skills add FastLED/FastLED --skill esp32-arch-review -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install FastLED/FastLED esp32-arch-review --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/FastLED/FastLED.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/esp32-arch-review .claude/skills/esp32-arch-review && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
esp32-arch-review
GitHub stars
7.5k
Token cost
~1.9k tokens
SKILL.md length
832 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Review ESP32 FastLED firmware architecture for RTOS safety, DMA correctness, LED driver patterns, memory management, and peripheral safety.

  • Works in 10 steps: FastLED Driver Architecture → DMA Safety → FreeRTOS Safety → …
  • Tasks that involve Embedded systems
  • SKILL.md covers What This Skill Reviews, Output Format and Common FastLED ESP32…
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Esp32 Arch Review is an agent skill from FastLED/FastLED. Review ESP32 FastLED firmware architecture for RTOS safety, DMA correctness, LED driver patterns, memory management, and peripheral safety. Use before merging significant driver changes, new platform ports, or when auditing existing ESP32 FastLED code.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Embedded systems. It works with ESP32. The repository describes itself as: The FastLED library for colored LED animation on Arduino. Please direct questions/requests for help to the FastLED Reddit community: http://fastled.io/r We'd like to use github… The licence is MIT.

When your agent uses it

  • Tasks that involve Embedded systems

Example prompts

  • “/esp32-arch-review”

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. FastLED Driver Architecture
  2. DMA Safety
  3. FreeRTOS Safety
  4. RMT-Specific Checks (WS2812/SK6812/APA106)
  5. I2S/SPI-Specific Checks (APA102/SK9822/HD107)
  6. PARLIO-Specific Checks (ESP32-S3 Parallel Output)
  7. Memory Management
  8. Peripheral Pin Safety
  9. Error Handling
  10. Code Quality & Maintainability

What it can do on your machine

Read from SKILL.md and the folder at commit 7d26d7f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Esp32 Arch Review loads about 1.9k tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 832 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~68
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from FastLED/FastLED at commit 7d26d7f, republished under its MIT licence (© FastLED). 832 words, ~1,895 tokens.

Download SKILL.mdSave it as .claude/skills/esp32-arch-review/SKILL.md (or your agent's skills folder).
name
esp32-arch-review
description
Review ESP32 FastLED firmware architecture for RTOS safety, DMA correctness, LED driver patterns, memory management, and peripheral safety. Use before merging significant driver changes, new platform ports, or when auditing existing ESP32 FastLED code.
argument-hint
<file, directory, or component to review>
context
fork
agent
esp32-arch-review-agent

Perform a structured architecture review of ESP32 firmware code, with emphasis on FastLED driver patterns, DMA safety, RTOS correctness, and LED-specific constraints.

$ARGUMENTS

What This Skill Reviews

1. FastLED Driver Architecture

Review LED driver implementations under src/platforms/esp/:

  • Driver inherits from correct base class (ClocklessController, ClockedController, or equivalent)
  • show() method is interrupt-safe and atomic from the LED strip's perspective
  • Pixel data encoding is performed before DMA transfer starts (no on-the-fly encoding race)
  • Color order (RGB/GRB/BGR) is handled at compile time, not runtime switch
  • Gamma correction and color scaling applied before encoding, not after DMA
  • leds_data / CRGB array not modified during active DMA transfer
  • FastLED's show_ordinal() / beginShow() / endShow() lifecycle respected
  • Brightness scaling via FastLED.setBrightness() applied before encoding
2. DMA Safety
  • DMA buffers allocated with heap_caps_malloc(size, MALLOC_CAP_INTERNAL | MALLOC_CAP_DMA)
  • DMA buffers are 4-byte aligned (use __attribute__((aligned(4))) or heap_caps_aligned_alloc)
  • DMA buffer lifetime extends beyond transfer completion (no premature free)
  • DMA descriptors reside in internal SRAM (not PSRAM/SPIRAM)
  • Cache coherence handled: esp_cache_msync() called or memory marked non-cacheable for DMA regions
  • Double-buffering used where needed to allow CPU-side encoding to overlap with DMA transmission
  • DMA completion callback or semaphore used to signal transfer end (not busy-wait polling)
  • Buffer sizes within hardware limits (RMT: 64 items/channel, I2S/SPI: configurable block size)
3. FreeRTOS Safety
  • No blocking calls (vTaskDelay, xSemaphoreTake with timeout) inside ISRs
  • ISR functions use FromISR API variants only (xSemaphoreGiveFromISR, xQueueSendFromISR)
  • ISR handlers marked IRAM_ATTR (ESP32) or __attribute__((section(".iram1"))) (other)
  • No malloc, new, fl::vector allocation inside ISRs
  • No printf, FL_DBG, ESP_LOGI or logging inside ISRs
  • No flash access from ISRs (all ISR code and data must be in IRAM/DRAM)
  • Shared state between ISR and task protected with critical section or ISR-safe primitives
  • Task stack sizes adequate for FastLED usage (show() + encoding can be stack-heavy)
  • No unbounded spin-wait loops without taskYIELD() (causes watchdog reset)
  • Watchdog not starved during long show() calls with high LED counts
4. RMT-Specific Checks (WS2812/SK6812/APA106)
  • RMT channel count within hardware limits (ESP32: 8, S2: 4, S3/C3/C6/H2: 4)
  • RMT resolution set correctly for target LED protocol (typically 10ns for WS2812)
  • RMT item encoding matches LED chipset timing spec (T0H, T0L, T1H, T1L, reset)
  • RMT encoder (rmt_encoder_t) properly initialized and not shared between channels
  • RMT callback or event queue used for completion, not polling
  • RMT loop mode disabled (LED output is one-shot, not continuous)
  • RMT end-of-frame reset pulse duration meets minimum spec (≥50µs for WS2812)
5. I2S/SPI-Specific Checks (APA102/SK9822/HD107)
  • SPI clock rate set correctly for target LED chipset (APA102 max: 20MHz typical)
  • SPI word size matches encoding (32-bit for APA102, 8-bit for raw SPI)
  • I2S sample rate matches LED bit rate requirement
  • SPI/I2S DMA buffer count adequate (≥2 for double buffering)
  • SPI/I2S CS/CLK/DATA pins not conflicting with flash (GPIO 6-11 forbidden on ESP32)
  • SPI transaction callback used to notify completion (not blocking transmit)
6. PARLIO-Specific Checks (ESP32-S3 Parallel Output)
  • PARLIO clock source and divider correctly configured for target bit rate
  • Data bus width matches LED strip count (1, 2, 4, 8, or 16 parallel strips)
  • PARLIO DMA buffer aligned to cache line boundaries
  • Output enable pin wired or bypassed correctly
Show full SKILL.md (330 more words)Show less
7. Memory Management
  • LED CRGB buffer allocation checked for NULL (large strips can exhaust heap)
  • No large stack-allocated arrays in show() path (> 512 bytes on stack is risky)
  • PSRAM usage documented when LED buffers are placed in SPIRAM
  • Free heap monitored at startup and logged (alert if < 10KB before show())
  • No memory leaks in driver initialization error paths
  • String/buffer operations have bounds checking
8. Peripheral Pin Safety
  • GPIO 6-11 not used for any output (ESP32 internal flash pins)
  • GPIO 34-39 not used for output (input-only on original ESP32)
  • Strapping pins (0, 2, 12, 15) not used without awareness of boot implications
  • ADC2 channels not used alongside Wi-Fi (GPIO 0, 2, 4, 12-15, 25-27)
  • Pin assignments match board schematic or documented LED strip wiring
9. Error Handling
  • All ESP-IDF API return values checked (esp_err_t, esp_err check macros)
  • Driver initialization failures reported with meaningful error messages
  • Graceful degradation: driver failure doesn't crash the whole application
  • Timeout values defined for all blocking operations
  • Error paths clean up allocated resources (channels, DMA buffers, callbacks)
10. Code Quality & Maintainability
  • Platform guards (#ifdef FASTLED_ESP32, #ifdef CONFIG_IDF_TARGET_ESP32S3, etc.) correct
  • No magic numbers — timing constants named and commented with source (datasheet)
  • Driver variant selection at compile time, not runtime (no dynamic dispatch overhead)
  • Header includes minimal (no platform headers leaked into public FastLED API)
  • Porting guide updated if new platform port added (see PORTING.md)

Output Format

markdown
# ESP32 Architecture Review Report

## Scope
- **Files reviewed**: [list]
- **Driver type**: [RMT / I2S / SPI / PARLIO / Other]
- **Target chip**: [ESP32 / ESP32-S2 / ESP32-S3 / ESP32-C3 / ESP32-C6 / ESP32-H2]

## Overall Assessment
[PASS / PASS WITH NOTES / FAIL]

## Critical Issues (must fix before merge)
- [ ] [Issue description + file:line reference]

## Warnings (should fix)
- [ ] [Issue description]

## Recommendations (consider for future)
- [ ] [Suggestion]

## Checklist Results
[Filled checklist from sections above — mark each PASS / FAIL / N/A]

Common FastLED ESP32 Architecture Anti-Patterns

Anti-PatternProblemFix
show() in ISRBlocks ISR with long DMA waitMove to task, use semaphore from ISR
Stack-allocated encode bufferStack overflow on high LED countsUse heap or static allocation
Polling DMA completionWastes CPU, may block IDLEUse DMA completion callback/semaphore
Shared RMT channel for multiple stripsData corruptionOne channel per strip
malloc() without MALLOC_CAP_DMADMA transfer fails silentlyAlways use heap_caps_malloc for DMA buffers
Timing constants without datasheet referenceHard to audit or adaptAdd comments citing datasheet section
Runtime color order switchBranch overhead per LEDUse compile-time template parameter

© FastLED, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/esp32-arch-review of FastLED/FastLED.

Open the folder on GitHubat commit 7d26d7f

Compare with similar skills

Esp32 Arch Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Esp32 Arch Review compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Esp32 Arch Review this skillFastLED/FastLED7.5k—~1.9kAutomated safety check: PassMIT
RuView Hardware Setupruvnet/RuView97k—~1.8kAutomated safety check: NotesMIT
Esp32 Firmware Engineeralxv2016/folloup-sticky1171 repos~3.8kAutomated safety check: PassGPL-3.0
RuView mmWave Radar Setupruvnet/RuView97k—~907Automated safety check: NotesMIT
Auto EmbeddedDunCanYounG-1/MICU-auto-embedded253—~1.6kAutomated safety check: PassCC-BY-NC-4.0
Embedded Cpp14 MisraBlueAndi/Pixelix443—~2kAutomated safety check: PassMIT

Similar skills

  • Brings a RuView CSI sensing node online by building ESP32-S3 or ESP32-C6 firmware, flashing the board, provisioning WiFi and checking the serial output.

    97k GitHub stars~1.8k tokensUpdated yesterday
    DevelopmentAuto-check: notes
  • Esp32 Firmware Engineer

    alxv2016/folloup-sticky

    ESP32 firmware engineering for ESP-IDF projects. An agent skill from alxv2016/folloup-sticky.

    117 GitHub starsUsed in 1 repo~3.8k tokens
    DevelopmentAuto-check passed
  • Sets up and runs 60 GHz and 24 GHz mmWave radar sensing on ESP32 boards in RuView, alone or fused with WiFi CSI.

    97k GitHub stars~907 tokensUpdated yesterday
    DevelopmentAuto-check: notes
  • Auto Embedded

    DunCanYounG-1/MICU-auto-embedded

    全平台嵌入式 AI 开发框架(对标 Trellis):把 RIPER-5 五阶段协议 + 四文件记忆 + 分层架构门禁 + Scout/Builder/Verifier 多 Agent + 24 个工具调用技能(build/flash/debug/serial/can/modbus/visa/static/memory/rtos/scons),做成『装进工程、项目级 hook…

    253 GitHub stars~1.6k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Embedded Cpp14 Misra

    BlueAndi/Pixelix

    A skill your agent uses when writing, reviewing, or refactoring C/C++ firmware code in this repository (src/, lib/, test/) — creating or editing .h/.hpp/.cpp files, applying MISRA-oriented and…

    443 GitHub stars~2k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Flash Esp32s3

    RomanLut/hx_espnow_rc

    Build, flash, recover, and verify the ESP32-S3 Super Mini MAVLink/ESP-NOW USB receiver in examples/rxesp32s3mavlinkrcusb.

    129 GitHub stars~794 tokensUpdated 1 mo ago
    DevelopmentAuto-check passed

More from FastLED/FastLED

All 23 skills in this repo
  • CI Fix

    FastLED/FastLED

    Scan all CI builds and tests, find failures, fetch error logs, and fix the code.

    7.5k GitHub stars~897 tokensUpdated yesterday
    Auto-check passed
  • Driver Review

    FastLED/FastLED

    Review and implement hardware driver code — DMA safety, interrupt correctness, timing constraints, peripheral register usage, channel drivers, and peripheral mock implementations.

    7.5k GitHub stars~3.1k tokensUpdated yesterday
    Auto-check passed
  • Embedded Debug

    FastLED/FastLED

    Firmware crash analysis, stack trace decoder, and register dump interpreter for ESP32/ARM/AVR platforms.

    7.5k GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Esp32 Log Triage

    FastLED/FastLED

    Parse and classify ESP32 serial log output to identify FastLED-related errors, RMT/I2S/SPI driver faults, timing violations, RTOS issues, and crash signatures.

    7.5k GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Memory Audit

    FastLED/FastLED

    Audit embedded code for stack overflow risks, heap fragmentation, static allocation patterns, and memory leaks.

    7.5k GitHub stars~488 tokensUpdated yesterday
    Auto-check passed
  • Platform Port

    FastLED/FastLED

    Guide porting FastLED to new MCU platforms, including int.h types, clockless drivers, SPI implementations, and platform detection.

    7.5k GitHub stars~580 tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Esp32 Arch Review

What does Esp32 Arch Review do?

Review ESP32 FastLED firmware architecture for RTOS safety, DMA correctness, LED driver patterns, memory management, and peripheral safety. Esp32 Arch Review is an agent skill from FastLED/FastLED. Review ESP32 FastLED firmware architecture for RTOS safety, DMA correctness, LED driver patterns, memory management, and peripheral safety.

When should I use Esp32 Arch Review?

Esp32 Arch Review fits situations like: tasks that involve Embedded systems.

How do I install Esp32 Arch Review in Claude Code?

Run `npx skills add FastLED/FastLED --skill esp32-arch-review -a claude-code`. Or copy the skill folder (.claude/skills/esp32-arch-review in FastLED/FastLED) into .claude/skills/esp32-arch-review in your project. Claude Code loads it when a task matches its description.

How do I install Esp32 Arch Review in Codex?

Run `npx skills add FastLED/FastLED --skill esp32-arch-review -a codex`. Or copy the skill folder (.claude/skills/esp32-arch-review in FastLED/FastLED) into .agents/skills/esp32-arch-review in your project. Codex loads it when a task matches its description.

Can I use Esp32 Arch Review in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FastLED/FastLED --skill esp32-arch-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/esp32-arch-review, .gemini/skills/esp32-arch-review, .github/skills/esp32-arch-review and .opencode/skills/esp32-arch-review in your project.

What does Esp32 Arch Review need to run?

SKILL.md names no scripts, command-line tools or credentials: Esp32 Arch Review is instructions for the agent only.

Does Esp32 Arch Review access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Esp32 Arch Review safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Esp32 Arch Review use?

Esp32 Arch Review is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Esp32 Arch Review use?

About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Esp32 Arch Review?

Skills that share tags, products or a category with Esp32 Arch Review: RuView Hardware Setup (ruvnet/RuView, 97k stars), Esp32 Firmware Engineer (alxv2016/folloup-sticky, 117 stars), RuView mmWave Radar Setup (ruvnet/RuView, 97k stars) and Auto Embedded (DunCanYounG-1/MICU-auto-embedded, 253 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Esp32 Arch Review?

FastLED (a GitHub organization) maintains it in FastLED/FastLED, which has 7,505 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 10, 2026.

Source: FastLED/FastLED on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.