esp-who-skill

Guides ESP-WHO firmware development for face detection, recognition, and QR code applications on ESP32-S3 and ESP32-P4.

28|3|Updated Jun 24, 2026
One-click install
npx skills add https://github.com/JasonYANG170/esp-dev-skill --skill esp-who-skill-jasonyang170
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: esp-who-skill
Source: https://github.com/JasonYANG170/esp-dev-skill/tree/main/repos/esp-who
Command: npx skills add https://github.com/JasonYANG170/esp-dev-skill --skill esp-who-skill-jasonyang170

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Developing vision AI firmware with Espressif's ESP-WHO framework involves a strict pipeline model, BSP-to-target validation, model injection ordering, and FreeRTOS task lifecycle rules that are easy to get wrong, causing build failures or runtime assertion crashes. This Skill grounds AI agents in the real esp-who repository APIs, configurations, and pitfalls so generated code compiles and runs correctly. ## Core Features & Use Cases - Scenario Recipes: Eight step-by-step recipes covering project setup, object detection with LCD or serial output, custom detection apps, face recognition enrollment/recognition/deletion, QR code recognition, frame capture pipelines, camera selection, and task lifecycle control. - API and Configuration Reference: Real class and method signatures for WhoTask, WhoFrameCap, WhoCam variants, WhoDetect, WhoRecognition, WhoQRCode, and app wrappers, plus Kconfig symbols, sdkconfig defaults, partition tables, and DETECT_MODEL mappings. - Pitfall Prevention: Sixteen documented pitfalls with WRONG/CORRECT code pairs, such as missing IDF_EXTRA_ACTIONS_PATH, BSP/target mismatch, omitted set_model calls, and insufficient fb_count. - Use Case: A developer asks the agent to build a face recognition app on an ESP32-S3-EYE; the Skill walks through mounting the FATFS database, constructing the DVP frame capture pipeline, instantiating WhoRecognitionAppLCD, and building with the correct sdkconfig.bsp file. ## Quick Start Ask the agent to create an ESP-WHO object detection example for the ESP32-S3-EYE board using the human_face_detect model and generate the build commands.

Frequently Asked Questions about esp-who-skill

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build and flash an ESP-WHO example project?

Set IDF_EXTRA_ACTIONS_PATH to the esp-who tools directory, then run idf.py with -DSDKCONFIG_DEFAULTS pointing to your board's sdkconfig.bsp file and set-target to esp32s3 or esp32p4. For object_detect, also pass -DDETECT_MODEL with one of the four supported models, then run idf.py flash monitor.

How do I add face recognition to an ESP32-S3 application?

Use WhoRecognitionAppLCD with a DVP frame capture pipeline, mounting the filesystem first based on CONFIG_DB_FATFS_FLASH, CONFIG_DB_SPIFFS, or CONFIG_DB_FATFS_SDCARD. The app constructor creates HumanFaceDetect and HumanFaceRecognizer automatically, and buttons trigger enroll, recognize, and delete events.

Which chips and boards does ESP-WHO support?

The main branch supports ESP32-S3 and ESP32-P4 only, specifically the ESP32-S3-EYE, ESP32-S3-Korvo-2, and ESP32-P4 Function EV Board. ESP32 and ESP32-S2 require the older release/v1.1.0 branch, which this Skill does not cover.

Why does my ESP-WHO build fail with BSP is not defined?

The IDF_EXTRA_ACTIONS_PATH environment variable is not set, so the bsp_ext.py idf.py extension never runs and BSP is not injected into the CMake cache. Export the variable pointing to the esp-who tools directory and verify it with echo before running set-target.

Why does WhoDetect run return false at startup?

WhoDetect::run() returns false when no model was injected, logging that set_model must be called first. Call app->set_model with a model instance such as HumanFaceDetect before calling run(), and ensure the model component is declared in idf_component.yml.

When should I use the noglib BSP variant in ESP-WHO?

Use the _noglib BSP variant for terminal-mode applications like WhoDetectAppTerm that print results over serial without LVGL graphics. LCD applications such as WhoDetectAppLCD require the non-noglib BSP because they depend on the graphics library.