# esp32s3-cam-40pin

Скилл для работы с 40-пиновой платой ESP32-S3-WROOM-1 с DVP-камерой: распиновка, PSRAM, SDMMC и разбор типовых сбоев.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 22
- Автор: alexex1993
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/alexex1993/mcu-skills/tree/HEAD/skills/esp32/esp32s3-cam-40pin/SKILL.md
- Обновлён: 2026-10-15
- HTML: https://affpapa.org/nevibecode/skills/esp32s3-cam-40pin

## Что делает

Плата Freenove ESP32-S3-WROOM (FNK0085) и её клоны с AliExpress выглядят одинаково: 20 пинов с каждой стороны, 24-контактный FPC-разъём камеры OV2640/OV3660, слот microSD на шине SDMMC, WS2812 и два USB-C. Камера забирает четырнадцать GPIO, карта ещё три, а octal PSRAM — три, которые напечатаны на гребёнке и выглядят свободными. Остаётся семь пинов, и почти вся отладка сводится к этой арифметике.

Скилл состоит из справочников и шаблона проекта. `reference/board-hardware.md` содержит полную таблицу 40-пиновой гребёнки с альтернативными функциями, карты камеры и SDMMC, дерево питания и таблицу «симптом → причина → исправление». `reference/esp32s3-soc.md` разбирает сам чип: каких GPIO не существует, семантику strapping-пинов, ADC1/ADC2, контроллер LCD_CAM DVP. Ещё есть `reference/esp32-family.md` для вопросов о переносе кода на другие ESP32 и `reference/recipes.md` с компилируемыми примерами: `platformio.ini`, инициализация камеры, SDMMC, MJPEG-сервер, перенос консоли на нативный USB, I2C и SPI на свободных пинах. В `template/` лежит проект в двух вариантах и скрипт-скаффолд.

Самая частая ошибка — не камера, а память. В определении платы `esp32-s3-devkitc-1` по умолчанию стоит тип `qio_qspi`, и без `board_build.arduino.memory_type = qio_opi` с `-DBOARD_HAS_PSRAM` восьмимегабайтная octal PSRAM не подхватится: `psramFound()` вернёт false, а `esp_camera_init()` упадёт с `ESP_ERR_NO_MEM` или отработает на QVGA и умрёт при увеличении кадра.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add alexex1993/mcu-skills --skill esp32s3-cam-40pin -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/esp32s3-cam-40pin/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/esp32s3-cam-40pin/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add alexex1993/mcu-skills --skill esp32s3-cam-40pin -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/esp32s3-cam-40pin/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add alexex1993/mcu-skills --skill esp32s3-cam-40pin -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/esp32s3-cam-40pin/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install alexex1993/mcu-skills esp32s3-cam-40pin
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/esp32s3-cam-40pin/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add alexex1993/mcu-skills --skill esp32s3-cam-40pin -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/alexex1993/mcu-skills --path skills/esp32/esp32s3-cam-40pin
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/esp32s3-cam-40pin/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add alexex1993/mcu-skills --skill esp32s3-cam-40pin -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/alexex1993/mcu-skills/tree/HEAD/skills/esp32/esp32s3-cam-40pin/SKILL.md

## Когда брать
- собрать `platformio.ini` под N8R8 или N16R8 с octal PSRAM
- разобраться, почему `esp_camera_init()` возвращает `ESP_ERR_NO_MEM`
- найти свободные GPIO после подключения камеры и microSD
- поднять SDMMC в 1-bit режиме и примонтировать карту
- выбрать между консолью на UART0 и нативным USB

## Примеры запросов агенту
- Собери проект под 40-пиновую ESP32-S3 CAM с камерой OV2640 и записью кадров на microSD
- Камера не инициализируется, `psramFound()` возвращает false — проверь `platformio.ini` и тип памяти
- Какие GPIO остаются свободными, если камера и microSD уже разведены?

## Похожие
- [migrate-to-shoehorn](https://affpapa.org/nevibecode/skills/migrate-to-shoehorn.md) — скилл · 475388 установок
- [write-swift](https://affpapa.org/nevibecode/skills/write-swift.md) — скилл · 119300 установок
- [megacave](https://affpapa.org/nevibecode/skills/megacave.md) — скилл · 25400 установок
- [find-docs](https://affpapa.org/nevibecode/skills/find-docs.md) — скилл · 9400 установок
- [typescript-advanced-types](https://affpapa.org/nevibecode/skills/typescript-advanced-types.md) — скилл · 92169 установок
- [smart-explore](https://affpapa.org/nevibecode/skills/smart-explore.md) — скилл · 7300 установок

Из того же набора: [alexex1993/mcu-skills](https://affpapa.org/nevibecode/by/alexex1993/mcu-skills.md) — 7 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
