Agent skill

Esp32 Log Triage

by FastLED in 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.

MITAuto-check passedDevelopment

Install Esp32 Log Triage

skills CLI
$ npx skills add FastLED/FastLED --skill esp32-log-triage -a claude-code

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

GitHub CLI
$ gh skill install FastLED/FastLED esp32-log-triage --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-log-triage .claude/skills/esp32-log-triage && 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-log-triage
GitHub stars
7.5k
Token cost
~1.9k tokens
SKILL.md length
533 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

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

  • Works in 5 steps: Identify Reset Reason → Extract Crash Signature → Classify the Issue → …
  • Debugging unexpected device behavior
  • SKILL.md covers What This Skill Does, ESP-IDF Log Format, FastLED-Specific Patterns to… and Reset Reason Classification, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Esp32 Log Triage is an agent skill from 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. Use when debugging unexpected device behavior, boot failures, or LED output problems on ESP32.

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

  • Debugging unexpected device behavior
  • LED output problems on ESP32

Example prompts

  • “/esp32-log-triage”

Workflow steps

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

  1. Identify Reset Reason
  2. Extract Crash Signature
  3. Classify the Issue
  4. Check FastLED Initialization Sequence
  5. Decode Backtrace (if crash)

What it can do on your machine

Read from SKILL.md and the folder at commit c97d721. 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 bash and 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 Log Triage loads about 1.9k tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 533 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 c97d721, republished under its MIT licence (© FastLED). 533 words, ~1,885 tokens.

