# esp32-firmware-engineer

Helps build, review, and debug ESP32 firmware projects using ESP-IDF. For hardware work, it first asks about the board, chip variant, and connected devices.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1300 installs · ★ 12
- Author: adamlipecz
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/adamlipecz/esp32-firmware-engineer-skill/tree/HEAD/esp32-firmware-engineer/SKILL.md
- Updated: 2026-02-24
- HTML: https://affpapa.org/en/nevibecode/skills/esp32-firmware-engineer

## What it does

This skill guides ESP32 firmware work with ESP-IDF, from implementing a feature to investigating build or runtime failures. It can review synchronization logic and interpret logs, with attention to areas such as FreeRTOS, peripherals, networking, OTA, and low-power behavior as relevant to the task.

The agent first classifies the request and reads the project files needed for it. A usable ESP-IDF environment is required before build, flash, or monitor steps; it checks that `idf.py` runs or that the project shell wrapper can load the environment. Hardware debugging must pause if the exact chip, board wiring, or connected devices are unclear. Chip variants differ in peripherals and wake-up behavior, so guessing can send the work in the wrong direction.

For debugging, the skill calls for a failure model before code changes, then a build with `build.sh`. It also asks for version-specific evidence that framework components work together. A code-only review or refactor can proceed within the supplied code scope, with hardware risks noted when behavior is unchanged.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add adamlipecz/esp32-firmware-engineer-skill --skill esp32-firmware-engineer -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/esp32-firmware-engineer/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/esp32-firmware-engineer/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add adamlipecz/esp32-firmware-engineer-skill --skill esp32-firmware-engineer -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/esp32-firmware-engineer/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add adamlipecz/esp32-firmware-engineer-skill --skill esp32-firmware-engineer -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/esp32-firmware-engineer/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install adamlipecz/esp32-firmware-engineer-skill esp32-firmware-engineer
```

2. **Manually: put the files in place**
- File: `.github/skills/esp32-firmware-engineer/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add adamlipecz/esp32-firmware-engineer-skill --skill esp32-firmware-engineer -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/adamlipecz/esp32-firmware-engineer-skill --path esp32-firmware-engineer
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/esp32-firmware-engineer/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add adamlipecz/esp32-firmware-engineer-skill --skill esp32-firmware-engineer -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/adamlipecz/esp32-firmware-engineer-skill/tree/HEAD/esp32-firmware-engineer/SKILL.md

## When to use it
- implement an ESP-IDF firmware feature
- trace a boot failure or Guru Meditation panic
- review synchronization in embedded code
- interpret serial logs
- fix a build or flash failure

## Example prompts
- Debug this ESP32 boot failure from the logs, and list the board details you need before changing code.
- Review this ESP-IDF change for synchronization issues and suggest a small, focused fix.
- Add this firmware feature, but first ask me for the chip variant, pin map, and OTA requirements.

## Similar
- [migrate-to-shoehorn](https://affpapa.org/en/nevibecode/skills/migrate-to-shoehorn.md) — skill · 475388 installs
- [write-swift](https://affpapa.org/en/nevibecode/skills/write-swift.md) — skill · 119300 installs
- [megacave](https://affpapa.org/en/nevibecode/skills/megacave.md) — skill · 25400 installs
- [find-docs](https://affpapa.org/en/nevibecode/skills/find-docs.md) — skill · 9400 installs
- [typescript-advanced-types](https://affpapa.org/en/nevibecode/skills/typescript-advanced-types.md) — skill · 92169 installs
- [smart-explore](https://affpapa.org/en/nevibecode/skills/smart-explore.md) — skill · 7300 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