Download SKILL.mdSave it as .claude/skills/esp32-log-triage/SKILL.md (or your agent's skills folder).
name
esp32-log-triage
description
Parse and classify ESP32 serial log output to identify FastLED-related errors, RMT/I2S/SPI driver faults, timing violations, RTOS issues, and crash signatures. Use when debugging unexpected device behavior, boot failures, or LED output problems on ESP32.
argument-hint
<paste serial log output or describe the symptom>
context
fork
agent
esp32-log-triage-agent

Systematically analyze ESP32 serial log output to identify and classify issues, with special focus on FastLED driver faults, LED timing errors, and RTOS problems.

$ARGUMENTS

What This Skill Does

  1. Log Structure Parsing: Identify ESP-IDF log levels, tags, timestamps, and reset reasons
  2. FastLED-Specific Pattern Detection: Find RMT driver faults, I2S/SPI timing violations, LED buffer corruption
  3. Crash Signature Classification: Match Guru Meditation types to root causes
  4. RTOS Health Check: Detect watchdog resets, task starvation, and priority issues
  5. Boot Sequence Analysis: Trace initialization failures, missing peripherals, partition errors
  6. Triage Report Generation: Produce structured root cause hypothesis and next steps

ESP-IDF Log Format

[LEVEL][TAG] (TIMESTAMP) MESSAGE

Severity levels (E > W > I > D > V):

  • E — Error (critical failures, always investigate)
  • W — Warning (potential issues, context-dependent)
  • I — Info (normal operation markers)
  • D — Debug (detailed tracing, enabled per component)
  • V — Verbose (maximum detail)

FastLED-Specific Patterns to Watch

RMT Driver (WS2812/SK6812/APA106 via RMT)
E (rmt): rmt_ll_write_memory: ...         → RMT buffer write fault
E (RMT): install_rmt failed               → RMT channel allocation failure
W (RMT): RMT timeout                      → LED strip not responding
E (FastLED): RMT encoder error            → Timing encoding failed
rmt: rmt_config_err                       → Wrong RMT clock or resolution
I2S Driver (APA102/SK9822 high-speed or parallel output)
E (I2S): i2s_driver_install failed        → I2S DMA setup error
E (I2S): DMA buffer not enough            → Increase DMA buffer count
W (I2S): i2s_write timeout                → DMA stall, check task priority
SPI Driver (APA102, SK9822, HD107)
E (SPI): spi_bus_initialize failed        → SPI bus conflict or pin issue
E (SPI): spi_device_transmit failed       → Transmission error
W (SPI): DMA not aligned                  → Buffer alignment issue for DMA
PARLIO Driver (ESP32-S3 parallel output)
E (PARLIO): parlio_tx_unit_init failed    → PARLIO DMA setup error
E (PARLIO): parlio clock config failed    → Clock source conflict
LED Buffer / Memory
E (heap): Failed to alloc N bytes         → Heap exhaustion (too many LEDs?)
W (heap): Heap corruption detected        → Memory overwrite, check LED array bounds
assert failed: led_count > 0             → Zero-length LED strip configured

Reset Reason Classification

rst:0x1 (POWERON_RESET)     → Normal power-on, no concern
rst:0x3 (SW_RESET)          → Software reset (intentional or crash recovery)
rst:0x7 (TG0WDT_SYS_RESET) → Task watchdog: show() blocking too long?
rst:0x8 (TG1WDT_SYS_RESET) → Interrupt watchdog: ISR took too long
rst:0xf (BROWNOUT_RESET)    → Insufficient power (LEDs drawing too much current?)
rst:0xc (SW_CPU_RESET)      → Panic/abort → look for Guru Meditation above

Crash Signature Reference

PatternLikely Cause
LoadProhibited + EXCVADDR ~0x0NULL pointer (uninitialized LED strip?)
StoreProhibitedWrite to read-only or invalid memory
InstrFetchProhibitedJump to invalid address (corrupt function pointer)
IllegalInstructionStack overflow or heap corruption
IntegerDivideByZeroDivision by zero in LED math
StackOverflow + task nameTask stack too small for FastLED show()
abort() calledAssertion failure, check log lines above
Cache disabled but cache memory range accessedISR accessing flash (IRAM_ATTR missing)

FastLED-Specific Watchdog Patterns

FastLED's show() call can trigger watchdog resets if:

  • LED count is very high (>1000 LEDs, long DMA transfer)
  • show() is called from a task with watchdog enabled
  • RMT/I2S wait loop runs without yielding

Look for patterns like:

Task watchdog got triggered. The following tasks/users did not reset the watchdog in time:
 - IDLE (CPU 0)

Combined with FastLED show() in the call stack — this means the main task is blocking the idle task.

Memory Patterns

Free heap: XXXX bytes                     → Monitor across frames; declining = leak
DRAM free: XXXX bytes                     → Internal RAM; FastLED LED buffers go here
SPIRAM free: XXXX bytes                   → PSRAM; check if LED buffers placed here

FastLED LED buffers: each CRGB is 3 bytes. 1000 LEDs = 3KB heap per strip.

Triage Steps

Show full SKILL.md (214 more words)Show less
Step 1: Identify Reset Reason

Find the first rst: line in the log — this tells you how the device started.

Step 2: Extract Crash Signature

Search for Guru Meditation, LoadProhibited, StoreProhibited, abort() — decode the backtrace.

Step 3: Classify the Issue
CategoryIndicators
Power issueBrownout resets, unstable readings
FastLED RMT faultRMT errors, rmt_config_err, install_rmt failed
Heap exhaustionFailed to alloc, declining free heap
WatchdogTG0WDT/TG1WDT reset, show() blocking
ISR violationCache disabled but cache memory range accessed
Stack overflowStackOverflow + task name
NULL pointerEXCVADDR ~0x00000000
Step 4: Check FastLED Initialization Sequence

A healthy FastLED ESP32 boot looks like:

I (xxx) FastLED: Registered N LEDs on pin Y
I (xxx) rmt: rmt channel N ... successfully

If either of these is missing, FastLED never initialized correctly.

Step 5: Decode Backtrace (if crash)
bash
# Extract backtrace addresses from log
xtensa-esp32-elf-addr2line -pfiaC -e build/firmware.elf 0xADDR1 0xADDR2

# Or use idf.py monitor for live decoding
idf.py -p /dev/ttyUSB0 monitor

Output Format

markdown
# ESP32 Log Triage Report

## Summary
- **Reset reason**: [from boot log]
- **Issue type**: [Power / RMT fault / Heap / Watchdog / ISR violation / Stack overflow / NULL pointer]
- **Severity**: [CRITICAL / HIGH / MEDIUM / LOW]
- **FastLED component affected**: [RMT / I2S / SPI / PARLIO / LED buffer / None]

## Key Events (chronological)
1. [timestamp] [event]
2. [timestamp] [event]

## Error Patterns
- `[pattern]`: [count] occurrences — [interpretation]

## Root Cause Hypothesis
[Most likely cause based on evidence]

## Recommended Next Steps
1. [Action — specific to FastLED or ESP32]
2. [Action]

## Raw Evidence
[Relevant log excerpts with timestamps]

Quick Reference Tips

  • Brownout resets with many LEDs: Add current limiting or larger capacitor on 5V rail — LEDs draw ~60mA each at full white
  • Watchdog with RMT: Call esp_task_wdt_reset() around show() or move FastLED show() to a dedicated task without watchdog
  • RMT channel allocation failure: ESP32 has 8 RMT channels; check for conflicts with other RMT users (IR remote, etc.)
  • Heap allocation failure for LED buffer: On memory-constrained boards, reduce LED count or place buffer in PSRAM with MALLOC_CAP_SPIRAM
  • Cache disabled ISR fault: FastLED ISR handlers must be in IRAM — check IRAM_ATTR on all ISR functions

© 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-log-triage of FastLED/FastLED.

Open the folder on GitHubat commit c97d721

Compare with similar skills

Esp32 Log Triage 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 Log Triage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Esp32 Log Triage this skillFastLED/FastLED7.5k—~1.9kAutomated safety check: PassMIT
RuView Hardware Setupruvnet/RuView97k—~1.8kAutomated safety check: NotesMIT
Esp32 Firmware Engineeralxv2016/folloup-sticky1161 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 today
    DevelopmentAuto-check: notes
  • Esp32 Firmware Engineer

    alxv2016/folloup-sticky

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

    116 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 today
    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 2 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 yesterday
    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 today
    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 today
    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 today
    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 today
    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 today
    Auto-check passed
  • TDD

    FastLED/FastLED

    Guide Test-Driven Development workflow for FastLED. An agent skill from FastLED/FastLED.

    7.5k GitHub stars~848 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Esp32 Log Triage

What does Esp32 Log Triage do?

Parse and classify ESP32 serial log output to identify FastLED-related errors, RMT/I2S/SPI driver faults, timing violations, RTOS issues, and crash signatures. Esp32 Log Triage is an agent skill from 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.

When should I use Esp32 Log Triage?

Esp32 Log Triage fits situations like: debugging unexpected device behavior; LED output problems on ESP32.

How do I install Esp32 Log Triage in Claude Code?

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

How do I install Esp32 Log Triage in Codex?

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

Can I use Esp32 Log Triage 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-log-triage -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-log-triage, .gemini/skills/esp32-log-triage, .github/skills/esp32-log-triage and .opencode/skills/esp32-log-triage in your project.

What does Esp32 Log Triage need to run?

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

Does Esp32 Log Triage 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 Log Triage 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 Log Triage use?

Esp32 Log Triage 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 Log Triage use?

About 1.9k tokens (SKILL.md is roughly 7.5k 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 Log Triage?

Skills that share tags, products or a category with Esp32 Log Triage: RuView Hardware Setup (ruvnet/RuView, 97k stars), Esp32 Firmware Engineer (alxv2016/folloup-sticky, 116 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 Log Triage?

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 9, 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.